Bladeren bron

fix: 应急预案应急演练部分修改

ai0197 1 maand geleden
bovenliggende
commit
63fb34eb5a

+ 18 - 3
src/views/emergency/emergency-drill/PageDrillPlanList.vue

@@ -49,7 +49,17 @@
                 text="演练执行"
                 @click="handleToExecute(scope.row.id)"
               />
-              <ActionButton v-else-if="scope.row.status < 7" text="演练记录" @click="handleToRecord(scope.row)" />
+              <ActionButton
+                v-else-if="scope.row.status < EMERGENCY_DRILL_STATUS.COMPLETE"
+                text="演练记录"
+                @click="handleToRecord(scope.row)"
+              />
+              <ActionButton
+                class="has-problem"
+                v-else-if="scope.row.status === EMERGENCY_DRILL_STATUS.HAS_PROBLEM"
+                text="演练问题"
+                @click="handleViewDrillPlan(scope.row.id, 'records')"
+              />
               <ActionButton
                 text="删除"
                 :popconfirm="{
@@ -78,7 +88,7 @@
   import { DRILL_PLAN_LIST_SEARCH_CONFIG } from './configs/plan/search';
   import { TABLE_OPTIONS, DRILL_PLAN_LIST_TABLE_COLUMNS } from './configs/plan/table';
   import { DrillPlanListSearch, DrillPlanItem } from './types';
-  import { EMERGENCY_DRILL_STATUS_DICT } from './constants';
+  import { EMERGENCY_DRILL_STATUS, EMERGENCY_DRILL_STATUS_DICT } from './constants';
   import { useEmergencyDrillHook } from './hook';
   import { QueryPageRequest } from '@/types/basic-query';
 
@@ -165,11 +175,12 @@
     });
   }
 
