zhouwenxuan
2024-02-21 eee656c8d1aab0b5aa8935bf1630f782321fc7f4
src/views/safetyReview/projectManage/components/siteCheckRcd.vue
@@ -38,7 +38,7 @@
        </el-col>
        <el-col :span="6">
          <el-form-item prop="isSafetyCheck" label="编制现场安全检查表">
            <el-radio-group v-model="state.formData.isSafetyCheck" size="large">
            <el-radio-group v-model="state.formData.isSafetyCheck" size="large" @change="changeRadio">
              <el-radio :label="1" size="large">是</el-radio>
              <el-radio :label="0" size="large">否</el-radio>
            </el-radio-group>
@@ -48,7 +48,7 @@
      <el-row :gutter="30">
        <el-col :span="24" v-if="state.formData.isSafetyCheck == 1">
          <el-form-item label="安全检查表上传" prop="assAccessoryFiles">
            <el-upload accept="image/*,.pdf,.doc,.docx,.xlsx,.xls" :action="state.uploadUrl" :data="{moduleType: 5,projectId: props.projectId}" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile,5)" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :limit='1' v-model:file-list="state.safetyList" :before-upload="picSize" :on-remove="(file, uploadFiles)=>handleRemove(file, uploadFiles,5)" :before-remove="beforeRemove">
            <el-upload accept="image/*,.pdf,.doc,.docx,.xlsx,.xls" :action="state.uploadUrl" :data="{moduleType: 5,projectId: props.projectId}" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile,5)" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :limit='1' v-model:file-list="state.safetyList" :before-upload="picSize" :on-remove="(file, uploadFiles)=>handleRemove(file, uploadFiles,5)">
              <el-button type="primary">附件上传</el-button>
              <template #tip>
                <div class="el-upload__tip">上传文件尺寸小于5M,最多可上传1份</div>
@@ -71,7 +71,7 @@
      <el-row style="border: 1px dashed #999;border-radius: 4px;padding: 10px;margin-top: 20px">
        <el-col :span="24">
          <el-form-item label="主要装置前合影照片" prop="deviceImages">
            <el-upload accept="image/*" :action="state.uploadUrl" :data="{moduleType: 1,projectId: props.projectId}" list-type="picture-card" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile,1)" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :limit='10' v-model:file-list="state.beforeDeviceList" :before-upload="picSize" :on-remove="(file, uploadFiles)=>handleRemove(file, uploadFiles,1)" :before-remove="beforeRemove">
            <el-upload accept="image/*" :action="state.uploadUrl" :data="{moduleType: 1,projectId: props.projectId}" list-type="picture-card" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile,1)" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :limit='10' v-model:file-list="state.beforeDeviceList" :before-upload="picSize" :on-remove="(file, uploadFiles)=>handleRemove(file, uploadFiles,1)" >
              <el-icon><Plus /></el-icon>
              <template #tip>
                <div class="el-upload__tip">上传照片尺寸小于5M,最多可上传10张</div>
@@ -83,7 +83,7 @@
      <el-row style="border: 1px dashed #999;border-radius: 4px;padding: 10px;margin-top: 20px">
        <el-col :span="24">
          <el-form-item label="现场勘验照片" prop="investingationImages">
            <el-upload accept="image/*" :action="state.uploadUrl" :data="{moduleType: 2,projectId: props.projectId}" list-type="picture-card" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile,2)" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :limit='10' v-model:file-list="state.siteCheckList" :before-upload="picSize" :on-remove="(file, uploadFiles)=>handleRemove(file, uploadFiles,2)" :before-remove="beforeRemove">
            <el-upload accept="image/*" :action="state.uploadUrl" :data="{moduleType: 2,projectId: props.projectId}" list-type="picture-card" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile,2)" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :limit='10' v-model:file-list="state.siteCheckList" :before-upload="picSize" :on-remove="(file, uploadFiles)=>handleRemove(file, uploadFiles,2)" >
              <el-icon><Plus /></el-icon>
              <template #tip>
                <div class="el-upload__tip">上传照片尺寸小于5M,最多可上传10张</div>
