Kaynağa Gözat

Merge branch 'dev-wyf' into 'dev'

feat: 演练执行修改

See merge request product-group-fe/sfy-safety-group/sfy-safety!140
yunfeng wu 9 ay önce
ebeveyn
işleme
9da35a3c53

+ 0 - 1
src/views/emergency/emergency-drill/components/DrillPlanExecuteForm.vue

@@ -157,7 +157,6 @@
   function unformatAttachment(file?: string) {
     if (!file) return undefined;
     const fileData = JSON.parse(file);
-    console.log(fileData);
     return [fileData];
   }
 </script>

+ 19 - 3
src/views/emergency/emergency-drill/components/DrillPlanExecuteItem.vue

@@ -25,6 +25,7 @@
 
 <script setup lang="ts">
   import { ref, onMounted } from 'vue';
+  import { ElMessage } from 'element-plus';
   import { useRoute } from 'vue-router';
   import { DrillPlanItemDetail } from '../types';
   import { DRILL_VIEW_CONTENT } from '../constants';
@@ -50,6 +51,11 @@
     try {
       drillData.value = await queryEmergencyDrillPlanDetail(id);
 
+      // 解析详情数据
+      drillData.value.drillScope = drillScopeDice.value.find(
+        (x) => x.itemCode === drillData.value!.drillScope,
+      )?.itemValue;
+
       drillData.value.responsibleDeptNameList = drillData.value.responsibleDeptNameList!.replace(/^\[|\]$/g, '');
       drillData.value.coordinateDeptNameList = drillData.value.coordinateDeptNameList
         ? drillData.value.responsibleDeptNameList!.replace(/^\[|\]$/g, '')
@@ -103,7 +109,7 @@
     if (typeof formData.drillScript === 'string') {
       attachmentListRes = formData.drillScript;
     } else if (!formData.drillScript || formData.drillScript.length === 0) {
-      attachmentListRes = null;
+      attachmentListRes = '';
     } else {
       attachmentListRes = JSON.stringify(await formatAttachmentList(formData.drillScript));
     }
@@ -118,9 +124,19 @@
     };
 
     if (mode === 'save') {
-      await saveEmergencyDrillExecute(executeParams);
+      try {
+        await saveEmergencyDrillExecute(executeParams);
+        ElMessage.success('保存成功');
+      } catch (e) {
+        console.log(e);
+      }
     } else {
-      await submitEmergencyDrillExecute(executeParams);
+      try {
+        await submitEmergencyDrillExecute(executeParams);
+        ElMessage.success('提交成功');
+      } catch (e) {
+        console.log(e);
+      }
     }
   }
 

+ 25 - 3
src/views/emergency/emergency-drill/components/DrillPlanViewActivities.vue

@@ -15,14 +15,14 @@
       <div class="data">
         <div v-for="item in DRILL_VIEW_EXECUTE" :key="item.value" class="item">
           <span class="label">{{ item.label }}</span>
-          <a v-if="item.link" class="link" :href="item.link">{{ drillData![item.value] }}</a>
+          <a v-if="item.link" class="link" :href="drillData![item.link]">{{ drillData![item.value] }}</a>
           <span v-else class="value"> {{ drillData![item.value] }}</span>
         </div>
       </div>
     </div>
     <div>
       <div class="name">演练参与部门</div>
-      <el-button style="margin-top: 20px" type="primary" :icon="Download" @click=""> 创建演练计划 </el-button>
+      <el-button style="margin-top: 20px" type="primary" :icon="Download" @click=""> 下载签到名单 </el-button>
       <BasicTable style="margin-top: 20px" :tableConfig="tableConfig" :tableData="drillData.planDetailList!">
       </BasicTable>
     </div>
@@ -40,16 +40,24 @@
   import { getAllApproval } from '@/api/approval/approval';
   import { queryEmergencyDrillPlanDetail, queryEmergencyPlanDetail } from '@/api/emergency-drill/emergency-drill';
   import { DRILL_PLAN_ACTIVITIES_TABLE_OPTIONS, DRILL_PLAN_ACTIVITIES_TABLE_COLUMNS } from '../configs/plan/table';
+  import { useEmergencyDrillHook } from '../hook';
 
   const route = useRoute();
   const id = route.query.id;
   const drillData = ref<DrillPlanItemDetail>();
 
+  const { drillScopeDice, getDrillScopeDict } = useEmergencyDrillHook();
+
   async function getData() {
     try {
       tableConfig.loading = true;
       drillData.value = await queryEmergencyDrillPlanDetail(id);
 
+      // 解析详情数据
+      drillData.value.drillScope = drillScopeDice.value.find(
+        (x) => x.itemCode === drillData.value!.drillScope,
+      )?.itemValue;
+
       drillData.value.responsibleDeptNameList = drillData.value.responsibleDeptNameList!.replace(/^\[|\]$/g, '');
       drillData.value.coordinateDeptNameList = drillData.value.coordinateDeptNameList
         ? drillData.value.responsibleDeptNameList!.replace(/^\[|\]$/g, '')
@@ -64,6 +72,13 @@
       drillData.value.approvalTemplateName = allApprovals.find(
         (x) => x.id === drillData.value!.approvalTemplateId,
       )?.templateName;
+
+      if (drillData.value.drillScript && drillData.value.drillScript.length > 0) {
+        const scriptFile = unformatAttachment(drillData.value.drillScript);
+        console.log(scriptFile);
+        drillData.value.drillScriptName = scriptFile.fileName;
+        drillData.value.drillScriptUrl = scriptFile.fileUrl;
+      }
       tableConfig.loading = false;
     } catch (e) {
       console.log(e);
@@ -76,9 +91,16 @@
     false,
   );
 
-  onMounted(() => {
+  onMounted(async () => {
+    await getDrillScopeDict();
     getData();
   });
+
+  function unformatAttachment(file?: string) {
+    if (!file) return undefined;
+    const fileData = JSON.parse(file);
+    return fileData;
+  }
 </script>
 
 <style scoped>

+ 2 - 2
src/views/emergency/emergency-drill/constants.ts

@@ -90,8 +90,8 @@ export const DRILL_VIEW_EXECUTE = [
   },
   {
     label: '演练脚本:',
-    value: 'drillScript',
-    link: 'drillScript',
+    value: 'drillScriptName',
+    link: 'drillScriptUrl',
   },
   {
     label: '签到码:',

+ 2 - 0
src/views/emergency/emergency-drill/types.ts

@@ -98,6 +98,8 @@ export interface DrillPlanItemDetail {
   drillDeptIdList?: string;
   /*演练脚本 */
   drillScript?: string;
+  drillScriptName?: string;
+  drillScriptUrl?: string;
   /*提交人 */
   createdBy?: number;
   /*创建时间 */