-  function handleViewDrillPlan(id: number) {
+  function handleViewDrillPlan(id: number, tab: string = 'activities') {
     router.push({
       name: 'emergency-drill-plan-view',
       query: {
         id: id,
+        tab: tab,
       },
     });
   }
@@ -200,4 +211,8 @@
   @use '@/styles/page-details-layout.scss' as *;
   @use '@/styles/page-main-layout.scss' as *;
   @use '@/styles/basic-table-action.scss' as *;
+
+  .has-problem {
+    color: #ec2828;
+  }
 </style>

+ 2 - 3
src/views/emergency/emergency-drill/PageDrillPlanView.vue

@@ -28,17 +28,16 @@
 <script setup lang="ts">
   import { ref, computed, defineAsyncComponent } from 'vue';
   import { ElMessage } from 'element-plus';
-  import { useRoute, useRouter } from 'vue-router';
+  import { useRoute } from 'vue-router';
   import UploadLoading from '@/components/UploadLoading.vue';
   import { EMERGENCY_DRILL_DETAIL_SUBPAGE } from './constants';
   import { exportEmergencyDrillRecord } from '@/api/emergency-drill/emergency-drill';
   import { downloadFile } from '@/views/disaster/utils/download';
 
   const formLoading = ref(false);
-  const activeName = ref(EMERGENCY_DRILL_DETAIL_SUBPAGE[0].value);
-  const router = useRouter();
   const route = useRoute();
   const id = route.query.id;
+  const activeName = ref(route.query.tab || EMERGENCY_DRILL_DETAIL_SUBPAGE[0].value);
 
   const dynamicComponent = computed(() => {
     switch (activeName.value) {

+ 1 - 0
src/views/emergency/emergency-drill/constants.ts

@@ -7,6 +7,7 @@ export const EMERGENCY_DRILL_STATUS = {
   WAIT_CHECK: 5, // 记录待审批
   RETURN: 6, // 已退回
   COMPLETE: 7, // 已完成
+  HAS_PROBLEM: 8, // 已完成且有问题分析
 };
 
 export const EMERGENCY_DRILL_STATUS_DICT = {

+ 11 - 0
src/views/emergency/emergency-plan/src/components/AddManagementDetail.vue

@@ -29,6 +29,16 @@
           @change="handleChangeDept"
         />
       </template>
+      <template #professionalTestSite>
+        <el-select v-model="ruleFormData.professionalTestSite" placeholder="请选择作业场所">
+          <el-option
+            v-for="item in PROFESSIONAL_TEST_SITE_DICE"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </el-select>
+      </template>
       <template #approvalTemplateId>
         <el-select
           v-model="ruleFormData.approvalTemplateId"
@@ -56,6 +66,7 @@
   import type { AddEmergencyPlanForm } from '@/types/emergency-plan';
   import type { FileItem } from '@/components/UploadFiles/types.ts';
   import { PLAN_MANAGEMENT_FORM_CONFIG, PLAN_MANAGEMENT_FORM_DATA, PLAN_MANAGEMENT_FORM_RULES } from '../config';
+  import { PROFESSIONAL_TEST_SITE_DICE } from '../constant';
 
   const formRef = ref();
   const cascaderRef = ref();

+ 3 - 6
src/views/emergency/emergency-plan/src/config/form.ts

@@ -35,12 +35,9 @@ export const PLAN_MANAGEMENT_FORM_CONFIG: FormConfig[] = [
     slot: 'deptId',
   },
   {
-    label: '试验专业场所:',
+    label: '业场所:',
     prop: 'professionalTestSite',
-    component: 'ElInput',
-    componentProps: {
-      placeholder: '请输入试验专业场所',
-    },
+    slot: 'professionalTestSite',
   },
   {
     label: '审批流程:',
@@ -88,7 +85,7 @@ export const PLAN_MANAGEMENT_FORM_CONFIG_EDIT: FormConfig[] = [
     },
   },
   {
-    label: '试验专业场所:',
+    label: '业场所:',
     prop: 'professionalTestSite',
     component: 'ElInput',
     componentProps: {

+ 2 - 2
src/views/emergency/emergency-plan/src/config/search.ts

@@ -21,11 +21,11 @@ export const EMERGENCY_PLAN_MANAGEMENT_SEARCH_CONFIG: SearchConfig[] = [
     slot: 'eventType',
   },
   {
-    label: '试验专业场所:',
+    label: '业场所:',
     prop: 'professionalTestSite',
     component: 'ElInput',
     componentProps: {
-      placeholder: '请输入试验专业场所',
+      placeholder: '请输入业场所',
     },
   },
   {

+ 1 - 1
src/views/emergency/emergency-plan/src/config/table.ts

@@ -65,7 +65,7 @@ export const EMERGENCY_PLAN_MANAGEMENT_TABLE_COLUMNS: TableColumnProps[] = [
   BASIC_TABLE_COLUMNS.ENENT_TYPE,
   BASIC_TABLE_COLUMNS.DEPT_NAME,
   {
-    label: '试验专业场所',
+    label: '业场所',
     prop: 'professionalTestSite',
     minWidth: '160px',
   },

+ 37 - 2
src/views/emergency/emergency-plan/src/constant.ts

@@ -41,7 +41,7 @@ export const APPROVAL_TYPE_MAP = {
   [APPROVAL_TYPE.ORDINARY_SIGN]: '或签',
 };
 
-export enum APPROVER_TYPE{
+export enum APPROVER_TYPE {
   FIX = 0,
   CUSTOM,
 }
@@ -82,4 +82,39 @@ export const APPROVAL_STATUS_OPTIONS = [
     label: APPROVAL_STATUS_MAP[APPROVAL_STATUS.OHTER],
     value: APPROVAL_STATUS.OHTER,
   },
-];
+];
+
+export const PROFESSIONAL_TEST_SITE_DICE = [
+  {
+    label: '仓储',
+    value: '仓储',
+  },
+  {
+    label: '住宿',
+    value: '住宿',
+  },
+  {
+    label: '办公',
+    value: '办公',
+  },
+  {
+    label: '服务',
+    value: '服务',
+  },
+  {
+    label: '试验',
+    value: '试验',
+  },
+  {
+    label: '文体活动',
+    value: '文体活动',
+  },
+  {
+    label: '施工',
+    value: '施工',
+  },
+  {
+    label: '其他',
+    value: '其他',
+  },
+];

+ 5 - 5
src/views/emergency/emergency-supplies/src/config/table.ts

@@ -260,11 +260,11 @@ export const SUPPLY_REQUEST_TABLE_COLUMNS: TableColumnProps[] = [
     prop: 'purchaseDate',
     width: '180px',
   },
-  {
-    label: '总价(元)',
-    prop: 'totalPrice',
-    minWidth: '140px',
-  },
+  // {
+  //   label: '总价(元)',
+  //   prop: 'totalPrice',
+  //   minWidth: '140px',
+  // },
   {
     label: '状态',
     prop: 'status',