Admin
2022-09-21 999cab6fb3fc6d2a288d365da991351c5a396bf0
src/views/accidentManagementSystem/accidentExpress/component/openAdd.vue
@@ -1,6 +1,7 @@
<template>
   <div class="system-edit-user-container">
      <el-dialog :title="titles" v-model="isShowDialog" width="50%" draggable :fullscreen="full" @close="closeDialog(ruleFormRef)">
      <el-dialog :title="titles" v-model="isShowDialog" width="50%" draggable :fullscreen="full"
               destroy-on-close @close="closeDialog(ruleFormRef)">
         <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button>
         <el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" size="default" label-width="140px">
            <el-row :gutter="35">
@@ -54,7 +55,7 @@
                        <el-radio :label="false">否</el-radio>
                     </el-radio-group>
                     <el-button v-if="ruleForm.casualties" type="primary" style="margin-left: 20px"
                              :icon="Edit" @click="openDai" round plain />
                              :icon="Edit" @click="openDai(ruleFormRef)" round plain />
                  </el-form-item>
               </el-col>
               <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
@@ -94,7 +95,8 @@
                  <el-form-item label="事故照片" prop="fileList">
                     <!--<el-input v-model="ruleForm.fileList" :disabled="disabled"-->
                     <!--type="textarea" placeholder="请填写应急防范措施" maxlength="150"></el-input>-->
                     <uploaderImg :fileList="fileListDemo"></uploaderImg>
                     <uploaderImg :fileList="fileList" :disabled="disabled"
                               :systemName="'INCIDENT_MANAGE'" @successUploader="successUploader"></uploaderImg>
                  </el-form-item>
               </el-col>
            </el-row>
@@ -118,7 +120,7 @@
import { reactive, ref, defineComponent, defineEmits, onMounted } from 'vue';
import type { UploadUserFile, FormInstance, FormRules } from 'element-plus';
import { ElMessage } from 'element-plus';
import { ElMessage,ElMessageBox, } from 'element-plus';
import { Search, FullScreen, Edit } from '@element-plus/icons-vue';
import NumberOfCasualties from '/@/views/accidentManagementSystem/accidentExpress/component/numberOfCasualties.vue';
import UserSelections from '/@/components/userSelections/index.vue';
@@ -157,7 +159,7 @@
      const titles = ref();
      const disabled = ref();
      // 打开弹窗
      const openDialog = (title: string, id: number, type: boolean) => {
      const openDialog = async (title: string, id: number, type: boolean) => {
         isShowDialog.value = true;
         titles.value = title;
         disabled.value = type;
@@ -167,24 +169,39 @@
               .then((res) => {
                  if (res.data.code == 200) {
                     ruleForm.value = res.data.data;
                     fileList.value = (res.data.data.fileList?res.data.data.fileList:[])
                     initFileListData()
                  }
               });
         }
      };
      const initFileListData = async () => {
         for(var a = 0;a<fileList.value.length;a++){
            await goalManagementApi()
                  .searchFile(fileList.value[a].fileName)
                  .then((res) => {
                     fileList.value[a].url = res.data
                  })
         }
      }
      //日期选择器
      const value1 = ref('');
      // 上传附件
      const fileList = ref<UploadUserFile[]>([]);
      const fileListDemo = ref<UploadUserFile[]>([
         {
            name: 'food.jpeg',
            url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100',
         },
         {
            name: 'food.jpeg',
            url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100',
         },
      ]);
      const fileList = ref([]);
      // 上传成功组装数据
      const successUploader = (list) =>{
         fileList.value = list
         const formFileList = []
         for(var a = 0;a<fileList.value.length;a++){
            formFileList.push(
               {
                  fileName:fileList.value[a].fileName,
                  fileUrl:''
               }
            )
         }
         ruleForm.value.fileList = formFileList
      }
      // 可选择树
      const treeSelect = ref();
