From 3af4efd1326892c7341aabd1304c671d0a1cfa92 Mon Sep 17 00:00:00 2001 From: LiuJiaNan <15703339975@163.com> Date: Fri, 10 Apr 2026 11:47:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=81=E4=B8=9A=E9=A2=84=E6=A1=88=E7=AE=A1?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- router.md | 2 + src/api/emergencyExercise/index.js | 26 ++++ src/enumerate/namespace/index.js | 1 + .../EmergencyExercise/List/index.js | 143 ++++++++++++++++++ .../PlanAndDrill/EmergencyExercise/index.js | 5 + .../Add/components/GradeResponse/index.js | 25 +-- .../components/OrganizationStructure/index.js | 125 +++++++-------- .../Add/components/PlanAttachments/index.js | 62 ++++---- .../Add/components/PlanInstructions/index.js | 141 ++++++++--------- .../Add/components/PlanResources/index.js | 62 ++++---- .../Add/components/PlanText/index.js | 5 +- .../PlanAndDrill/EnterprisePlan/Add/index.js | 4 - .../PlanAndDrill/EnterprisePlan/List/index.js | 4 +- .../View/components/BasicInfo/index.js | 40 +++++ .../View/components/GradeResponse/index.js | 7 + .../components/OrganizationStructure/index.js | 7 + .../View/components/PlanAttachments/index.js | 7 + .../View/components/PlanInstructions/index.js | 7 + .../View/components/PlanResources/index.js | 7 + .../View/components/PlanText/index.js | 21 +++ .../PlanAndDrill/EnterprisePlan/View/index.js | 71 +++++++++ 21 files changed, 573 insertions(+), 199 deletions(-) create mode 100644 src/api/emergencyExercise/index.js create mode 100644 src/pages/Container/Enterprise/PlanAndDrill/EmergencyExercise/List/index.js create mode 100644 src/pages/Container/Enterprise/PlanAndDrill/EmergencyExercise/index.js create mode 100644 src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/View/components/BasicInfo/index.js create mode 100644 src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/View/components/GradeResponse/index.js create mode 100644 src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/View/components/OrganizationStructure/index.js create mode 100644 src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/View/components/PlanAttachments/index.js create mode 100644 src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/View/components/PlanInstructions/index.js create mode 100644 src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/View/components/PlanResources/index.js create mode 100644 src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/View/components/PlanText/index.js create mode 100644 src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/View/index.js diff --git a/router.md b/router.md index 80fde8b..f7adda2 100644 --- a/router.md +++ b/router.md @@ -66,3 +66,5 @@ `/emergencyRescue/container/enterprise/planAndDrill/enterprisePlan/list` - 预案与演练/应急预案管理 `/emergencyRescue/container/enterprise/planAndDrill/emergencyPlan/list` +- 预案与演练/应急演练管理 + `/emergencyRescue/container/enterprise/planAndDrill/emergencyExercise/list` diff --git a/src/api/emergencyExercise/index.js b/src/api/emergencyExercise/index.js new file mode 100644 index 0000000..842a069 --- /dev/null +++ b/src/api/emergencyExercise/index.js @@ -0,0 +1,26 @@ +import { declareRequest } from "@cqsjjb/jjb-dva-runtime"; + +export const emergencyExerciseList = declareRequest( + "emergencyExerciseLoading", + "Post > @/emergencyRescue/emergencyDrill/list", +); +export const emergencyExerciseInfo = declareRequest( + "emergencyExerciseLoading", + "Get > /emergencyRescue/emergencyDrill/{id}", +); +export const emergencyExerciseAdd = declareRequest( + "emergencyExerciseLoading", + "Post > @/emergencyRescue/emergencyDrill/save", +); +export const emergencyExerciseUpdate = declareRequest( + "emergencyExerciseLoading", + "Put > @/emergencyRescue/emergencyDrill/edit", +); +export const emergencyExerciseDelete = declareRequest( + "emergencyExerciseLoading", + "Delete > @/emergencyRescue/emergencyDrill/{id}", +); +export const emergencyExerciseDeleteBatch = declareRequest( + "emergencyExerciseLoading", + "Delete > @/emergencyRescue/emergencyDrill/ids?ids={ids}", +); diff --git a/src/enumerate/namespace/index.js b/src/enumerate/namespace/index.js index 6d0ce22..baa46d3 100644 --- a/src/enumerate/namespace/index.js +++ b/src/enumerate/namespace/index.js @@ -25,3 +25,4 @@ export const NS_ENTERPRISE_EMERGENCY_PERSONNEL = defineNamespace("enterpriseEmer export const NS_EMERGENCY_RESCUE_TEAM = defineNamespace("emergencyRescueTeam"); export const NS_ENTERPRISE_PLAN = defineNamespace("enterprisePlan"); export const NS_EMERGENCY_PLAN = defineNamespace("emergencyPlan"); +export const NS_EMERGENCY_EXERCISE = defineNamespace("emergencyExercise"); diff --git a/src/pages/Container/Enterprise/PlanAndDrill/EmergencyExercise/List/index.js b/src/pages/Container/Enterprise/PlanAndDrill/EmergencyExercise/List/index.js new file mode 100644 index 0000000..461cc52 --- /dev/null +++ b/src/pages/Container/Enterprise/PlanAndDrill/EmergencyExercise/List/index.js @@ -0,0 +1,143 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { Button, message, Modal, Space } from "antd"; +import { useState } from "react"; +import AddIcon from "zy-react-library/components/Icon/AddIcon"; +import DeleteIcon from "zy-react-library/components/Icon/DeleteIcon"; +import Page from "zy-react-library/components/Page"; +import Search from "zy-react-library/components/Search"; +import Table from "zy-react-library/components/Table"; +import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; +import useTable from "zy-react-library/hooks/useTable"; +import { NS_EMERGENCY_EXERCISE } from "~/enumerate/namespace"; + +function List(props) { + const [selectedRowKeys, setSelectedRowKeys] = useState([]); + + const [form] = Search.useForm(); + + const { tableProps, getData } = useTable(props["emergencyExerciseList"], { + form, + transform: formData => ({ + drillStartTime: formData.drillTime?.[0], + drillEndTime: formData.drillTime?.[1], + }), + }); + + const onDelete = (record) => { + Modal.confirm({ + title: "删除确认", + content: `确定要删除【${record.planName}】吗`, + onOk: async () => { + const { success } = await props["emergencyExerciseDelete"]({ id: record.id }); + if (success) { + message.success("删除成功"); + getData(); + } + }, + }); + }; + + const onDeleteBatch = () => { + if (selectedRowKeys.length === 0) { + message.warning("请选择要删除的记录"); + return; + } + Modal.confirm({ + title: "删除确认", + content: "确认要删除吗?", + onOk: async () => { + const { success } = await props["emergencyExerciseDeleteBatch"]({ ids: selectedRowKeys }); + if (success) { + message.success("删除成功"); + getData(); + } + }, + }); + }; + + return ( + + + { + setSelectedRowKeys(selectedRowKeys); + }, + }} + toolBarRender={() => ( + + + + + )} + columns={[ + { title: "应急演练方案名称", dataIndex: "drillName" }, + { title: "演练单位", dataIndex: "drillUnit" }, + { title: "演练时间", dataIndex: "drillTime" }, + { + title: "操作", + width: 150, + fixed: "right", + render: (_, record) => ( + + + + + + ), + }, + ]} + {...tableProps} + /> + + ); +} + +export default Connect([NS_EMERGENCY_EXERCISE], true)(List); diff --git a/src/pages/Container/Enterprise/PlanAndDrill/EmergencyExercise/index.js b/src/pages/Container/Enterprise/PlanAndDrill/EmergencyExercise/index.js new file mode 100644 index 0000000..421265a --- /dev/null +++ b/src/pages/Container/Enterprise/PlanAndDrill/EmergencyExercise/index.js @@ -0,0 +1,5 @@ +function EmergencyExercise(props) { + return props.children; +} + +export default EmergencyExercise; diff --git a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/Add/components/GradeResponse/index.js b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/Add/components/GradeResponse/index.js index a859f9c..7b7c781 100644 --- a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/Add/components/GradeResponse/index.js +++ b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/Add/components/GradeResponse/index.js @@ -18,7 +18,7 @@ function GradeResponse(props) { }, useStorageQueryCriteria: false, onSuccess: () => { - props.setResponseLevelRefresh(true); + props.mode !== "view" && props.setResponseLevelRefresh(true); }, }); @@ -40,15 +40,19 @@ function GradeResponse(props) {
( - + + {props.mode !== "view" && ( + + )} + )} columns={[ { title: "分级名称", dataIndex: "levelName" }, @@ -58,6 +62,7 @@ function GradeResponse(props) { title: "操作", width: 150, fixed: "right", + hidden: props.mode === "view", render: (_, record) => ( - - - - + {props.mode !== "view" && ( + + + + + + + )}
( - + + {props.mode !== "view" && ( + + )} + )} options={false} columns={[ @@ -165,6 +171,7 @@ function OrganizationStructure(props) { title: "操作", width: 150, fixed: "right", + hidden: props.mode === "view", render: (_, record) => (
( - + + {props.mode !== "view" && ( + + )} + )} options={false} columns={[ @@ -82,24 +86,28 @@ function PlanAttachments(props) { > 下载 - - + {props.mode !== "view" && ( + + )} + {props.mode !== "view" && ( + + )} ), }, diff --git a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/Add/components/PlanInstructions/index.js b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/Add/components/PlanInstructions/index.js index 672dcdc..0ef7696 100644 --- a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/Add/components/PlanInstructions/index.js +++ b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/Add/components/PlanInstructions/index.js @@ -85,75 +85,79 @@ function PlanInstructions(props) { return (
-
- { - const responseLevelName = []; - for (let i = 0; i < values.length; i++) { - responseLevelName.push(getLabelName({ - list: responseLevelList, - status: values[i], - idKey: "id", - nameKey: "levelName", - })); - } - form.setFieldValue("responseLevelName", responseLevelName); + { + props.mode !== "view" && ( +
+ { + const responseLevelName = []; + for (let i = 0; i < values.length; i++) { + responseLevelName.push(getLabelName({ + list: responseLevelList, + status: values[i], + idKey: "id", + nameKey: "levelName", + })); + } + form.setFieldValue("responseLevelName", responseLevelName); + }, + }, }, - }, - }, - { name: "responseLevelName", label: "响应级别名称", onlyForLabel: true }, - { name: "commandContent", label: "指令内容", render: FORM_ITEM_RENDER_ENUM.TEXTAREA }, - { - name: "executingAgencyId", - label: "执行机构", - render: ( - { - form.setFieldValue("executingAgencyName", label); - }} - /> - ), - }, - { name: "executingAgencyName", label: "执行机构名称", onlyForLabel: true }, - ]} - form={form} - onFinish={onSubmit} - /> - - - - -
-
+ { name: "responseLevelName", label: "响应级别名称", onlyForLabel: true }, + { name: "commandContent", label: "指令内容", render: FORM_ITEM_RENDER_ENUM.TEXTAREA }, + { + name: "executingAgencyId", + label: "执行机构", + render: ( + { + form.setFieldValue("executingAgencyName", label); + }} + /> + ), + }, + { name: "executingAgencyName", label: "执行机构名称", onlyForLabel: true }, + ]} + form={form} + onFinish={onSubmit} + /> + + + + +
+ ) + } +
指令列表
(
( - + + {props.mode !== "view" && ( + + )} + )} columns={[ { title: "资源类型", dataIndex: "resourceType" }, @@ -73,24 +77,28 @@ function GradeResponse(props) { > 查看 - - + {props.mode !== "view" && ( + + )} + {props.mode !== "view" && ( + + )} ), }, diff --git a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/Add/components/PlanText/index.js b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/Add/components/PlanText/index.js index c848bb1..ae37820 100644 --- a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/Add/components/PlanText/index.js +++ b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/Add/components/PlanText/index.js @@ -24,10 +24,11 @@ function PlanText(props) { values={{ planName: props.planName, }} + span={24} submitButtonText="保存并下一步" options={[ - { name: "planName", label: "预案名称", span: 24, componentProps: { disabled: true } }, - { name: "planText", label: "预案文本", span: 24, render: FORM_ITEM_RENDER_ENUM.TEXTAREA, required: false }, + { name: "planName", label: "预案名称", componentProps: { disabled: true } }, + { name: "planText", label: "预案文本", render: FORM_ITEM_RENDER_ENUM.TEXTAREA, required: false }, ]} form={form} onFinish={onSubmit} diff --git a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/Add/index.js b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/Add/index.js index 1117d2d..ed79e6d 100644 --- a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/Add/index.js +++ b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/Add/index.js @@ -57,10 +57,6 @@ function Add(props) { planInstructions: "planText", }; - if (urlState.currentStep === "planText") { - return; - } - if (urlState.currentStep === "planAttachments") { setReviewPersonModalVisible(true); return; diff --git a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/List/index.js b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/List/index.js index 8741878..1c9eb5f 100644 --- a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/List/index.js +++ b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/List/index.js @@ -61,7 +61,7 @@ function List(props) { { title: "审核状态", dataIndex: "auditFlag", - render: (_, record) => getLabelName({ list: ENTERPRISE_PLAN_AUDIT_STATUS_ENUM, status: record.auditFlag }) || "暂存", + render: (_, record) => getLabelName({ list: ENTERPRISE_PLAN_AUDIT_STATUS_ENUM, status: record.auditFlag }) || "待完善", }, { title: "操作", @@ -72,7 +72,7 @@ function List(props) {