@@ -95,7 +95,7 @@
      <el-row style="border: 1px dashed #999;border-radius: 4px;padding: 10px;margin-top: 20px;margin-bottom: 20px">
        <el-col :span="24">
          <el-form-item label="企业陪同人员照片" prop="ccompanyImages">
            <el-upload accept="image/*" :action="state.uploadUrl" :data="{moduleType: 3,projectId: props.projectId}" list-type="picture-card" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile,3)" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :limit='10' v-model:file-list="state.companyList" :before-upload="picSize" :on-remove="(file, uploadFiles)=>handleRemove(file, uploadFiles,3)" :before-remove="beforeRemove">
            <el-upload accept="image/*" :action="state.uploadUrl" :data="{moduleType: 3,projectId: props.projectId}" list-type="picture-card" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile,3)" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :limit='10' v-model:file-list="state.companyList" :before-upload="picSize" :on-remove="(file, uploadFiles)=>handleRemove(file, uploadFiles,3)" >
              <el-icon><Plus /></el-icon>
              <template #tip>
                <div class="el-upload__tip">上传照片尺寸小于5M,最多可上传10张</div>
@@ -167,7 +167,7 @@
  rules: {
    investigationDate: [{required: true, message: '请选择现场勘验时间', trigger: 'blur'}],
    location: [{required: true, message: '请选择现场勘验位置', trigger: 'blur'}],
    isSafetyCheck: [{required: true, message: '请选择现场勘验位置', trigger: 'blur'}],
    isSafetyCheck: [{required: true, message: '请选择是否编制现场安全检查表', trigger: 'blur'}],
    recordData: [{required: true, message: '请填写现场勘验记录', trigger: 'blur'}],
    assAccessoryFiles: [{required: true, validator: checkSafetyFiles, trigger: 'blur'}],
    // investingationImages: [{required: true, validator: checkInvestFiles, trigger: 'blur'}],
@@ -194,14 +194,16 @@
  if(userInfo.identity === 0){
    isAmin.value = true;
  }
  if(props.projectId){
    getDetail(props.projectId)
  }
});
const riskOpen = async (type,val) => {
  state.formData.projectId = val
  state.projectId = val
  if(type === 'detail' || type === 'edit' ){
    const res = await getSiteCheckDetail({projectId: val});
    if(res.code == 200){
const getDetail = async (val) => {
  const res = await getSiteCheckDetail({projectId: val});
  if(res.code == 200){
    if(res.data){
      state.formData = res.data;
      state.beforeDeviceList = res.data.deviceImages.map(i=>{
        return {
@@ -232,16 +234,31 @@
      })
      state.safetyList = res.data.assAccessoryFiles.map(i=>{
        return {
          name: i.fileName,
          name: i.originName,
          url: import.meta.env.VITE_APP_BASE_API + '/' + i.path,
          id: i.id,
          projectId: i.projectId,
          moduleType: i.moduleType
        }
      })
    }else {
      ElMessage.warning(res.message)
    }
  }else {
    ElMessage.warning(res.message)
  }
}
const changeRadio = () => {
  if(state.formData.isSafetyCheck == 1){
    getSafetyFiles()
  }
}
const riskOpen = async (type,val) => {
  state.formData.projectId = val
  state.projectId = val
  if(type === 'detail' || type === 'edit' ){
    // await getDetail(val)
  }
  if(type === 'add' || type === 'clickEdit') {
    const valid = await formRef.value.validate();
@@ -259,19 +276,21 @@
        if (res.code == 200) {
          ElMessage.success('保存成功')
          if(state.formData.isSafetyCheck == 0){
            const res = await delFile(state.safetyList[0].id)
            if(res.code == 200){
              console.log('删除原有附件')
              await getSafetyFiles()
            }else{
              ElMessage({
                type: 'warning',
                message: res.message
              })
            if(state.safetyList && state.safetyList.length >0){
              const res = await delFile(state.safetyList[0].id)
              if(res.code == 200){
                console.log('删除原有附件')
                await getSafetyFiles()
              }else{
                ElMessage({
                  type: 'warning',
                  message: res.message
                })
              }
            }
          }
          formRef.value.clearValidate();
          emit('getNextStatus', res.data);
          emit('getNextStatus', val);
        } else {
          ElMessage.warning(res.message)
        }
@@ -373,7 +392,7 @@
    if(res.data && res.data.length>0){
      state.safetyList = res.data.map(i=>{
        return {
          name: i.fileName,
          name: i.originName,
          url: import.meta.env.VITE_APP_BASE_API + '/' + i.path,
          id: i.id,
          projectId: i.projectId,