@@ -292,32 +309,45 @@
      // const emit=defineEmits(['myAdd'])
      // 表单提交验证必填项
      const submitForm = async (title: string, formEl: FormInstance | undefined) => {
         if(!ruleForm.value.fileList){
            ruleForm.value.fileList = []
         }
         if (title == '新建事故快报') {
            if (!formEl) return;
            await formEl.validate((valid, fields) => {
               if (valid) {
                  isShowDialog.value = false;
                  ruleForm.value.id = null;
                  accidentManagementSystemApi()
                     .accidentAdd(ruleForm.value)
                     .then((res) => {
                        if (res.data.code == 200) {
                           ElMessage({
                              showClose: true,
                              message: res.data.msg,
                              type: 'success',
                           });
                           emit('myAdd', true);
                        } else {
                           ElMessage({
                              showClose: true,
                              message: res.data.msg,
                              type: 'error',
                           });
                           emit('myAdd', true);
                        }
                        formEl.resetFields();
                  if(ruleForm.value.id==null||ruleForm.value.id==''){
                     ruleForm.value.id = null;
                     accidentManagementSystemApi()
                        .accidentAdd(ruleForm.value)
                        .then((res) => {
                           if (res.data.code == 200) {
                              ElMessage({
                                 showClose: true,
                                 message: res.data.msg,
                                 type: 'success',
                              });
                              emit('myAdd', true);
                           } else {
                              ElMessage({
                                 showClose: true,
                                 message: res.data.msg,
                                 type: 'error',
                              });
                              emit('myAdd', true);
                           }
                           formEl.resetFields();
                        });
                  }else {
                     ElMessage({
                        showClose: true,
                        message: '添加成功',
                        type: 'success',
                     });
                     emit('myAdd', true);
                  }
               } else {
                  console.log('error submit!', fields);
               }
@@ -327,12 +357,6 @@
            await formEl.validate((valid, fields) => {
               if (valid) {
                  isShowDialog.value = false;
                  ruleForm.value.fileList = [
                     // {
                     //    fileUrl: 'url',
                     //    fileName: 'name',
                     // },
                  ];
                  accidentManagementSystemApi()
                     .accidentView(ruleForm.value)
                     .then((res) => {
@@ -343,6 +367,7 @@
                              type: 'success',
                           });
                           emit('myAdd', true);
                           formEl.resetFields();
                        } else {
                           ElMessage({
                              showClose: true,
@@ -351,27 +376,12 @@
                           });
                           emit('myAdd', true);
                        }
                        formEl.resetFields();
                     });
               } else {
                  console.log('error submit!', fields);
               }
            });
            formEl.resetFields();
         }
         ruleForm.value = {
            accidentExpressId: '',
            emergencyPrecautions: '',
            accidentCausesPreliminaryAnalysis: '',
            accidentBriefProcess: '',
            casualties: '',
            accidentCause: '',
            occurrenceTime: '',
            occurrencePlace: '',
            accidentDepartmentId: '',
            accidentName: '',
            fileList: [],
         };
      };
      const resetForm = (formEl: FormInstance | undefined) => {
         isShowDialog.value = false;
@@ -380,6 +390,7 @@
      };
      const closeDialog = (formEl: FormInstance | undefined) => {
         formEl.resetFields();
         fileList.value = []
         console.log(ruleForm);
         isShowDialog.value = false;
      };
@@ -388,13 +399,51 @@
         console.log('tag', ruleForm);
      };
      const ShowUser = ref();
      const openDai = () => {
      const openDai = async (formEl: FormInstance | undefined) => {
            if(ruleForm.value.id==null||ruleForm.value.id==''){
                ElMessage({
                    showClose: true,
                    message: '请先添加事故快报',
                    type: 'info',
                });
            if(!ruleForm.value.fileList){
               ruleForm.value.fileList = []
            }
            if (!formEl) return;
            await formEl.validate((valid, fields) => {
               if (valid) {
                  // isShowDialog.value = false;
                  ElMessageBox.confirm('确认添加此事故快报?', '提示', {
                     confirmButtonText: '确定',
                     cancelButtonText: '取消',
                     type: 'warning',
                  })
                  .then(() => {
                     accidentManagementSystemApi()
                           .accidentAdd(ruleForm.value)
                           .then((res) => {
                              if (res.data.code == 200) {
                                 ElMessage({
                                    showClose: true,
                                    message: res.data.msg,
                                    type: 'success',
                                 });
                                 ruleForm.value.id = res.data.data.id
                                 ShowUser.value.openDialog(ruleForm.value.id, disabled.value);
                              } else {
                                 ElMessage({
                                    showClose: true,
                                    message: res.data.msg,
                                    type: 'error',
                                 });
                              }
                           });
                  })
                  .catch(() => {});
               } else {
                  console.log('error submit!', fields);
               }
            });
                // ElMessage({
                //     showClose: true,
                //     message: '请先添加事故快报',
                //     type: 'info',
                // });
            }else {
                ShowUser.value.openDialog(ruleForm.value.id, disabled.value);
            }
@@ -459,7 +508,7 @@
         getTreeList,
         newTreeList,
         closeDialog,
         fileListDemo,
         successUploader
      };
   },
});