zhouwx
2026-06-17 facea208b2fc7c8c7a0d176df06305b866c6520f
src/views/hazardousChemicals/subscribeApplyManage/approval/components/editDialog.vue
@@ -9,36 +9,25 @@
        :close-on-click-modal="false"
    >
      <el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" label-width="150px" >
        <el-form-item required label= "危化品列表" >
        <el-form-item  label= "危化品列表" >
          <div style="display: flex;width: 100%;margin-top: 5px">
            <el-table :data="state.form.hazardousTargets" :border="true">
            <el-table :data="state.form.subscribeHazmats" :border="true">
              <el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
              <el-table-column label="危化品名称" align="center"  >
                <template #default="{row,$index}">
                  <el-form-item :prop="'hazardousTargets.' + '[' + $index + ']' + '.name'" >
                    <span>{{row.name}}</span>
                  <el-form-item :prop="'subscribeHazmats.' + '[' + $index + ']' + '.hazmatName'" >
                    <span>{{row.hazmatName}}</span>
                  </el-form-item>
                </template>
              </el-table-column>
              <el-table-column label="数量" align="center"  >
                <template #default="{row,$index}">
                  <el-form-item :prop="'hazardousTargets.' + '[' + $index + ']' + '.num'">
                    <span>{{row.num}}</span>
                  <el-form-item :prop="'subscribeHazmats.' + '[' + $index + ']' + '.hazmatCount'">
                    <span>{{row.hazmatCount}}</span>
                  </el-form-item>
                </template>
              </el-table-column>
              <el-table-column label="操作" align="center" class-name="small-padding fixed-width" v-if="title !== '查看'" >
                <template #default="scope" >
                  <el-button link type="danger"  @click="handleDelete(scope.row)" >删除</el-button>
                </template>
              </el-table-column>
            </el-table>
            <el-button
                v-if="title !== '查看'"
                style="margin-left: 20px"
                type="primary"
                @click="addObject"
            >新增</el-button>
          </div>
        </el-form-item>
        <el-form-item label="申购文件:">
@@ -46,20 +35,20 @@
            <el-link  type="primary" @click="openFile(state.form.filePath)">{{state.form.fileName}}</el-link>
          </div>
        </el-form-item>
        <el-form-item label="审批意见:" v-if="title === '审批' && state.form.state == 0" >
        <el-form-item label="审批意见:" v-if="title === '审批'" prop="status">
          <div style="display: flex;flex-direction: column;width: 70%">
            <el-radio-group v-model="state.form.regestState">
              <el-radio :label="0">通过</el-radio>
              <el-radio :label="1">驳回</el-radio>
            <el-radio-group v-model="state.form.status">
              <el-radio :label="1">通过</el-radio>
              <el-radio :label="2">驳回</el-radio>
            </el-radio-group>
            <el-input v-if="state.form.regestState == 1" v-model="state.form.regest" type="textarea" :rows="5"></el-input>
            <el-input v-if="state.form.status == 2" v-model="state.form.opinion" type="textarea" placeholder="请输入审批意见" :rows="5"></el-input>
          </div>
        </el-form-item>
        <el-form-item label="审批状态:" v-if="title === '查看' && state.form.state != 0">
          <span>{{state.form.state == 1 ? '审批通过' : '审批驳回' }}</span>
        <el-form-item label="审批状态:" v-if="title === '查看' && state.form.status != 0" >
          <span>{{state.form.status == 1 ? '审批通过' : '审批驳回' }}</span>
        </el-form-item>
        <el-form-item label="审批意见:" v-if="title === '查看' && state.form.state == 2" style="width: 70%">
          <el-input v-model="state.form.regest" type="textarea" :rows="5"></el-input>
        <el-form-item label="审批意见:" v-if="title === '查看' && state.form.status == 2" style="width: 70%" >
          <el-input v-model="state.form.opinion" type="textarea" :rows="5"></el-input>
        </el-form-item>
      </el-form>
      <template #footer v-if="title !=='查看'">
@@ -79,6 +68,7 @@
import {getUser} from "@/api/hazardousChemicals/user";
import {getToken} from "@/utils/auth";
import {renderAsync} from "docx-preview";
import {auditSubscribe} from "@/api/hazardousChemicals/subscribeApply";
const dialogVisible = ref(false);
const title = ref("");
@@ -88,46 +78,40 @@
const state = reactive({
  form: {
    id: '',
    creditCode: '',
    name: '',
    major: '',
    phone: '',
    code: '',
    hazardousTargets:[],
    opinion: null,
    status: undefined,
    subscribeHazmats:[],
  },
  formRules:{
    creditCode: [{ required: true, message: '请输入企业信用代码', trigger: 'blur' }],
    major:[{ required: true, message: '请输入负责人', trigger: 'blur' }],
    type: [{ required: true, message: '请选择企业类型', trigger: 'blur' }],
    status: [{ required: true, message: '请选择审批意见', trigger: 'blur' }],
  },
  peopleList:[],
  fileList:[],
  uploadUrl: import.meta.env.VITE_APP_BASE_API + '/system/common/uploadFile',
  header: {
    Authorization: getToken()
  },
  fileLimit: 1,
})
const openDialog = async (type, value) => {
  title.value = type === 'approval' ? '审批' : type ==='edit' ? '申购编辑' : '查看' ;
  title.value = type === 'approval' ? '审批' : type ==='view' ? '查看' : '' ;
  state.form = JSON.parse(JSON.stringify(value));
  dialogVisible.value = true;
}
const onSubmit = async () => {
  const valid = await busRef.value.validate();
  if(!state.form.status){
    ElMessage.warning('请选择审批意见!')
    return
  }
  if(valid){
    if(title.value === '审批'){
      const {id, ...data} = JSON.parse(JSON.stringify(state.form))
      data.code = data.code.toUpperCase()
      const res = await addCompany(data)
      const {subscribeHazmats, ...data} = JSON.parse(JSON.stringify(state.form))
      if(data.status == 2 && !data.opinion){
        ElMessage.warning('请输入审批意见!')
        return
      }
      const res = await auditSubscribe(data)
      if(res.code === 200){
        ElMessage({
          type: 'success',
          message: '新增成功'
          message: '审批成功'
        });
      }else{
        ElMessage.warning(res.message)
@@ -149,29 +133,10 @@
const reset = () => {
  state.form = {
    id: '',
    creditCode: '',
    name: '',
    major: '',
    phone: '',
    code: ''
    opinion:null,
    status:undefined,
    subscribeHazmats:[],
  }
}
const addObject = () => {
  state.form.hazardousTargets.push({name:'',num:null})
}
const handleDelete = (val) => {
  state.form.hazardousTargets = state.form.hazardousTargets.filter(item=> item != val)
}
const selectValue =  (val) => {
  if(!val){
    state.form.userId = null
  }
  state.peopleList.forEach(item => {
    if(item.name === val){
      state.form.userId  = item.id
    }
  })
}