From 6e38a7100c04b121774e89e68102ffbade23c54f Mon Sep 17 00:00:00 2001 From: LiuJiaNan <15703339975@163.com> Date: Wed, 29 Apr 2026 14:35:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=91=E6=8F=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 4 +- public/index.html | 1 + router.md | 2 + src/api/closedCardPort/index.js | 4 + .../index.js | 4 + src/api/drainageWell/index.js | 4 + src/api/emergencyEquipment/index.js | 4 + src/api/emergencyShelter/index.js | 4 + src/api/enterpriseEmergencyPersonnel/index.js | 4 + src/api/enterprisePlan/index.js | 8 + src/api/eventReport/index.js | 4 - .../expertEmergencyRescueExpertGroup/index.js | 4 + src/api/expertEmergencyRescueTeam/index.js | 4 + src/api/firefightingEquipment/index.js | 4 + src/api/materialEquipment/index.js | 4 + src/api/medicalGuaranteeOrganization/index.js | 4 + src/api/rescue/index.js | 42 +++ .../index.js | 4 + .../transportGuaranteeOrganization/index.js | 4 + src/enumerate/namespace/index.js | 1 + .../ExpertEmergencyRescueTeam/View/index.js | 11 +- .../View/index.js | 11 +- .../View/index.js | 11 +- .../View/index.js | 11 +- .../View/index.js | 11 +- .../View/index.js | 11 +- .../EventReport/Add/index.js | 2 + .../EventReport/List/index.js | 24 +- .../EventReport/View/index.js | 2 + .../Command/components/Cesium/cesiumUtils.js | 204 +++++++++++ .../Command/components/Cesium/images/h.png | Bin 0 -> 1491 bytes .../Rescue/Command/components/Cesium/index.js | 132 +++++++ .../Command/components/Cesium/useCesiumMap.js | 140 ++++++++ .../CommandFeedbackRecords/index.js | 110 ++++++ .../components/EventHandlingRecords/index.js | 91 +++++ .../Command/components/MarkOptions/index.js | 255 ++++++++++++++ .../NonContingencyInstructions/index.js | 239 +++++++++++++ .../components/SelectEmergencyPlan/index.js | 163 +++++++++ .../Rescue/Command/images/circle.png | Bin 0 -> 1036 bytes .../Rescue/Command/images/ico1.png | Bin 0 -> 1708 bytes .../Rescue/Command/images/ico10.png | Bin 0 -> 1797 bytes .../Rescue/Command/images/ico11.png | Bin 0 -> 1693 bytes .../Rescue/Command/images/ico12.png | Bin 0 -> 2004 bytes .../Rescue/Command/images/ico13.png | Bin 0 -> 1800 bytes .../Rescue/Command/images/ico2.png | Bin 0 -> 1788 bytes .../Rescue/Command/images/ico3.png | Bin 0 -> 1936 bytes .../Rescue/Command/images/ico4.png | Bin 0 -> 1680 bytes .../Rescue/Command/images/ico5.png | Bin 0 -> 1826 bytes .../Rescue/Command/images/ico6.png | Bin 0 -> 1882 bytes .../Rescue/Command/images/ico7.png | Bin 0 -> 2136 bytes .../Rescue/Command/images/ico8.png | Bin 0 -> 2050 bytes .../Rescue/Command/images/ico9.png | Bin 0 -> 1813 bytes .../Rescue/Command/images/option_bg.png | Bin 0 -> 10073 bytes .../Rescue/Command/images/top.png | Bin 0 -> 82750 bytes .../EmergencyRescue/Rescue/Command/index.js | 56 +++ .../EmergencyRescue/Rescue/Command/index.less | 329 ++++++++++++++++++ .../EmergencyRescue/Rescue/List/index.js | 147 ++++++++ .../Rescue/RescueRecord/index.js | 69 ++++ .../SpecialReport/index.js | 12 +- .../EmergencyRescue/Rescue/View/index.js | 71 ++++ .../EmergencyRescue/Rescue/index.js | 5 + .../ClosedCardPort/View/index.js | 11 +- .../DrainageWell/View/index.js | 11 +- .../EmergencyShelter/View/index.js | 11 +- .../MaterialEquipment/View/index.js | 11 +- 65 files changed, 2201 insertions(+), 74 deletions(-) create mode 100644 src/api/rescue/index.js create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/Cesium/cesiumUtils.js create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/Cesium/images/h.png create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/Cesium/index.js create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/Cesium/useCesiumMap.js create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/CommandFeedbackRecords/index.js create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/EventHandlingRecords/index.js create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/MarkOptions/index.js create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/NonContingencyInstructions/index.js create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/SelectEmergencyPlan/index.js create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/circle.png create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico1.png create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico10.png create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico11.png create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico12.png create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico13.png create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico2.png create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico3.png create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico4.png create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico5.png create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico6.png create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico7.png create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico8.png create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico9.png create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/option_bg.png create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/top.png create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/index.js create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/index.less create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/List/index.js create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/RescueRecord/index.js rename src/pages/Container/Enterprise/EmergencyRescue/{EmergencyReporting/EventReport => Rescue}/SpecialReport/index.js (92%) create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/View/index.js create mode 100644 src/pages/Container/Enterprise/EmergencyRescue/Rescue/index.js diff --git a/package.json b/package.json index c66d67d..a47b37c 100644 --- a/package.json +++ b/package.json @@ -25,13 +25,15 @@ "@cqsjjb/jjb-common-lib": "latest", "@cqsjjb/jjb-dva-runtime": "latest", "@cqsjjb/jjb-react-admin-component": "latest", + "@rc-component/virtual-list": "^1.0.2", "ahooks": "^3.9.5", "antd": "^5.27.6", "dayjs": "^1.11.7", + "immer": "^11.1.4", "lodash-es": "^4.17.21", "react": "^18.2.0", "react-dom": "^18.2.0", - "zy-react-library": "^1.2.32" + "zy-react-library": "^1.2.39" }, "devDependencies": { "@antfu/eslint-config": "^5.4.1", diff --git a/public/index.html b/public/index.html index 9bfa85d..a43118e 100644 --- a/public/index.html +++ b/public/index.html @@ -10,6 +10,7 @@ + <% for (const item of $links) { %> <% } %> diff --git a/router.md b/router.md index 56c9c21..4c0e71b 100644 --- a/router.md +++ b/router.md @@ -80,6 +80,8 @@ `/emergencyRescue/container/enterprise/emergencyRescue/duty/schedulingRegistration/list` - 应急救援/应急接报/事件接报 `/emergencyRescue/container/enterprise/emergencyRescue/emergencyReporting/eventReport/list` +- 应急救援/救援 + `/emergencyRescue/container/enterprise/emergencyRescue/rescue/list` - 应急救援/应急知识库/案例库 `/emergencyRescue/container/enterprise/emergencyRescue/emergencyKnowledgeLibrary/case/list` - 应急救援/应急知识库/危险货物库 diff --git a/src/api/closedCardPort/index.js b/src/api/closedCardPort/index.js index b9f0aca..1d3717c 100644 --- a/src/api/closedCardPort/index.js +++ b/src/api/closedCardPort/index.js @@ -4,6 +4,10 @@ export const closedCardPortList = declareRequest( "closedCardPortLoading", "Post > @/emergencyRescue/closedCheckpointInfo/list", ); +export const closedCardPortListAll = declareRequest( + "closedCardPortLoading", + "Get > /emergencyRescue/closedCheckpointInfo/listAll", +); export const closedCardPortInfo = declareRequest( "closedCardPortLoading", "Get > /emergencyRescue/closedCheckpointInfo/{id}", diff --git a/src/api/communicationGuaranteeOrganization/index.js b/src/api/communicationGuaranteeOrganization/index.js index c79bb4b..a6ff9af 100644 --- a/src/api/communicationGuaranteeOrganization/index.js +++ b/src/api/communicationGuaranteeOrganization/index.js @@ -4,6 +4,10 @@ export const communicationGuaranteeOrganizationList = declareRequest( "communicationGuaranteeOrganizationLoading", "Post > @/emergencyRescue/communicationSecurityAgency/list", ); +export const communicationGuaranteeOrganizationListAll = declareRequest( + "communicationGuaranteeOrganizationLoading", + "Get > /emergencyRescue/communicationSecurityAgency/listAll", +); export const communicationGuaranteeOrganizationInfo = declareRequest( "communicationGuaranteeOrganizationLoading", "Get > /emergencyRescue/communicationSecurityAgency/{id}", diff --git a/src/api/drainageWell/index.js b/src/api/drainageWell/index.js index a495513..0b6e16a 100644 --- a/src/api/drainageWell/index.js +++ b/src/api/drainageWell/index.js @@ -4,6 +4,10 @@ export const drainageWellList = declareRequest( "drainageWellLoading", "Post > @/emergencyRescue/drainageWellInfo/list", ); +export const drainageWellListAll = declareRequest( + "drainageWellLoading", + "Get > /emergencyRescue/drainageWellInfo/listAll", +); export const drainageWellInfo = declareRequest( "drainageWellLoading", "Get > /emergencyRescue/drainageWellInfo/{id}", diff --git a/src/api/emergencyEquipment/index.js b/src/api/emergencyEquipment/index.js index 24794c1..c779bbf 100644 --- a/src/api/emergencyEquipment/index.js +++ b/src/api/emergencyEquipment/index.js @@ -4,6 +4,10 @@ export const emergencyEquipmentList = declareRequest( "emergencyEquipmentLoading", "Post > @/emergencyRescue/emergencyEquipmentManagement/list", ); +export const emergencyEquipmentListAll = declareRequest( + "emergencyEquipmentLoading", + "Get > /emergencyRescue/emergencyEquipmentManagement/listAll", +); export const emergencyEquipmentInfo = declareRequest( "emergencyEquipmentLoading", "Get > /emergencyRescue/emergencyEquipmentManagement/{id}", diff --git a/src/api/emergencyShelter/index.js b/src/api/emergencyShelter/index.js index d3e672d..0c6ccb6 100644 --- a/src/api/emergencyShelter/index.js +++ b/src/api/emergencyShelter/index.js @@ -4,6 +4,10 @@ export const emergencyShelterList = declareRequest( "emergencyShelterLoading", "Post > @/emergencyRescue/placeInfo/list", ); +export const emergencyShelterListAll = declareRequest( + "emergencyShelterLoading", + "Get > /emergencyRescue/placeInfo/listAll", +); export const emergencyShelterInfo = declareRequest( "emergencyShelterLoading", "Get > /emergencyRescue/placeInfo/{id}", diff --git a/src/api/enterpriseEmergencyPersonnel/index.js b/src/api/enterpriseEmergencyPersonnel/index.js index fed94a1..819a56d 100644 --- a/src/api/enterpriseEmergencyPersonnel/index.js +++ b/src/api/enterpriseEmergencyPersonnel/index.js @@ -4,6 +4,10 @@ export const enterpriseEmergencyPersonnelList = declareRequest( "enterpriseEmergencyPersonnelLoading", "Post > @/emergencyRescue/enterpriseEmergencyPersonnel/list", ); +export const enterpriseEmergencyPersonnelListAll = declareRequest( + "enterpriseEmergencyPersonnelLoading", + "Get > /emergencyRescue/enterpriseEmergencyPersonnel/listAll", +); export const enterpriseEmergencyPersonnelInfo = declareRequest( "enterpriseEmergencyPersonnelLoading", "Get > /emergencyRescue/enterpriseEmergencyPersonnel/{id}", diff --git a/src/api/enterprisePlan/index.js b/src/api/enterprisePlan/index.js index 83c3a5e..63dfe44 100644 --- a/src/api/enterprisePlan/index.js +++ b/src/api/enterprisePlan/index.js @@ -4,6 +4,10 @@ export const enterprisePlanBasicInfoList = declareRequest( "enterprisePlanBasicInfoLoading", "Post > @/emergencyRescue/enterprisePlanBasicInfo/list", ); +export const enterprisePlanBasicInfoListAll = declareRequest( + "enterprisePlanBasicInfoLoading", + "Get > /emergencyRescue/enterprisePlanBasicInfo/listAll", +); export const enterprisePlanBasicInfoInfo = declareRequest( "enterprisePlanBasicInfoLoading", "Get > /emergencyRescue/enterprisePlanBasicInfo/{id}", @@ -76,6 +80,10 @@ export const enterprisePlanOrganizationPersonnelList = declareRequest( "enterprisePlanOrganizationPersonnelLoading", "Post > @/emergencyRescue/enterprisePlanOrganizationPersonnel/list", ); +export const enterprisePlanOrganizationPersonnelListAll = declareRequest( + "enterprisePlanOrganizationPersonnelLoading", + "Get > /emergencyRescue/enterprisePlanOrganizationPersonnel/listAll", +); export const enterprisePlanOrganizationPersonnelInfo = declareRequest( "enterprisePlanOrganizationPersonnelLoading", "Get > /emergencyRescue/enterprisePlanOrganizationPersonnel/{id}", diff --git a/src/api/eventReport/index.js b/src/api/eventReport/index.js index 6413720..f1b8d32 100644 --- a/src/api/eventReport/index.js +++ b/src/api/eventReport/index.js @@ -16,7 +16,3 @@ export const eventReportRescue = declareRequest( "eventReportLoading", "Post > @/emergencyRescue/eventReport/triggerRescue", ); -export const eventReportSpecialReportSave = declareRequest( - "eventReportSpecialReportLoading", - "Post > @/emergencyRescue/eventReportSpecial/save", -); diff --git a/src/api/expertEmergencyRescueExpertGroup/index.js b/src/api/expertEmergencyRescueExpertGroup/index.js index 2181a87..d14be49 100644 --- a/src/api/expertEmergencyRescueExpertGroup/index.js +++ b/src/api/expertEmergencyRescueExpertGroup/index.js @@ -4,6 +4,10 @@ export const expertEmergencyRescueExpertGroupList = declareRequest( "expertEmergencyRescueExpertGroupLoading", "Post > @/emergencyRescue/emergencyRescueExpertGroup/list", ); +export const expertEmergencyRescueExpertGroupListAll = declareRequest( + "expertEmergencyRescueExpertGroupLoading", + "Get > /emergencyRescue/emergencyRescueExpertGroup/listAll", +); export const expertEmergencyRescueExpertGroupInfo = declareRequest( "expertEmergencyRescueExpertGroupLoading", "Get > /emergencyRescue/emergencyRescueExpertGroup/{id}", diff --git a/src/api/expertEmergencyRescueTeam/index.js b/src/api/expertEmergencyRescueTeam/index.js index 374fd20..f9fec1b 100644 --- a/src/api/expertEmergencyRescueTeam/index.js +++ b/src/api/expertEmergencyRescueTeam/index.js @@ -4,6 +4,10 @@ export const expertEmergencyRescueTeamList = declareRequest( "expertEmergencyRescueTeamLoading", "Post > @/emergencyRescue/emergencyRescueTeam/list", ); +export const expertEmergencyRescueTeamListAll = declareRequest( + "expertEmergencyRescueTeamLoading", + "Get > /emergencyRescue/emergencyRescueTeam/listAll", +); export const expertEmergencyRescueTeamInfo = declareRequest( "expertEmergencyRescueTeamLoading", "Get > /emergencyRescue/emergencyRescueTeam/{id}", diff --git a/src/api/firefightingEquipment/index.js b/src/api/firefightingEquipment/index.js index 7e1b847..0914849 100644 --- a/src/api/firefightingEquipment/index.js +++ b/src/api/firefightingEquipment/index.js @@ -4,6 +4,10 @@ export const firefightingEquipmentList = declareRequest( "firefightingEquipmentLoading", "Post > @/emergencyRescue", ); +export const firefightingEquipmentListAll = declareRequest( + "firefightingEquipmentLoading", + "Get > /emergencyRescue", +); export const fireAreaListAll = declareRequest( "firefightingEquipmentLoading", "Get > /fireCheck/fireRegion/listAll", diff --git a/src/api/materialEquipment/index.js b/src/api/materialEquipment/index.js index 2a2a43d..9cdbb4f 100644 --- a/src/api/materialEquipment/index.js +++ b/src/api/materialEquipment/index.js @@ -4,6 +4,10 @@ export const materialEquipmentList = declareRequest( "materialEquipmentLoading", "Post > @/emergencyRescue/materialEquipmentWarehouse/list", ); +export const materialEquipmentListAll = declareRequest( + "materialEquipmentLoading", + "Get > /emergencyRescue/materialEquipmentWarehouse/listAll", +); export const materialEquipmentInfo = declareRequest( "materialEquipmentLoading", "Get > /emergencyRescue/materialEquipmentWarehouse/{id}", diff --git a/src/api/medicalGuaranteeOrganization/index.js b/src/api/medicalGuaranteeOrganization/index.js index d7abeaf..8d17065 100644 --- a/src/api/medicalGuaranteeOrganization/index.js +++ b/src/api/medicalGuaranteeOrganization/index.js @@ -4,6 +4,10 @@ export const medicalGuaranteeOrganizationList = declareRequest( "medicalGuaranteeOrganizationLoading", "Post > @/emergencyRescue/medicalSecurityAgency/list", ); +export const medicalGuaranteeOrganizationListAll = declareRequest( + "medicalGuaranteeOrganizationLoading", + "Get > /emergencyRescue/medicalSecurityAgency/listAll", +); export const medicalGuaranteeOrganizationInfo = declareRequest( "medicalGuaranteeOrganizationLoading", "Get > /emergencyRescue/medicalSecurityAgency/{id}", diff --git a/src/api/rescue/index.js b/src/api/rescue/index.js new file mode 100644 index 0000000..0883c21 --- /dev/null +++ b/src/api/rescue/index.js @@ -0,0 +1,42 @@ +import { declareRequest } from "@cqsjjb/jjb-dva-runtime"; + +export const rescueUpdateStatus = declareRequest( + "rescueLoading", + "Post > @/emergencyRescue/eventReport/endRescue", +); +export const eventReportSpecialReportSave = declareRequest( + "rescueLoading", + "Post > @/emergencyRescue/eventReportSpecial/save", +); +export const eventReportSpecialReportInfo = declareRequest( + "rescueLoading", + "Get > /emergencyRescue/eventReportSpecial/{id}", +); +export const rescueExecutionRecordList = declareRequest( + "rescueLoading", + "Get > /emergencyRescue/rescueInstructionExecutorFeedback/queryByRescueIdList/{id}", +); +export const rescueEventHandlingRecordList = declareRequest( + "rescueLoading", + "Post > @/emergencyRescue/rescueHandlingRecord/list", +); +export const rescueEventHandlingRecordListAll = declareRequest( + "rescueLoading", + "Get > /emergencyRescue/rescueHandlingRecord/listAll/{id}", +); +export const rescueCommandUsePlan = declareRequest( + "rescueLoading", + "Post > @/emergencyRescue/rescueInstruction/addBatch", +); +export const rescueCommandFeedbackRecords = declareRequest( + "rescueLoading", + "Get > /emergencyRescue/rescueInstructionExecutorFeedback/queryByRescueId/{id}", +); +export const rescueCommandSendCommand = declareRequest( + "rescueLoading", + "Post > @/emergencyRescue/rescueInstruction/save", +); +export const rescueCommandEventHandlingRecordsAdd = declareRequest( + "rescueLoading", + "Post > @/emergencyRescue/rescueHandlingRecord/save", +); diff --git a/src/api/technicalSupportGuaranteeOrganization/index.js b/src/api/technicalSupportGuaranteeOrganization/index.js index f1f15e4..da12396 100644 --- a/src/api/technicalSupportGuaranteeOrganization/index.js +++ b/src/api/technicalSupportGuaranteeOrganization/index.js @@ -4,6 +4,10 @@ export const technicalSupportGuaranteeOrganizationList = declareRequest( "technicalSupportGuaranteeOrganizationLoading", "Post > @/emergencyRescue/technicalSupportAgency/list", ); +export const technicalSupportGuaranteeOrganizationListAll = declareRequest( + "technicalSupportGuaranteeOrganizationLoading", + "Get > /emergencyRescue/technicalSupportAgency/listAll", +); export const technicalSupportGuaranteeOrganizationInfo = declareRequest( "technicalSupportGuaranteeOrganizationLoading", "Get > /emergencyRescue/technicalSupportAgency/{id}", diff --git a/src/api/transportGuaranteeOrganization/index.js b/src/api/transportGuaranteeOrganization/index.js index 0ddc3bc..627eafa 100644 --- a/src/api/transportGuaranteeOrganization/index.js +++ b/src/api/transportGuaranteeOrganization/index.js @@ -4,6 +4,10 @@ export const transportGuaranteeOrganizationList = declareRequest( "transportGuaranteeOrganizationLoading", "Post > @/emergencyRescue/transportSecurityAgency/list", ); +export const transportGuaranteeOrganizationListAll = declareRequest( + "transportGuaranteeOrganizationLoading", + "Get > /emergencyRescue/transportSecurityAgency/listAll", +); export const transportGuaranteeOrganizationInfo = declareRequest( "transportGuaranteeOrganizationLoading", "Get > /emergencyRescue/transportSecurityAgency/{id}", diff --git a/src/enumerate/namespace/index.js b/src/enumerate/namespace/index.js index 8a7339b..379d167 100644 --- a/src/enumerate/namespace/index.js +++ b/src/enumerate/namespace/index.js @@ -30,3 +30,4 @@ export const NS_DUTY_LOG = defineNamespace("dutyLog"); export const NS_EVENT_REPORT = defineNamespace("eventReport"); export const NS_EMERGENCY_KNOWLEDGE_LIBRARY = defineNamespace("emergencyKnowledgeLibrary"); export const NS_SCHEDULING_REGISTRATION = defineNamespace("schedulingRegistration"); +export const NS_RESUE = defineNamespace("rescue"); diff --git a/src/pages/Container/Enterprise/EmergencyOrganization/EmergencyExpertTeam/ExpertEmergencyRescueTeam/View/index.js b/src/pages/Container/Enterprise/EmergencyOrganization/EmergencyExpertTeam/ExpertEmergencyRescueTeam/View/index.js index 88b77fb..5410fb8 100644 --- a/src/pages/Container/Enterprise/EmergencyOrganization/EmergencyExpertTeam/ExpertEmergencyRescueTeam/View/index.js +++ b/src/pages/Container/Enterprise/EmergencyOrganization/EmergencyExpertTeam/ExpertEmergencyRescueTeam/View/index.js @@ -11,20 +11,23 @@ function View(props) { const [info, setInfo] = useState({}); const getData = async () => { - const { data } = await props["expertEmergencyRescueTeamInfo"]({ id: query.id }); + if (!props.id && !query.id) + return; + + const { data } = await props["expertEmergencyRescueTeamInfo"]({ id: query.id || query.id }); setInfo(data); }; useEffect(() => { getData(); - }, []); + }, [props.id]); return ( - + { - const { data } = await props["enterpriseEmergencyOrganizationInfo"]({ id: query.id }); + if (!props.id && !query.id) + return; + + const { data } = await props["enterpriseEmergencyOrganizationInfo"]({ id: props.id || query.id }); setInfo(data); }; useEffect(() => { getData(); - }, []); + }, [props.id]); return ( - + { - const { data } = await props["communicationGuaranteeOrganizationInfo"]({ id: query.id }); + if (!props.id && !query.id) + return; + + const { data } = await props["communicationGuaranteeOrganizationInfo"]({ id: props.id || query.id }); setInfo(data); }; useEffect(() => { getData(); - }, []); + }, [props.id]); return ( - + { - const { data } = await props["medicalGuaranteeOrganizationInfo"]({ id: query.id }); + if (!props.id && !query.id) + return; + + const { data } = await props["medicalGuaranteeOrganizationInfo"]({ id: props.id || query.id }); setInfo(data); }; useEffect(() => { getData(); - }, []); + }, [props.id]); return ( - + { - const { data } = await props["technicalSupportGuaranteeOrganizationInfo"]({ id: query.id }); + if (!props.id && !query.id) + return; + + const { data } = await props["technicalSupportGuaranteeOrganizationInfo"]({ id: props.id || query.id }); setInfo(data); }; useEffect(() => { getData(); - }, []); + }, [props.id]); return ( - + { - const { data } = await props["transportGuaranteeOrganizationInfo"]({ id: query.id }); + if (!props.id && !query.id) + return; + + const { data } = await props["transportGuaranteeOrganizationInfo"]({ id: props.id || query.id }); setInfo(data); }; useEffect(() => { getData(); - }, []); + }, [props.id]); return ( - + ) }, ]} form={form} diff --git a/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/List/index.js b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/List/index.js index 1c1be99..7b8e2fa 100644 --- a/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/List/index.js +++ b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/List/index.js @@ -22,7 +22,7 @@ function List(props) { occurrenceStartTime: formData.occurrenceTime?.[0], occurrenceEndTime: formData.occurrenceTime?.[1], }), - params: { corpId: query.corpinfoId }, + params: { corpId: query.corpinfoId, isEventOrRescue: 1 }, }); const onRescue = async (id) => { @@ -104,28 +104,6 @@ function List(props) { 查看 )} - {(!props.isRecord && props.permission("qyd-event-report-special-report")) && ( - - )} ), }, diff --git a/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/View/index.js b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/View/index.js index a8bae40..fb25507 100644 --- a/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/View/index.js +++ b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/View/index.js @@ -30,9 +30,11 @@ function View(props) { { label: "接入方式", children: info.accessModeName }, { label: "机主姓名", children: info.ownerName }, { label: "呼入电话", children: info.incomingCall }, + { label: "事件标题", children: info.eventTitle }, { label: "事件类型", children: info.eventType }, { label: "接报时间", children: info.reportTime }, { label: "发生时间", children: info.occurrenceTime }, + { label: "所在地址", children: info.locationAddress }, { label: "经度", children: info.longitude }, { label: "纬度", children: info.latitude }, ]} diff --git a/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/Cesium/cesiumUtils.js b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/Cesium/cesiumUtils.js new file mode 100644 index 0000000..016777c --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/Cesium/cesiumUtils.js @@ -0,0 +1,204 @@ +export const getPosition = (x, y, z = 0.0) => { + return window.Cesium.Cartesian3.fromDegrees(x, y, z); +}; + +export const createId = () => { + return window.Cesium.createGuid(); +}; + +export const filterNull = (arr = [], longitudeKey = "longitude", latitudeKey = "latitude") => { + return arr.filter(item => item[longitudeKey] && item[latitudeKey]); +}; + +export const createTextCanvas = (text) => { + return new Promise((resolve) => { + if (!text) { + resolve(null); + return; + } + const canvas = document.createElement("canvas"); + const ctx = canvas.getContext("2d"); + const ratio = window.devicePixelRatio || 1; + const fontSize = 14 * ratio; + const fontFamily = "Arial, sans-serif"; + const paddingX = Math.round(7 * ratio); + const paddingY = Math.round(5 * ratio); + + ctx.font = `${fontSize}px ${fontFamily}`; + const textMetrics = ctx.measureText(text); + const textWidth = textMetrics.width; + const canvasWidth = Math.ceil(textWidth + paddingX * 2); + const canvasHeight = Math.ceil(fontSize + paddingY * 2); + + canvas.style.width = `${canvasWidth / ratio}px`; + canvas.style.height = `${canvasHeight / ratio}px`; + canvas.width = canvasWidth * ratio; + canvas.height = canvasHeight * ratio; + + ctx.scale(ratio, ratio); + ctx.font = `${fontSize}px ${fontFamily}`; + ctx.fillStyle = "rgba(20, 58, 142, 1)"; + ctx.fillRect(0, 0, canvasWidth, canvasHeight); + ctx.fillStyle = "#ffffff"; + ctx.textBaseline = "top"; + ctx.textRendering = "geometricPrecision"; + + const drawX = Math.round(paddingX); + const drawY = Math.round(paddingY); + ctx.fillText(text, drawX, drawY); + + resolve({ + base64: canvas.toDataURL(), + width: canvasWidth, + height: canvasHeight, + }); + }); +}; + +export const createImgCanvas = (imageUrl) => { + return new Promise((resolve, reject) => { + const img = new Image(); + img.crossOrigin = "Anonymous"; + img.src = imageUrl; + + img.onload = () => { + const canvas = document.createElement("canvas"); + const ctx = canvas.getContext("2d"); + canvas.width = img.width; + canvas.height = img.height; + ctx.drawImage(img, 0, 0); + + resolve({ + base64: canvas.toDataURL(), + width: img.width, + height: img.height, + }); + }; + + img.onerror = (error) => { + reject(new Error(`Failed to load image: ${error}`)); + }; + }); +}; + +const imgCanvasCache = new Map(); + +export const getBillboardCanvases = async (imageUrl, text, spacing = 5) => { + let imgPromise; + if (imgCanvasCache.has(imageUrl)) { + imgPromise = imgCanvasCache.get(imageUrl); + } + else { + imgPromise = createImgCanvas(imageUrl); + imgCanvasCache.set(imageUrl, imgPromise); + } + + const [imgResult, textResult] = await Promise.all([ + imgPromise, + createTextCanvas(text), + ]); + + if (!textResult) { + return { + base64: imgResult.base64, + width: imgResult.width, + height: imgResult.height, + }; + } + + const canvas = document.createElement("canvas"); + const ctx = canvas.getContext("2d"); + const maxWidth = Math.max(imgResult.width, textResult.width); + const totalHeight = textResult.height + imgResult.height + spacing; + + canvas.width = maxWidth; + canvas.height = totalHeight; + + const loadImage = base64 => + new Promise((resolve, reject) => { + const img = new Image(); + img.onload = () => resolve(img); + img.onerror = reject; + img.src = base64; + }); + + const [image, textImage] = await Promise.all([ + loadImage(imgResult.base64), + loadImage(textResult.base64), + ]); + + const textX = (maxWidth - textResult.width) / 2; + const imageX = (maxWidth - imgResult.width) / 2; + + ctx.drawImage(textImage, textX, 0); + ctx.drawImage( + image, + imageX, + textResult.height + spacing, + imgResult.width, + imgResult.height, + ); + + return { + base64: canvas.toDataURL(), + width: maxWidth, + height: totalHeight, + }; +}; + +export const getBillboard = async ({ image, name = "" }) => { + const { base64, width, height } = await getBillboardCanvases(image, name); + return { + image: base64, + width, + height, + verticalOrigin: window.Cesium.VerticalOrigin.BOTTOM, + horizontalOrigin: window.Cesium.HorizontalOrigin.CENTER, + heightReference: window.Cesium.HeightReference.CLAMP_TO_GROUND, + disableDepthTestDistance: Number.POSITIVE_INFINITY, + clampToGround: true, + }; +}; + +export const createEntityCollection = (name) => { + return new window.Cesium.CustomDataSource(`${name}_${createId()}`); +}; + +export const removeEntityCollection = (viewer, name) => { + viewer.dataSources._dataSources + .filter(ds => ds.name.startsWith(`${name}_`)) + .forEach((item) => { + viewer.dataSources.remove(item); + }); +}; + +export const createMergedEntityCollection = (viewer, name) => { + const mergedDataSource = createEntityCollection(name); + viewer.dataSources._dataSources + .filter(ds => + ds.name.startsWith(`${name.substring(0, name.indexOf("Merged"))}_`), + ) + .forEach((dataSource) => { + dataSource.entities.values.forEach((entity) => { + mergedDataSource.entities.add(entity); + }); + }); + return mergedDataSource; +}; + +export const addMergedEntityCollection = async (viewer, firstName, lastName = "") => { + const mergedDataSource = createMergedEntityCollection(viewer, `${firstName}Merged${lastName ? `_${lastName}` : ""}`); + await viewer.dataSources.add(mergedDataSource); + removeEntityCollection(viewer, `${firstName}${lastName ? `_${lastName}` : ""}`); + return mergedDataSource; +}; + +export const chunkedLoad = async (dataArray, chunkSize = 10, processItem) => { + const results = []; + for (let i = 0; i < dataArray.length; i += chunkSize) { + const chunk = dataArray.slice(i, i + chunkSize); + const chunkResults = await Promise.all(chunk.map(processItem)); + results.push(...chunkResults.filter(Boolean)); + } + return results; +}; diff --git a/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/Cesium/images/h.png b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/Cesium/images/h.png new file mode 100644 index 0000000000000000000000000000000000000000..31cec4a4f8d93446bbc76b3a2b5021143e38e523 GIT binary patch literal 1491 zcmeAS@N?(olHy`uVBq!ia0vp^;y^6P!3HF6DQvv};*_{XlmzFem6RtIr7}3CY?O))XmO*Ar1(=|&rOfoV}vM^0aN`aY!O~0eDi?fr7i?gYtvzwuz ztCORFv5}*po2#RVo0+4tvlC3OXI^nhVqS78%|UUo?>$}CGwaVyHtRR9OFRVEe(5a)S_ z{uFWpPao(geNak4N;xngU~&X8;rRf_f#;;uJYe=I0_GE)K(R&!2F7omE{-7;x0X!v z)o=+EIeuPNp0n3*iVn}jH99&QKtOS+hUerUF)^_)v1?*VH~qwNR3^`Qqrv@2kh@yd z?93iR;}hXCPky$)S8M9~{p{?@_gB_`ez*JipXYn3{g(^wS|=R6WMN~`8D_SF0x#Hm z5AaWVz&WRZxqzi^v#`6#+xyce-Kugt;eF+$Xw#~V8qBH+&LPKZ65jh>e}1ns??aVX z%<5IAw|W*x2`t(ydgyCJh)3dPskqO-&E6=l0mC za<$LZA&-2Y>K#q3b5PZb$(qe{irY6WrfWH`cyMQY-A<9|Kf|>?epo%n*w6Rbd(ET4 zE-QPwl`9p!4!m7`#IQR<`Q3)9ncLa+txY?fHAmxD { + setModalVisible(true); + setModalType(value.mapType); + setModalTitle(value.data.modalTitle); + if (value.mapType === "default") { + setModalInfo(props.urlState); + } + else { + setModalInfo(value.data); + } + }); + + const { loadCesiumMap, initCesiumMap, drawScope, addMarkPoint, removeMarkPoint } = useCesiumMap(mackClickEvent); + + useMount(async () => { + await loadCesiumMap(); + initCesiumMap(); + }); + + const onDrawScope = (values) => { + drawScope(values.scope); + }; + + return ( +
+
+ 确定 }, + ]} + form={form} + onFinish={onDrawScope} + /> +
+
+ + { + modalVisible && ( + { + setModalVisible(false); + setModalType(""); + setModalTitle(""); + setModalInfo({}); + }} + /> + ) + } +
+ ); +} + +const MarkModal = (props) => { + const info = props.info; + const id = props.info.id; + const type = props.type; + + return ( + 取消, + ]} + > + { + type === "default" && ( + + ) + } + {type === "materialEquipment" && } + {type === "emergencyShelter" && } + {type === "drainageWell" && } + {type === "closedCardPort" && } + {type === "expertEmergencyRescueTeam" && } + {type === "transportGuaranteeOrganization" && } + {type === "medicalGuaranteeOrganization" && } + {type === "communicationGuaranteeOrganization" && } + {type === "technicalSupportGuaranteeOrganization" && } + {type === "enterpriseEmergencyOrganization" && } + + ); +}; + +export default Cesium; diff --git a/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/Cesium/useCesiumMap.js b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/Cesium/useCesiumMap.js new file mode 100644 index 0000000..39543fe --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/Cesium/useCesiumMap.js @@ -0,0 +1,140 @@ +import { useRef } from "react"; +import CesiumMap from "zy-react-library/components/Map/CesiumMap"; +import { dynamicLoadCss, dynamicLoadJs } from "zy-react-library/utils"; +import { + addMergedEntityCollection, + chunkedLoad, + createEntityCollection, + createId, + filterNull, + getBillboard, + getPosition, + removeEntityCollection, +} from "./cesiumUtils"; +import defaultBillboardImage from "./images/h.png"; + +export const useCesiumMap = (mackClickEvent) => { + const mapInstanceRef = useRef(null); + + const loadCesiumMap = async () => { + if (!window.Cesium) { + if (window?.base?.loadDynamicResource) { + await window.base.loadDynamicResource({ + url: "https://cesium.com/downloads/cesiumjs/releases/1.91/Build/Cesium/Cesium.js", + type: "script", + attr: { type: "text/javascript" }, + }); + await window.base.loadDynamicResource({ + url: "https://cesium.com/downloads/cesiumjs/releases/1.91/Build/Cesium/Widgets/widgets.css", + type: "link", + attr: { rel: "stylesheet", type: "text/css" }, + }); + } + else { + await dynamicLoadJs("https://cesium.com/downloads/cesiumjs/releases/1.91/Build/Cesium/Cesium.js"); + await dynamicLoadCss("https://cesium.com/downloads/cesiumjs/releases/1.91/Build/Cesium/Widgets/widgets.css"); + } + } + }; + + const flyTo = ({ longitude, latitude, height }) => { + mapInstanceRef.current.camera.flyTo({ + destination: getPosition(longitude, latitude, height), + duration: 2, + }); + }; + + const registerClickEvent = () => { + mapInstanceRef.current.cesiumWidget.screenSpaceEventHandler.removeInputAction(window.Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK); + mapInstanceRef.current.cesiumWidget.screenSpaceEventHandler.removeInputAction(window.Cesium.ScreenSpaceEventType.LEFT_CLICK); + const screenSpaceEventHandler = new window.Cesium.ScreenSpaceEventHandler(mapInstanceRef.current.scene.canvas); + screenSpaceEventHandler.setInputAction((movement) => { + const pick = mapInstanceRef.current.scene.pick(movement.position); + if (window.Cesium.defined(pick) && pick.id?.id && pick.id?.monitorItems) { + const data = pick.id.monitorItems.data; + const mapType = data.mapType.substring(data.mapType.indexOf("_") + 1); + mackClickEvent.emit({ mapType, data: pick.id.monitorItems.data }); + } + }, window.Cesium.ScreenSpaceEventType.LEFT_CLICK); + }; + + const addMarkPoint = async (pointList, options) => { + await chunkedLoad(filterNull(pointList), 10, async (item) => { + const entityCollection = createEntityCollection( + `markEntityCollection_${options.mapType}`, + ); + const name = item[options.nameKey] || ""; + entityCollection.entities.add( + new window.Cesium.Entity({ + id: createId(), + name, + position: getPosition(item.longitude, item.latitude), + billboard: await getBillboard({ image: options.mapIcon || defaultBillboardImage, name }), + monitorItems: { + data: { ...item, mapType: `标记点_${options.mapType}`, modalTitle: options.modalTitle }, + }, + }), + ); + mapInstanceRef.current.dataSources.add(entityCollection); + }); + await addMergedEntityCollection( + mapInstanceRef.current, + "markEntityCollection", + options.mapType, + ); + }; + + const removeMarkPoint = (mapType) => { + removeEntityCollection(mapInstanceRef.current, `markEntityCollectionMerged${mapType ? `_${mapType}` : ""}`); + }; + + const initCesiumMap = () => { + const { init } = new CesiumMap(); + const { viewer } = init(); + mapInstanceRef.current = viewer; + flyTo({ longitude: window.mapLongitude, latitude: window.mapLatitude, height: 2000 }); + addMarkPoint([{ longitude: window.mapLongitude, latitude: window.mapLatitude }], { mapType: "default", modalTitle: "事件" }); + registerClickEvent(); + return viewer; + }; + + const getViewer = () => { + return mapInstanceRef.current; + }; + + const drawScope = (radius) => { + const viewer = mapInstanceRef.current; + if (!viewer || !radius) + return; + + const existingEntity = viewer.entities.getById("scopeCircle"); + if (existingEntity) { + viewer.entities.remove(existingEntity); + } + + viewer.entities.add({ + id: "scopeCircle", + position: getPosition(window.mapLongitude, window.mapLatitude), + ellipse: { + semiMinorAxis: radius, + semiMajorAxis: radius, + material: window.Cesium.Color.RED.withAlpha(0.3), + outline: true, + outlineColor: window.Cesium.Color.RED, + outlineWidth: 2, + }, + }); + + flyTo({ longitude: window.mapLongitude, latitude: window.mapLatitude, height: radius * 3 }); + }; + + return { + viewer: mapInstanceRef.current, + loadCesiumMap, + initCesiumMap, + getViewer, + drawScope, + addMarkPoint, + removeMarkPoint, + }; +}; diff --git a/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/CommandFeedbackRecords/index.js b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/CommandFeedbackRecords/index.js new file mode 100644 index 0000000..7f5ed4e --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/CommandFeedbackRecords/index.js @@ -0,0 +1,110 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import VirtualList from "@rc-component/virtual-list"; +import { useInterval } from "ahooks"; +import { Image, Space } from "antd"; +import { useEffect, useState } from "react"; +import { NS_RESUE } from "~/enumerate/namespace"; +import circle from "../../images/circle.png"; + +function CommandFeedbackRecords(props) { + const [list, setList] = useState([]); + + const getData = async () => { + const { data } = await props["rescueCommandFeedbackRecords"]({ id: props.id }); + setList(data || []); + }; + + props.getCommandEvent.useSubscription(() => { + getData(); + }); + + useInterval(() => { + getData(); + }, 5000); + + useEffect(() => { + getData(); + }, []); + + return ( +
+
+ + 预案指令反馈记录 +
+
+ {list.length > 0 + ? ( + + {item => ( +
+
+
+
+
+ 指令编号: + {item.commandNumber} +
+
+ 发送时间: + {item.sendTime} +
+
+ 指令类型: + {item.commandType} +
+
+ 指令内容: + {item.commandContent} +
+
+
+ {item.rescueInstructionExecutorFeedbackCOList.map((feedback, feedbackIndex) => ( +
+
+
+
+ 指令反馈 + {String(item.rescueInstructionExecutorFeedbackCOList.length - feedbackIndex).padStart(2, "0")} +
+
+ 反馈时间: + {feedback.feedbackTime} +
+
+ 指令执行状态: + {feedback.commandStatus} +
+
+ 反馈内容: + {feedback.feedbackContent} +
+
+ 现场图片: +
+ + {(feedback.feedbackImageUrl ? feedback.feedbackImageUrl.split(",") : []).map((img, imgIndex) => ( + feedback + ))} + +
+
+
+
+ ))} +
+ )} + + ) + :
暂无数据
} +
+
+ ); +} + +export default Connect([NS_RESUE], true)(CommandFeedbackRecords); diff --git a/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/EventHandlingRecords/index.js b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/EventHandlingRecords/index.js new file mode 100644 index 0000000..7bdc5ea --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/EventHandlingRecords/index.js @@ -0,0 +1,91 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import VirtualList from "@rc-component/virtual-list"; +import { Button, Input, message, Space } from "antd"; +import { useEffect, useState } from "react"; +import { NS_RESUE } from "~/enumerate/namespace"; +import circle from "~/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/circle.png"; + +function EventHandlingRecords(props) { + const [list, setList] = useState([]); + const [value, setValue] = useState(""); + + const getData = async () => { + const { data } = await props["rescueEventHandlingRecordListAll"]({ id: props.id }); + setList(data || []); + }; + + useEffect(() => { + getData(); + }, []); + + const onSubmit = async () => { + if (!value) { + message.error("请输入内容"); + return; + } + const { success } = await props["rescueCommandEventHandlingRecordsAdd"]({ + rescueId: props.id, + handlingContent: value, + }); + if (success) { + message.success("添加成功"); + setValue(""); + getData(); + } + }; + + return ( +
+
+ + 事件处置记录 +
+
+ {list.length > 0 + ? ( + + {item => ( +
+
+
{item.handlingTime}
+
{item.handlingContent}
+
+ )} + + ) + : ( +
+ 暂无数据 +
+ )} +
+ setValue(e.target.value)} + maxLength={500} + showCount={true} + rows={3} + /> +
+ + + +
+
+
+
+ ); +} + +export default Connect([NS_RESUE], true)(EventHandlingRecords); diff --git a/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/MarkOptions/index.js b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/MarkOptions/index.js new file mode 100644 index 0000000..1fc61e9 --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/MarkOptions/index.js @@ -0,0 +1,255 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { produce } from "immer"; +import { useState } from "react"; +import { + NS_CLOSED_CARD_PORT, + NS_COMMUNICATION_GUARANTEE_ORGANIZATION, + NS_DRAINAGE_WELL, + NS_EMERGENCY_EQUIPMENT, + NS_EMERGENCY_SHELTER, + NS_ENTERPRISE_EMERGENCY_ORGANIZATION, + NS_EXPERT_EMERGENCY_RESCUE_EXPERT_GROUP, + NS_EXPERT_EMERGENCY_RESCUE_TEAM, + NS_FIREFIGHTING_EQUIPMENT, + NS_MATERIAL_EQUIPMENT, + NS_MEDICAL_GUARANTEE_ORGANIZATION, + NS_TECHNICAL_SUPPORT_GUARANTEE_ORGANIZATION, + NS_TRANSPORT_GUARANTEE_ORGANIZATION, +} from "~/enumerate/namespace"; +// import ico1 from "../../images/ico1.png"; +import ico2 from "../../images/ico2.png"; +import ico3 from "../../images/ico3.png"; +import ico4 from "../../images/ico4.png"; +import ico5 from "../../images/ico5.png"; +import ico6 from "../../images/ico6.png"; +import ico7 from "../../images/ico7.png"; +// import ico8 from "../../images/ico8.png"; +import ico9 from "../../images/ico9.png"; +import ico10 from "../../images/ico10.png"; +import ico11 from "../../images/ico11.png"; +import ico12 from "../../images/ico12.png"; +import ico13 from "../../images/ico13.png"; +import option_bg from "../../images/option_bg.png"; + +function MarkOptions(props) { + const [list, setList] = useState([ + { + title: "应急救援物资", + checked: false, + children: [ + // { + // title: "应急装备", + // checked: false, + // icon: ico1, + // nameKey: "equipmentName", + // action: props["emergencyEquipmentListAll"], + // type: "emergencyEquipment", + // }, + { + title: "物资装备库", + checked: false, + icon: ico2, + nameKey: "warehouseName", + action: props["materialEquipmentListAll"], + type: "materialEquipment", + }, + { + title: "应急避难场所", + checked: false, + icon: ico3, + nameKey: "placeName", + action: props["emergencyShelterListAll"], + type: "emergencyShelter", + }, + { + title: "消防物资", + checked: false, + icon: ico4, + action: props["firefightingEquipmentListAll"], + type: "firefightingEquipment", + }, + { + title: "排水井", + checked: false, + icon: ico5, + nameKey: "wellName", + action: props["drainageWellListAll"], + type: "drainageWell", + }, + { + title: "封闭卡口", + checked: false, + icon: ico6, + nameKey: "checkpointName", + action: props["closedCardPortListAll"], + type: "closedCardPort", + }, + ], + }, + { + title: "应急专家队伍", + checked: false, + children: [ + { + title: "应急救援队伍", + checked: false, + icon: ico7, + nameKey: "teamName", + action: props["expertEmergencyRescueTeamListAll"], + type: "expertEmergencyRescueTeam", + }, + // { + // title: "应急救援专家组", + // checked: false, + // icon: ico8, + // nameKey: "groupName", + // action: props["expertEmergencyRescueExpertGroupListAll"], + // type: "expertEmergencyRescueExpertGroup", + // }, + ], + }, + { + title: "专业保障机构", + checked: false, + children: [ + { + title: "运输保障机构", + checked: false, + icon: ico9, + nameKey: "agencyName", + action: props["transportGuaranteeOrganizationListAll"], + type: "transportGuaranteeOrganization", + }, + { + title: "医疗保障机构", + checked: false, + icon: ico10, + nameKey: "agencyName", + action: props["medicalGuaranteeOrganizationListAll"], + type: "medicalGuaranteeOrganization", + }, + { + title: "通讯保障机构", + checked: false, + icon: ico11, + nameKey: "agencyName", + action: props["communicationGuaranteeOrganizationListAll"], + type: "communicationGuaranteeOrganization", + }, + { + title: "技术支持机构", + checked: false, + icon: ico12, + nameKey: "agencyName", + action: props["technicalSupportGuaranteeOrganizationListAll"], + type: "technicalSupportGuaranteeOrganization", + }, + ], + }, + { + title: "企业应急机构", + checked: false, + icon: ico13, + nameKey: "agencyName", + action: props["enterpriseEmergencyOrganizationListAll"], + type: "enterpriseEmergencyOrganization", + }, + ]); + + const onClickFirst = async (item, index) => { + setList(produce((draft) => { + draft.forEach((draftItem, draftIndex) => { + (draftIndex !== index && draftItem.children) && (draftItem.checked = false); + }); + draft[index].checked = !draft[index].checked; + })); + if (item.action) { + if (item.checked) { + props.removeMarkPoint(item.type); + return; + } + const { data } = await item.action(); + props.addMarkPoint(data, { + mapType: item.type, + mapIcon: item.icon, + modalTitle: item.title, + nameKey: item.nameKey, + }); + } + }; + + const onClickLast = async (parentIndex, item, index) => { + setList(produce((draft) => { + draft[parentIndex].children[index].checked = !draft[parentIndex].children[index].checked; + })); + if (item.action) { + if (item.checked) { + props.removeMarkPoint(item.type); + return; + } + const { data } = await item.action(); + props.addMarkPoint(data, { + mapType: item.type, + mapIcon: item.icon, + modalTitle: item.title, + nameKey: item.nameKey, + }); + } + }; + + return ( +
+ { + list.map((item, index) => ( +
+
{ + onClickFirst(item, index); + }} + > +
{item.title}
+
+ {item.checked && item.children && ( +
+ { + item.children.map((child, childIndex) => ( +
{ + onClickLast(index, child, childIndex); + }} + > +
{child.title}
+
+ )) + } +
+ )} +
+ )) + } +
+ ); +} + +export default Connect([ + NS_EMERGENCY_EQUIPMENT, + NS_MATERIAL_EQUIPMENT, + NS_EMERGENCY_SHELTER, + NS_FIREFIGHTING_EQUIPMENT, + NS_DRAINAGE_WELL, + NS_CLOSED_CARD_PORT, + NS_EXPERT_EMERGENCY_RESCUE_TEAM, + NS_EXPERT_EMERGENCY_RESCUE_EXPERT_GROUP, + NS_TRANSPORT_GUARANTEE_ORGANIZATION, + NS_MEDICAL_GUARANTEE_ORGANIZATION, + NS_COMMUNICATION_GUARANTEE_ORGANIZATION, + NS_TECHNICAL_SUPPORT_GUARANTEE_ORGANIZATION, + NS_ENTERPRISE_EMERGENCY_ORGANIZATION, +], true)(MarkOptions); diff --git a/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/NonContingencyInstructions/index.js b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/NonContingencyInstructions/index.js new file mode 100644 index 0000000..4eaa19a --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/NonContingencyInstructions/index.js @@ -0,0 +1,239 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import VirtualList from "@rc-component/virtual-list"; +import { message, Modal } from "antd"; +import { useEffect, useState } from "react"; +import FormBuilder from "zy-react-library/components/FormBuilder"; +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_ENTERPRISE_EMERGENCY_PERSONNEL, NS_ENTERPRISE_PLAN, NS_RESUE } from "~/enumerate/namespace"; +import circle from "~/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/circle.png"; + +function NonContingencyInstructions(props) { + const [sendCommandModalVisible, setSendCommandModalVisible] = useState(false); + const [currentInfo, setCurrentInfo] = useState({}); + const [modalSubTitle, setModalSubTitle] = useState(""); + + const { + tableProps: enterprisePlanOrganizationPersonnelTableProps, + getData: enterprisePlanOrganizationPersonnelGetData, + } = useTable(props["enterprisePlanOrganizationPersonnelListAll"], { + params: { planId: props.planId }, + usePagination: false, + useStorageQueryCriteria: false, + manual: true, + }); + const { tableProps: enterpriseEmergencyPersonnelTableProps } = useTable(props["enterpriseEmergencyPersonnelListAll"], { + usePagination: false, + useStorageQueryCriteria: false, + }); + + useEffect(() => { + props.planId && enterprisePlanOrganizationPersonnelGetData(); + }, [props.planId]); + + return ( +
+
+ + 非预案指令发送 +
+
+ { + props.planId && ( + <> +
预案应急救援机构人员
+
+
+
姓名
+
组内岗位
+
联系电话
+
操作
+
+
0 ? "transparent" : "#fff"}` }} + > + { + enterprisePlanOrganizationPersonnelTableProps.dataSource.length > 0 + ? ( + + {item => ( + + )} + + ) + : ( +
+ 暂无数据 +
+ ) + } +
+
+ + ) + } +
+
企业应急救援机构人员
+
+
+
姓名
+
行政职务
+
联系电话
+
操作
+
+
0 ? "transparent" : "#fff"}` }} + > + { + enterpriseEmergencyPersonnelTableProps.dataSource.length > 0 + ? ( + + {item => ( + + )} + + ) + : ( +
+ 暂无数据 +
+ ) + } +
+
+
+ { + sendCommandModalVisible && ( + { + setSendCommandModalVisible(false); + setCurrentInfo({}); + }} + /> + ) + } +
+
+ ); +} + +const SendCommandModalComponent = (props) => { + const [form] = FormBuilder.useForm(); + + const onSubmit = async (values) => { + const { success } = await props["rescueCommandSendCommand"]({ + ...values, + rescueId: props.id, + userId: props.info.id, + }); + if (success) { + message.success("发送成功"); + props.onCancel(); + props.getCommandEvent.emit(); + } + }; + + return ( + + {props.subTitle}} + options={false} + disabledResizer={true} + pagination={false} + columns={props.subTitle === "预案应急救援机构人员" + ? [ + { title: "所属机构", dataIndex: "organizationName" }, + { title: "姓名", dataIndex: "userName" }, + { title: "职务", dataIndex: "position" }, + { title: "组内岗位", dataIndex: "groupPost" }, + { title: "联系电话", dataIndex: "contactPhone" }, + ] + : [ + { title: "姓名", dataIndex: "userName" }, + { title: "行政职务", dataIndex: "administrativePosition" }, + { title: "行政级别", dataIndex: "administrativeLevel" }, + { title: "联系电话", dataIndex: "contactPhone" }, + ]} + dataSource={[props.info]} + /> + + + ); +}; + +const SendCommandModal = Connect([NS_RESUE], true)(SendCommandModalComponent); +export default Connect([NS_RESUE, NS_ENTERPRISE_EMERGENCY_PERSONNEL, NS_ENTERPRISE_PLAN], true)(NonContingencyInstructions); diff --git a/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/SelectEmergencyPlan/index.js b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/SelectEmergencyPlan/index.js new file mode 100644 index 0000000..415fdca --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/components/SelectEmergencyPlan/index.js @@ -0,0 +1,163 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { Button, Space } from "antd"; +import { useEffect, useState } from "react"; +import FormBuilder from "zy-react-library/components/FormBuilder"; +import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; +import { getLabelName } from "zy-react-library/utils"; +import { NS_ENTERPRISE_PLAN, NS_RESUE } from "~/enumerate/namespace"; + +function SelectEmergencyPlan(props) { + const [form] = FormBuilder.useForm(); + + const [enterprisePlanList, setEnterprisePlanList] = useState([]); + const [responseLevelList, setResponseLevelList] = useState([]); + const [isActivatePlan, setIsActivatePlan] = useState(false); + const [info, setInfo] = useState({}); + + const getEnterprisePlanList = async () => { + const { data } = await props["enterprisePlanBasicInfoListAll"]({ auditFlag: 2 }); + setEnterprisePlanList(data); + }; + + const getResponseLevelList = async (planId) => { + const { data } = await props["enterprisePlanLevelResponseListAll"]({ planId }); + setResponseLevelList(data); + }; + + useEffect(() => { + getEnterprisePlanList(); + }, []); + + useEffect(() => { + if (props.urlState.planId) { + setIsActivatePlan(true); + setInfo(props.urlState); + props.setUrlState({ + planId: props.urlState.planId, + planName: props.urlState.planName, + responseLevel: props.urlState.responseLevel, + responseLevelName: props.urlState.responseLevelName, + }); + props.getCommandEvent.emit(); + } + }, [props.urlState]); + + useEffect(() => { + props.urlState.planId && getResponseLevelList(props.urlState.planId); + }, [props.urlState.planId]); + + const onActivatePlan = async (values) => { + const { success } = await props["rescueCommandUsePlan"]({ rescueId: props.id, ...values }); + if (success) { + setIsActivatePlan(true); + setInfo(values); + props.setUrlState({ + planId: values.planId, + planName: values.planName, + responseLevel: values.responseLevel, + responseLevelName: values.responseLevelName, + }); + props.getCommandEvent.emit(); + } + }; + + const onChangePlan = () => { + setIsActivatePlan(false); + form.setFieldsValue(info); + }; + + return ( +
+
+ { + !isActivatePlan + ? ( + <> + 0, + onChange: (value) => { + if (value) { + getResponseLevelList(value); + form.setFieldValue("planName", getLabelName({ + list: enterprisePlanList, + status: value, + nameKey: "planName", + idKey: "id", + })); + } + else { + setResponseLevelList([]); + } + }, + }, + }, + { name: "planName", label: "企业预案名称", onlyForLabel: true }, + { + name: "responseLevel", + label: "响应级别", + render: FORM_ITEM_RENDER_ENUM.SELECT, + items: responseLevelList, + itemsField: { labelKey: "levelName", valueKey: "id" }, + componentProps: { + onChange: (value) => { + form.setFieldValue("responseLevelName", getLabelName({ + list: responseLevelList, + status: value, + nameKey: "levelName", + idKey: "id", + })); + }, + }, + }, + { name: "responseLevelName", label: "响应级别名称", onlyForLabel: true }, + ]} + form={form} + onFinish={onActivatePlan} + showActionButtons={false} + /> +
+ + + +
+ + ) + : ( +
+
+
+ 预案名称: + {info.planName} +
+
+ 响应级别: + {info.responseLevelName} +
+
+
+ + + +
+
+ ) + } +
+
+ ); +} + +export default Connect([NS_ENTERPRISE_PLAN, NS_RESUE], true)(SelectEmergencyPlan); diff --git a/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/circle.png b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/circle.png new file mode 100644 index 0000000000000000000000000000000000000000..022f57411a58d41e6633e3698c9496d4cfde14eb GIT binary patch literal 1036 zcmV+n1oQieP)zNNlHeoGL9&gis633PlwUMKmm6L8VNMOT2> z!m0>S5S1#?2ZC0DA|XoCD1YA^Xg4zVm%&hVb~)VDNuPHNlT6ZN}k0k7$P`gO&ldyXmPT%>wT9fIz?wL^P5E{`uM4`sd=tluAoSiz+h!3 z!S#P#Xc03#7NJ^@O;}0I9;_S0m}}`Z-{=phah<=axxpK?f-^wU4hckCh;MLp*+H{! z;lOA%#<7D5s`>w6%!#e*Z$#cVboM4MR5Ia2-c^z|$zBHQy9U<;(heQS7{CZgqDRF` z@RGnPd8=yAJU=wt3^I%K`7PcV)KS561R^bL`7wTc;G!8QcmlDZSw)Gw1@czQCV2T^ zjB?Hu4nw*_C(%BA`3JW(;-VuUC4Fyf?cmydg-r~>)8bc}oq*&O#tCZF!SoZrzT#l& zl^u(S9G@=C@;oQzNuk@$(B0X_;{7%J)vI9FtH>--3No=lA=toVp@sT^8ghl9^mkdr z%27*n>2JQ!3(ad`%$~A-$c*f^H?jDjiMeY5RIa8h%V7(1IAxVO^6-C!hb`HJrF|D0)SFI4Xih?6}DHH38ld`!35tyfOeRN%W5{w*LUOe$(K|oP-nr0000U@VzGi~ zr&?@5D@rZ3C;`NdazpU~QP6sTC{&OEJ6g0-v{Gv~2-rVLcV>6L@0<7D?|M6%Cyoel zcJOe(U@*?YP*8%tm!h{P)*gNKKKilGdVmOINEEC>OmYK+;VIz+2oP%JiI4=6E7P{L zL;e_yt(QhBLu8_Gjsn(_A(;1zU*^3;_Ji98^FHA#%X1P1YGXW-fk8mxHdY#}qs;1woRy z_%}((L}Gvs8z6v5_9ZE3K1^Uen@sa%_^{dQ06LY%qEJ~B8iPdh<@iuJbUHA7;n8RY zrHUf~gQsJmJ1$<0AbJjkVltV?CI%TcBvNQ>Hk(4FQ|NROiXa)&bcozc(isUe3Ls=u z7&LlB1M2{*qC5dkLAZD{(>En(^|P`%<8+(QhEdFNJ%vW5T1%P%ibVep)oN$aMnnR= z&G$crjnXtdM3F#7IK`kq2d5%fL+Lqu10+XagA|67XSyg>!w76t!+LRjTTJf@oDTJ275h?xyF6-yy zQqW{5*5UqZ*fU3{gRIM0>!O=k^Fun+@dnh|pJ8KQ^ov<81bI^PorVLSgyJG`7rQ#M zdQYzMB1L}T&Z7hgLMb`HAT+-ECZEEUHr?X$B5&};k#wH-*x`sJd<@679>6)A^$x9Eabyde2KKWu#c{BG^@!;zo5j8|Ui3M~A?^2)mh z6O(iPh>P6@SCHp;c7d+mS+A%e4kq-qcv1(xYi_|=Y*x0?#3Q~@^-seqbDk~2_Efmv z$k}bV3{|_B?Zdok|B7o}Ugd;66R!I^w`CV;{_VT;`=+W6l3@~GI&937)YX;+9J?EV zl(A1tdQ~lqKa+3QnwQ+~FB316()X)je*R$Q(!x+n*kp$-Zo)Clp-`d;870|gl}I|%^yk^0xr_lVaH9_vjD*qk@99}GX| zJ@{4cL1x#Y2afi_pM#{&N_Stc8)&N`t>MHOX z8ydzkN59p}2->i1zxyQLi{ImU+S#0&SwoH@to`QFWOwndiq#>i++`I-@f~&G;~m#c zLSyQ{$4Oo#yvDS(A&=GkHHC}+{GmL9BgifrjgNAJHXi~6(Z|buN*o+*kO|?T;?ka` zJ3dJ-G%k$2^w{7UwV;#fwCuw+p{s2p$j|I4CYlG8C(bHxDdSZhBRSETJs`XG*n{x% zr}xAiwe7U!Pn0em!N22Cu%=`sPwwh%zrwS_>8fp2_odc0(2174>&qjmb5At$PJGl- zaoFFkzTol|cU-G?JaT1UUV;jLfqs9YI-n_YU~BY+%{AVt9CPaSZrPG`SD$3-h5{zq zvCD7t4fO9LHYfYFTn=0plTooU#?fuxNo?Hw7psU*+M5`VAZz<#SDRO5C0`d{1#=KlDb#X~hD#E>34K5C; zEJ)Q4N-fSWElLJPT$(b-ssbzLqSVBa{GyQj{2W*)24v)yZ;TfrYWFtEHi#o1uk~g_)(f zvzv*Nfw7yVt0PRWOMY@`Zfaf$Om7N8uO&{spyZHS0JPa9wJ5VJHN~wcKUV?lZL3V& zZZX4Y9#n4%Znv1@)TkrMZl!J?{BOsFvpa7 zx;TbZ+}aZs?I98<@h|<@%}8_JqhZ^9rcXMt1w zzwiHx?hF|DLgYz1tnfob-tT@;M1J(@oE}@!dCG z@p_lcTkV)bia1+s*G)|-DomUoRSa2G?(wW##B0&Fxc151 zFU!@_F79(E5NTtMzv3NpWzvMTOSKkfZ!U9kJhn^XbJ1lP!}qHbyua*SyI*kD9@A6V zYDvnE8Xx@-N^OalIe%Z<%d6`d<#*Kh-P+XhB6CvpWUF1%H1=+iVVNg9qkGTiy)9bL zJ#QH~i+=6cr?zFWirG?gjnlsvy?UQ0=|-FUdYLuCaF# z-XojCJb!!fV$mus3hG zv8_g_^H^`zB)v(+XP8nq9{krNyhB*-j0*twRdQ0gmp@v33iQ3yq>*yg zNIgQ~{4SF@PZ!QVz;AYV&6AxQ650-X%*+h5{?{hRE2+!RmU>HSO4e6DE5Y)qRl+|^ zxq_V5bc;oXUtkfb?A)nzG5Dma%ld6x@=kvg>fh~Nci_d3?=xIk&MSVHaHPX_kCc=PwkzYkI}3##Wi_^;n? zq-|^+E^>6!${3>)ejh5=?Y>?-yK>@%6Fasa-(1~itIqykfA*o35#81r=~51BuI^mB zWWp?ub2`i{dM=zwev(-tT%ldpN*v zy_LmM3jhGDgubYldM}~wW#)6J=l$p9-Npk_5JCpwk)&QqU;tl^M_`~(EmdG*Oe&At z)qr^bfY~agB!mnRZGvUEnkhA6mCsu@t7<> z@<>>W`b@^6b_hL+B(*RE>GgW1p2Nfm1;paL&&JXMcNxfX<=^ylae?g!SU#+E(S#5B(96XwV=1Rv1>fgVT)2D z$MrhL364kv3pF}Ys*zzr6rocpOr=r|dka{6HpiRA5eRrJmJiFF$Ks)GT#gUN1$A-f zx=nFWTo$9oG~^Ul{*lX`k!!SrT1!PnF+v%O$$bc14NjB|D`(7QozIMVlU(`Cxj4_r zg{Wj8<8c2q?5QKlLB{2@b*as?`7sUUc!IL_@a++6>Wi@wqI`*=>vHyXUkQJ4-Bn%B zSEa`VTWJG}&~QOvHH!MS&A!82^fz7d+M0&QQ6DG;rROZ*AG1AsCnaz+pa40zp;{8l zD!c3C+T2)}Wn0;Uyi%T8^ zc_nt=2?<}*2KL#`9~v|<%_{%&of{%ACAatLh6|rQR@h{WMz1KUYE)vq+q!ahuk5_S zyi~tD>Tp7G9_X`oa94P6^63Mk<#N}~B*sW+N1>`9%W{r=+&=%?wZ-gh`JpzBhrT^t z1ofQkWPFm!y*ak8sy3|cSCjMm5);CpI2u&`n%n+OH_fpgSYBXXyd$@d{HrByeBk#X z&kaYLPW{!W9Iqxgj_ws9%wI??&rEhhv3P zYUN7iYfBYi-*5KPIwvQyX?_0c6!L5Cm@eSK@TZ^8*RS1c(tYi~3CqoeFNUNq4d+Z1 z6;DrQ*GIF1jxbgkuJ13YvH!)t3)q+%zcsu5P)Q?q|GHjy?e!+P%V?%s`19ce+OzhE z*rRrH0|QeMHW$(EtM464o4w!bO}vGE%r2${oX;G$5N70+6>#_#jGX0fw?ABPrRd)7 zy4J2mgTYVy`mv6i$#&`2H#WMY2iTO%X>~Q-l++jQE3s)E5=e65NiZRcIEWMi za#6t&6;TmHU@TCmXoygXqQ!#JWwZiC(Rx8e8EJtkvL{yT{#f?RoO8bKo%ea(=Y79t z<}+;F687mz*Oe#~>Qinwn~(fmkk{ST2KoN}Q5Nye`0U?2*$%u5!Vs7d5S0%Ayk7g}=gI)w^BqfmiCI+akI25K-OFh!46VjY4HG{4r!AX#;_{fk2|*NHl;- z1juB}hX;#PgC)rTpUwGD3)wNTQjJCh5C~eW7O$n?AvlFVVlWs4BAGxYTpW6$07q8REuGmN+W}m7z?9N1f^@3SVZX`EhtnUX_e{^V?qW-&47Bfe)&obXbfWT(XCylnP+Mpil$Bu@EF*oZ?m~q=D2@ zNQGgsEK_4(d=g|z38Yo~zQ^!*09UEj2$f=x%VuH`7Q9R*0Z1$oiyTU&QbI$6NhA&_ zgi5D{1QXeeUnc2KC0%4`sp?FJHDqu#|+(Mr4a;1jq=FpGoAg< zM|u~2Ru3>|$iv@E{qtD&f;oNsToY{2l}SA(*H0LnPuV}tKg^~#2Q}t6#qXWS-|w7| zRow1*renl0>*#EGN%^e5{7mozk5N{p-MZDS!})@q;;q`bNDsZCcJI@7-iEdL=_Y1&Ul-Q(nC2c0tW9o_jl`MUi^^vn zU5>g@Jk>pNgY)BxPTLEs_F-SJ|4|X1I$`yNch)lJ1#y%7FGs*=qvr(CYh9&VSkeH_ zn`Sqr!>-E1d!~;xwXUIXY|M{49kGQ&0k`tj z8x90KcVcXAT=T9ia_Ur~@3)O4T-LE#-{f}uWyb(ddWfjSHt)*A^F0q=K5?J0V@MQx z))ouyL}6>a;eQhbLpv(AKTYeKlwe%VSicR&?|7g`jm;kYePHO-qnGkj=J@Potc`18 z;=aleWE~93H&52?NQx-+|*kQy#>Iy;38_69p#p-huT~zuXHG+1S~CJzMI$ zf-^)L4?gk5TdT8&%WUS99@$&tA{9s0!|| zr!{{au@&52*GHzteRr?ie!MbUFnsF#YHigIIaktsh5R~b){j(HbbGAz)y>n>nWb;v zav}|ee#T1k>rJ@BUuEAEV)z9W^dK1>G})XuBsRKx=7a(PhDQb4RvgGwsA| zMGsuv|D}4?=9jd4$zuuO_nw6mk2QE)FMLs7Kkx9MTD=3qxrq85AJO97RARl;@8Rr~ z-eV(%N&ld{D-xm07ZJ>`oAH1x8sC8i8;aCVF#S%m)Oz@N-kucz=5Jkbkut<`)vlVtD z5Oi0|h2dDZU?W$IC@3N=hN4lZa5jP9=AluE#4#`iM8Z*WB@Y~JxDEnx2@eco31|Wp zAC}2|lTbJ$DL^PriV<@ppocr)rs3iO3K$as8bz#9&DHS054v3ZtaVdC-~$AU;ej8M z3Ks+dd<2C77KKd~)0r&5g+rmUotYet6TqO+U8yuzD&3h(XLFe}E`tHgTp%6|l}Ne4 zkk3pk+~R>U3{!Eb)P#ftN`f;5L8GX24u?afF{lg%8Ap)SiAqeQAuH9kvkDNb7Nc?% zCP$QjR#6m*#9=%T&-7yn3e}vfQa#fqykS(0NJXVnXxfryfdaw*LlufSv>FSBKjr(M z!fIin3Z@3bY9tO71YAF*8WSnSuph(&aTSVOF5$Yka6I|0UMy#CZ%;bihwjQ^xq3nz8k>e2Y#+uf z7ed5w3RsEFawVU*?0LD`bx^4A$PkRm<6(&piYR~&Wpm~8=i)rC-V9eVe=f{kYt8AYx(0%9G1Yp(96~%DtxpvqDX> zI>CamYKthzz{De$?%XMt+Z!(Ep1XZ*D*t_fdX)2gn`h9ncimvwo;zocT&55kQprsb zfMKSNNBh!7J!`^L5hFkPsog!4;JT#ZQ0p!2%&mgfRYhDe zxw)-*`f5*m;}-waybj;{RxFU@~nMLEqGO8SEe)YLdZUOA~4jxO zJ7=>;Ly-OD6~ZnTU;V%``v-+vt11A;i0Zs?jQ54bfi=lrwkF$@h@2uzk6$pV4cTDk z9)3@U*wVtB`14x8+Ol1%?9a)I-W)aZj|lVK`9nGOVxvc2e0Jf!r{0d%xi;=ANP>7? zNmHl2U9|)4`7VD(E5JNFHL(gcG74^V%H|tHjd_tXs>Z!ZdV0;ZZC0$V{*8AJ6H+>2 zZDU+)bj^gsAiFJDzO>l$Z@wQ4QyXSHF^66a1pBwp&GJ!+%ix9@@ua0i*W=din)PmG z&3&84rWQC9iwk>gi-+$!n(>`_FWEi1*u!$(q~gk#m@GYgxh_XJva??2Sif=5SL5Sw zQr3CM|3X69<65Cq{HPysvM(Gp?D#dTXDFWB8ui`2w^sBp1{~XL_VLZa*>X?N7r%qLlPk#iH>@v6y}5o_)Y=LwZv_T=`AKut3~S$Kp3X7dQD;nC+8rY0-`GEq9A;!SdFze4*z5k-Yp%)2 zL^lEZxs96_wL9y&&l`9c83gx*;s}zZ&Ko}hkN@WTLX7p-31}&2?FnkJ! zz)>>6NSR-P3Jgr}4-zLtiD?qdrj2M%Egcb%gRls#l}9VobS(ojqf1BDx??;BJp+NG z7?@9{f;jv%Jb{EKk+28?tBzN|A}v;-UNfrz zfNHTyri5jX0oieN|;1VPcWRSbxPU`QPaDbY-(u4**2 z6JMr~Kyhm484ia-XDigONFfH<00V=l;AAoh-Nyr<0zU3UvJb!_5?MrVg0~xu;zc5{ zs5B~z%$(%{kXR!J74R%q@`X#9m#Z5Gxe|#CfGSxmC}F7}IeI2-x@=xANYr_~eBw&x z_d=MLi$~1hbV9+6T2cyZn}K zw{EG=D-_)0xl#mPF>PsFV^WEUjn@Lfo?*-&6L0DBjX_7-@R)6fL4~x~sdSn1Nb%|6 zrUsnZe$eXrR(Fm5=#|U;FSbpSrLlzqX++w|x&ik}vbz1<-l08@E*n-<+^wgk3o2G% z>kkN5+&9cgMk)1e#*^H8?Jq%H4S$9RZZu9Ll?wMYO@<1ztF=qplM8kfIj(p;PCfmL zxnGUXNxjg@mAI5s`-X(wVN0g{0~Y_G*R|zIQFan4#|pC<{P@m)!}h59@;f0DHl6wD z=dGjjJ3K!XXLi;;laN*9$7hd`-qc=?Wu{s zolQ&)K!JpKp+ECb@_1fg7c-GB;j(M|7)+N{2@VC58S!|ZTL9}ICM@a1Eyr{^!@;5C zQeMk8z%6svvF&9xXNq?2EPkIO8k3qCF#UigDK1>z#`@`5Z|ctSH{eE>$*tq|*2U%i z`<6UAdmOSKS-Hjet}yibO)0F($1d$LfxB}6y@zVE>W_=tAHr+18!Yb>)OM~$SzJi# z4bF00QF{9PP0dij0un>M^HvTC(L>8Q!b7=6-u_t&E|!s5&F0v>_AQ z+&>U!l{h$UkRxjxKW~g4f#I9mqN?`QXd&i2^{;tN;{S8yTNqVSo@tZ930f(9Y5!=Tf JIO{D;{s(6Z!}b6G literal 0 HcmV?d00001 diff --git a/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico3.png b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico3.png new file mode 100644 index 0000000000000000000000000000000000000000..67c5bc1ab9537e7dc92930058fc692cf8bc32308 GIT binary patch literal 1936 zcmaJ?X;c$u6b*=0sPPzZ0T(g^!crv3ge4>xVip1cgNTSI6$!~eQb;CD1`;@e7NQcg zmIDP95f!VYE?`8XxWvlR7Nt=T!D_9RDxjvdY88Z|?Zk@qN9mkdzVDrT?|a{S_na}r z#YWbSz9j384}|r_54mSUNW8jV=pY+rm^5 z@CJfrvPu6Gl_ZV>_%H$i!IY2yDHs$CFqjlDBru4{TnNxHja zc#bOwAdM7Js8I#10&I$sG&l!kldwwvIf7FCPFAIP+a|1GRGmak1t~P!k;Z{y@&7}W z%6DiD8V|j%_dkU-33+OW8V_mU97Ku@F5T0XO3mUUkOYO11Q^a5?_!)BMq!N{Rs(## zt!qrcccnrlgS8sJHyp8;B~ocniAoBI1Z)zfLQyDWED+>#X@S@s5kUh%A;=X78C($L z2J?h`o{&cy=L%qHjuKL#<6PN$E;u3AW(TDj%PfEpMJ^;0BCry8b8MDk!djRS6Y9O? z$|kIZDV&f?#fqWYhWoE!kB2Y^*_Q9Di*4SSA5vkCM=)!*@gglaoC8iI;3nv9o=Z&5 znz_RDwWZUVn|q2OS8SPFUB1GdW+H$de-!BfB*3rikN!zrbJAM)WI|8d4qpQP(uW}) z7iSo6;&{Nh#YGL?1@*JOh`DNCwR)=Q2zsl#;r4AebFKGkyIJSDe%H-{L2{izSD7T}A=stW40)U>X=?MkfRD{Giq^@(o`e{`$uPHg7gn6+ zS;^Z*cL%NAT2UA?zq$xmTkB)?Hb2eT9#dMfr=)%9(Ca=!UYiqdxar>5183{qhcD7o z3oHZo+q8wh)6+IH3)iGp+S`>63j4)CYI$+WpHn|l#v@dE2i#ht_^HcQi<-MV+J>nXitQ^LM)&-8M z>zc2BVtB49$D22jHdK*Whe|(vHOF~~IDexRLB5P?>Gt)3s(l6KQ6WQAOzhY+nUzvM zd*q--A1;Bgzd1dL&`|a{abGf&u{Hnu4 zA-*5!qvQS6jtmiFnew2+n((iB@^|(+q*NcR`^C*49c;w!Tj(XtE^ugyp1JOrYIg2! z_iu-iy0?|l)>E4Adm9Lsw_Y???oCFjWG5+iM0L+Mj}466&Iy+9n3rAr-}c zWLlCZGx58hydq0(U!|A4I^xdIFLU9x6VCKI>(`lxk)}S--M+xFca!s< z(Q9vruX(&Imiu&66@#OU$`hig;--+)($cuLk7DyWy-GNpch|Zvo;kVfvCk#DepO-O z`Su@r>D>~!-Ab2P>4#~LfW6g?dk!1ZdR|=#U7?@DB^oau=Du)Aj#%bEil0uXm0Wb) z935cq8PKda(fu@Uc=4sY!SZQF;n{)*oGXcq&)2Y9UmSCBYOLIVmu8u!br`yuDoy0< z9~Rs@5>#<_*bf#`Mq13Xep$I!`@uC=SIgcpb1mFH*28&udKVb;=ca_d(`BvXl%oTe z_iTPJ)0BHsKYttfyZT|tKJB{16wfK%47=Ko_l?-I?9}zHi=pzw7Pnu9)Zu zHpgNfb#Dyu~WDpRlWvQSTlqs^e z-UNejIJ@Oai4>KJ*0ANUnkchjhL`&obm7Jx(hkOkL>)Duq8boD)UY!AH*?JCsQkRXbZO0@$FbP3b z9Q>!Gq@oyr3u{0ifXE=oDf9q<$s$r1G&+m53ZRlHfh2Mui9#b#7;HM3O{D@;7aohI zQKYcNJi$~fY{$W;p(w&8k#ss8QAZ=fnp6^n#bS}jR1%d+zz_s&HiXLb1W4;Mt-u4d za*Yx}l`sU@6lKY9Cd$EMnSLrkjm*eG+Nm~S4I}Ag2#G=@+e(@SibVepRjX&vT2u`F zlka~DYbDtTND_luI8!6X2AASv3x%+`8c>G98VL+%Om{IR4Mt&Y8jJv3uB~e*G!3wo2{HZ7wW8fQ(VRDxzJ|i zlCWe*w&DJ3*waUtgKWzg>tdT3^MerPcnxOl3m2U`u`dQEV;V|)%vf_gcDV_Sw~twcqKk0?p{??7@u@ntUbK$#en_$%lj-t zoI8C%!Tcod*0)X0K|ii57oP|%IcnUr=2*cV{IWNVW6!IrEJX%E+_AMit)pHI49Ryl z%r%t3{8rzFkiwqJ-EaD?2@6Wi{=3(HFDreiAGsCh*=O~vyz<2Bwd)~EcuOzxwk#V; zcj^jl*P9|n3&*a~ZSF1x`NgVg1t6>l+osZ&v(T^|;yLXH!;nj{Wku+_Jtbm2AAC-7Pz$ zG`b}D4EKx04oTP7FQ_#Hd3Dw&{j$YamVS2y^59Hp&XYrfbSGe`()I9xlD}3A)ZA-- zsi@DZ^!y<89=y+v$nk6JTI$qyTc(_@3bP3bgsvm4B@_Dp(9-P;jXJpE)?j}Hb zvb*3xrbq84#!r0}KY+-kD{(6<)wStV&j!Fr|Sh;!8yK210 z**VSR4QePvA2J+H5PW+d=y!$U-#yW_)zm??L(d4uA39X~sc(eBSDZ8EwtaLS_w%s^ yASVV=(@kxj?|l!SK6FC6!(B1)%sigBeGYD0%<1_dnfC>@e}s@9&8rXJlKVF-+LvGe literal 0 HcmV?d00001 diff --git a/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico5.png b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico5.png new file mode 100644 index 0000000000000000000000000000000000000000..0f5657f2ebf2167a1649135c380c03663c39186c GIT binary patch literal 1826 zcmaJ?c~BE)91S9J34#`tmfB^hM-h@NB!&cn90>xF2q6_jVF<}41V}a}i;19=;=v&W z6ojH2LZadUS`I-(0d)k5h(d}7BjN}xR=iLdl~KAu!TwRYGrRkJ-@NyJ*W20jK=wK_ zldny1IGmZEFN1@S9Sk9} zh%A{m94+=uki)?VY%V_`mQNLcYuy1i6%7-Rz$gz;N#djmnu-oi>C&*Z?w9}qQxG(k z4t`21lobegBXSrZK=|vvPHIkjSve3|KDS1`B-Thy<7_n-s6j+bNB&MQ7wfPFCs{1~2G)xDr_ z+^Lp@fyQ$H1NW3AgXRqnDXo8WWu;|H3=>-dO2>_}Wcn&I^Ifl!N)lKJ36@1SYzOPk zA2BO>X;u(r`(m!cxBR#DDJEy<7&RZ3VA0lp6n+WSV z#vY42-_%%JrT(_x!ol3k)nqu5-tag>Dqz`CoFGQ zZne{FTd^g#=Fs5%@-ZCwc0T8KL7vv2&Mkw}TS*`xF*y-$G=n>Lv$adqSKkl*-C(57 zAJ>Fv0<5gJjrHz5lK8ymE9cSS>~;R}udkg@Ct6(GMLO=K?pq>0V9%@SJ$I7$&Sv!b zP>@AXNY7-iCKU;)G&t?zoK^J@jBOrzbyzRAJ?(C{QSX>Pi~duU*-7wutLC(J)vb}i zMoz|2*azz5n<|5cvWb;#XZLDL?2Fkdrh5gL4GT|J-rDWAvVT!tZQ~uU;pIhr-F+ik zMKS8_5|iRJzi=bHC-&wcik*D%XxG4^@=J(u&-R;^t-ERJkI`uf&DVm+q!YqpBO>`# zx;U6Q@N?&lvf2la_7sKH2WT1&96Z{7WX|<)vZHS!mHS<*1Jm|#TA7KB;m)xIxfHd6 z(^<51F~>v%Sl3Y8EUH6N-kQ>3gjBsxY*1*`_{M>owxfEZR$rK`X{yzFjCZc@Nm6fh zwOKl{tRXYGsp^;4fpmW-lnf2Y`~3BqCx+bbFx_OCdmbJX+glI&ZKxlR z{M43${MyCye_iiZ%b&08NUE6_j*mDm(>@8g$9^%oz@RF5#TgI0r8u_5qhwBajPPT+ zk<>D*FtvqnymaZlv|97CaGv|vjkkHH^t-S0nhxe{=$F2TtTk4ZKnQwCz>PIn_v&Ln uSMQMLeZym}XUhKEVOTx+vh~B}WIf!W4oK_!Zq!cq*Yabs8C719DgOYF1>E`o literal 0 HcmV?d00001 diff --git a/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico6.png b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico6.png new file mode 100644 index 0000000000000000000000000000000000000000..58685968d434539b1d6cbc64a54a29ffa51addd8 GIT binary patch literal 1882 zcmaJ?X;2eq7>-34rQ$)wt0OLn3Tl(hiAhReVh#uzOk+^g7R|Ac7?NE#3rWD@foR17 ziWe4;Qxq$Ts6_?Gi&jM`h=3Krqf`_S(SjU`rW*zAkJ6nzzVDsqdERs9+a?S0cX6KP zOdt?kBmqJ>{+)_H?xURW_uXfw@7WEQCdP!;A{fH$IpT&)p`g6R8Y9i$Rl=^ULXQG4Uf2tC8bIc z0i@LhM5EA>=pcnUTCe74h{G&V?OgER)2=FMeNxpX=(coA`Ls3wdn z7m5dc;X58ti(v>C1kGkM#mu0f&jhNCxHkwF73PQ-FMs*0L zgN=Y)QK^C>F&+_*^g{{;hz_ zq_83oD2GgNB&x<67e=zXLbw7HQerTwfZ>RtD$2Al2Ai}n0tf{5s&N3XWjdn^A2Q+-kK&^pb!T8H{>M~EgnWgip=_@~JJEm2RawX%WJ`< z+P;SToC&A+-{g)+3@s}!Z@lrm+pjdHy#f6CedbG4g;7fYYUwKOL*P;ua z9d2WGSA15Syso*Ok}SM7Bkv`x=|a*?BJBF8Bqh@pw=svgYsNt1tlozmwmDf#cLg7O zUUPkNXd(IdXWPR^&Un>Le%N(vZDv$TX4yPtR(6A7QVZK5{Pmbq8P_f$Wdm>A99Csk zmUirOTEwg@dSeyFTCeIg{bx8+983DB;ETEwr52C8`fqq(N#-!~rV>H@lpM13_R^mL31@;eoe`{G&jyXET1$a4om(l7_wd2_~ zR?YH;hFgqH4S8E==b+VRHndpR-b_DoB7%C^SzE9;Yj(cs$6NctBW%&{_#9Hk{quc$ zBO=q-H<~=R(mW3;nR=D2mA@vim%b%2y)d`6{#AFV;PQ&51G@w=*8(}|O_`W-LmN4E z)}2F~I4^Db^pl5Y(%Z%-{qfda@?|TSc*I3Bb(_E?d+v&O;hrrwN=(|Xy*F=4eLAp1 zrD|@kk}YoY-x=KW$e5B`@!c!4CS|67UTK^D%Hf6aN8fNSkM0>4#ID2+C7i8lt=U#P z`Ki0?Xcjg*E%H2QS|@qkG}0rAXdAC$sxws?&z_Puh?W2={ z%+cGvb(~n2aL)g5Pg??a&6z9DN{h$=ugQTM#rKJ}BA+H3IoFNUmSWnq{i3+`oapaP z-{pblJg+ayO*(+Qc8o5xJcf&-T&M467!`7vgQotirgZVWFcd2uQM+NzfcnX-X1A#u wS2@MzJ5998{5(!(=(YaUNfoy(h;80Qg5~zO?3g<{EcVk*A_@{7Td;c5Kf7KIG5`Po literal 0 HcmV?d00001 diff --git a/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico7.png b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico7.png new file mode 100644 index 0000000000000000000000000000000000000000..6917c7f5f1147f2a30a1db0abec3d383467d2008 GIT binary patch literal 2136 zcmaJ>dpMM78y`g2LPL>5UL%VzN2i%Ja+tA{u^LmzA!FvnFefv^OjFXjD3+C#t#M_Huhyg`FI2g&|5)pIFZ3uwHBqIFn zC};}b9gJdmN(G>w)Q859#xU?q#C~VMNkV`GIG~6QNH}b+kRTx$sfICkB0(MAy8wSSK4sgIDG4?oHJl-0>qA`vrv?B_Gv%%OCY|#WP7Wnue zplkwW1c6HO_?Qbi5fM=$5uboUiN#{17>DEuB2gGT9*;s}QCO@Egs>4F=ZfeO8?MlF zLxBVe83Gnx#Nu%QxgtHB7bhYjpi2L~0*C)emMi?&Ca7U337wC^Akp$GZ2&2h{}1JG zKB0voD)>*m|5I2;#JP}VA#p46+ z?((kT0SkW?m&p?gEkAH56oMC5D57&2pcjdVfK-qy7L#Cyc6YT)k zo21QH+Pb6YYH@(wX$$A10nh#<&9c0@2I}5~-?l!zFgrUvJuR8-f!4Yp`_HA>Jn<~? z?a1O!e-xa^y~0|lxnHs#FTL?b+0B%0BO|yeyCO(xO36j4Met>Cpq4&J%g)VH3sOB; zH=pi(S5sT6I+HBE5t!#Q^60H<^9$cBAG>6Y&Y&mXXB{NKbY-ftwZz?PTh-30^^BlO z&5gCWwH_%A?KZ|#-%#ZRt8ejdf4H~aLatx18-H=TzWQG4mqb~@pIdI!RXu*nKGR)% z@YU(VqAQB{a&Pz7T!s8Lc*V&rFQ2J#UTO_fj8uv+#jkzFNBWj;&rLQ9&TTWh6lzY% z(E6*OswyP*wEgXnV@9)MibK!O0yyyXI|VglszsgkqrEDp={S@U#A^!!X~~)7QBzvZb{Drl2>JVcvbWJ zxB%rbm*Jv$W?;B|HO9hEVID2DGBByc={;-HUx;$({CPhD8?Pukw7{L%>OCE#P(DFg z>-4CIE|^#qy{qqUbP5au6$4G`949*5wW<^J$ztR73G*1>-9&<=k%F_uVA+fUXU^$+_0ykCO>U`d&@w+jI(0Y znca158aIVH@vm01k;=r7w)4^%B@eyKHW;}urDlzTKKljh?6}L?Lb=7`2u$3MMz2;5 zNiGuAf)@>aU9O&Darl+~6{2@Xx=YrG)~K1teo0>MR13KN1Zs=_C|A5Y2|fd-M*>a_blP(i|>$cCuLEU?hRX3^3%WR zm3_xgQ&+3|qPJ&7b7+@ls063st(!obGKhJo&ETZr;FdO}l_kkfs5y%g*{wTz!I^q@ zN5>CU9QC2>OccwEipruAYnefmH(G7KIK-Np)zR$23#bqCo|H;B^BNu7x(a9VEl%Jb zPG$_%4B|ouy$w$CXl?4>)M$)GYp2Cte!xnI>>~vRH6=}SM4q~~qN?ELrJ*)>u;M{k z`>7)4Wk6PKsFU0i_j~YM<*n3bo)q1{pXV~#{x}LugiY<~T()+4Wwx>qZlH>Hjw{3* z!^S@kTneA<>mNyNgEzvf_s-idovcopUYGFKP1|AOR}I=rja|?`4F>Zf`;e;L!jk?2 D-YjvZ literal 0 HcmV?d00001 diff --git a/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico8.png b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/ico8.png new file mode 100644 index 0000000000000000000000000000000000000000..c5dd1294fc32638e9646db9800c46097930adef0 GIT binary patch literal 2050 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 literal 0 HcmV?d00001 diff --git a/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/top.png b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/images/top.png new file mode 100644 index 0000000000000000000000000000000000000000..b2e0226d8355ed2bf00eefe1a1a6b832d079d63d GIT binary patch literal 82750 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

S2rVSf-8X|<}>Qj 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 { + const { success } = await props["rescueUpdateStatus"]({ id: urlState.id, isRescueExecuted: 4 }); + if (success) { + message.success("完成救援成功"); + props.history.goBack(); + } + }; + + return ( + 完成救援}> +

+
应急指挥台
+
+
+ + +
+
+ +
+
+ + +
+
+
+ + ); +} + +export default Connect([NS_RESUE], true)(Command); diff --git a/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/index.less b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/index.less new file mode 100644 index 0000000..f996040 --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/Command/index.less @@ -0,0 +1,329 @@ +.command { + background-color: #E5EDFD; + margin: -20px -20px -31px -20px; + + .top { + background-size: 100% 100%; + background-repeat: no-repeat; + height: 66px; + width: 100%; + font-size: 36px; + color: #fff; + text-align: center; + line-height: 66px; + font-weight: bold; + } + + .select-emergency-plan { + border-radius: 0 0 4px 4px; + background-image: linear-gradient(to bottom, #DAE9FA, #CFE5FF); + padding: 10px; + border-width: 2px; + border-style: solid; + border-image: linear-gradient(to top, #FFFFFF, #D1E1F9) 1; + + .container { + border-radius: 2px; + background-color: #E4F0FF; + border-width: 2px; + border-style: solid; + border-image: linear-gradient(to top, #FFFFFF, #D9EFFD) 1; + box-shadow: inset 0 0 3px 0 rgba(49, 122, 202, 0.48); + padding: 15px; + } + } + + .command-feedback-records { + margin-top: 10px; + border-radius: 0 0 4px 4px; + background-image: linear-gradient(to bottom, #DAE9FA, #CFE5FF); + padding: 10px; + border-width: 2px; + border-style: solid; + border-image: linear-gradient(to top, #FFFFFF, #D1E1F9) 1; + + .title { + img { + width: 18px; + height: 18px; + } + + span { + padding-left: 6px; + color: #222222; + font-size: 14px; + font-weight: bold; + } + } + + .container { + padding-left: 20px; + + .timeline-item { + position: relative; + padding-left: 20px; + margin-top: 10px; + + &::before { + content: ''; + position: absolute; + left: 10px; + top: 0; + bottom: -10px; + width: 2px; + background-color: #5B8CFF; + } + + &:last-child::before { + bottom: 0; + } + + .timeline-dot { + position: absolute; + left: 6px; + top: 15px; + width: 10px; + height: 10px; + border-radius: 50%; + border: 2px solid #5B8CFF; + background-color: #fff; + z-index: 1; + } + + .parent { + .timeline-dot { + top: 15px; + } + } + } + + .parent, .child { + margin-top: 10px; + border-radius: 2px; + background-color: rgb(255 255 255 / 0.41); + border-width: 1px; + border-style: solid; + border-image: linear-gradient(to top, #FFFFFF, #D9EFFD) 1; + padding: 10px; + + .label { + color: #666666; + font-size: 14px; + } + } + } + } + + .non-contingency-instructions { + border-radius: 0 0 4px 4px; + background-image: linear-gradient(to bottom, #DAE9FA, #CFE5FF); + padding: 5px; + border-width: 2px; + border-style: solid; + border-image: linear-gradient(to top, #FFFFFF, #D1E1F9) 1; + + .title { + img { + width: 18px; + height: 18px; + } + + span { + padding-left: 6px; + color: #222222; + font-size: 14px; + font-weight: bold; + } + } + + .container { + .subtitle { + margin-left: 10px; + color: #3B445C; + font-size: 14px; + position: relative; + + &::before { + content: ''; + position: absolute; + left: -10px; + top: 7px; + bottom: 0; + width: 3px; + height: 13px; + background-color: #3796FF; + } + } + + .table { + font-size: 13px; + margin-top: 5px; + text-align: center; + + .header { + font-weight: bold; + display: grid; + grid-template-columns: 0.8fr 1fr 1fr 0.6fr; + + .title { + color: #3B445C; + border: 1px solid #fff; + background-color: #C4E2F8; + } + } + + .body { + border-top: none !important; + + .row { + display: grid; + grid-template-columns: 0.8fr 1fr 1fr 0.6fr; + + .cell { + border: 1px solid #fff; + } + } + } + } + } + } + + .event-handling-records { + margin-top: 10px; + border-radius: 0 0 4px 4px; + background-image: linear-gradient(to bottom, #DAE9FA, #CFE5FF); + padding: 5px; + border-width: 2px; + border-style: solid; + border-image: linear-gradient(to top, #FFFFFF, #D1E1F9) 1; + + .title { + img { + width: 18px; + height: 18px; + } + + span { + padding-left: 6px; + color: #222222; + font-size: 14px; + font-weight: bold; + } + } + + .container { + margin-top: 10px; + + .time { + color: #222222; + font-weight: bold; + } + + .content { + color: #444444; + } + + .timeline-item { + position: relative; + padding-left: 20px; + margin-top: 10px; + + &::before { + content: ''; + position: absolute; + left: 10px; + top: 0; + bottom: -10px; + width: 2px; + background-color: #5B8CFF; + } + + &:last-child::before { + bottom: 0; + } + + .timeline-dot { + position: absolute; + left: 6px; + top: 7px; + width: 10px; + height: 10px; + border-radius: 50%; + border: 2px solid #5B8CFF; + background-color: #fff; + z-index: 1; + } + } + } + } + + .cesium { + .form { + position: absolute; + top: 20px; + left: 20px; + z-index: 1; + width: 100%; + + label { + color: #fff; + } + } + + .mark-options { + display: flex; + justify-content: space-around; + gap: 25px; + position: absolute; + width: 100%; + bottom: 0; + + &-item { + text-align: center; + cursor: pointer; + padding: 10px; + width: 194px; + height: 48px; + color: #3796FF; + font-size: 16px; + font-weight: bold; + position: relative; + background-size: 100% 100%; + background-repeat: no-repeat; + + &-children { + position: absolute; + bottom: 55px; + left: 50%; + transform: translateX(-50%); + background-color: #D3E7FF; + width: 80%; + padding: 10px; + border-radius: 0 0 4px 4px; + border-width: 1px; + border-style: solid; + border-image: linear-gradient(to top, #1F89E3, #A2C3EA) 1; + + &-item { + text-align: center; + cursor: pointer; + padding: 5px; + font-size: 14px; + font-weight: normal; + color: #000; + border: 1px solid transparent; + + &.active{ + color: #fff; + background-color: #3796FF; + border-radius: 0 0 4px 4px; + border-width: 1px; + border-style: solid; + border-image: linear-gradient(to top, #1F89E3, #A2C3EA) 1; + } + } + } + } + } + } +} diff --git a/src/pages/Container/Enterprise/EmergencyRescue/Rescue/List/index.js b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/List/index.js new file mode 100644 index 0000000..d383371 --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/List/index.js @@ -0,0 +1,147 @@ +import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { Button, Space } from "antd"; +import dayjs from "dayjs"; +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 useTable from "zy-react-library/hooks/useTable"; +import { getLabelName } from "zy-react-library/utils"; +import { NS_EVENT_REPORT, NS_RESUE } from "~/enumerate/namespace"; + +function List(props) { + const [form] = Search.useForm(); + + const { tableProps, getData } = useTable(props["eventReportList"], { + form, + params: { isEventOrRescue: 2 }, + }); + + return ( + + +
getLabelName({ list: [ + { bianma: 1, name: "未执行" }, + { bianma: 2, name: "未开始" }, + { bianma: 3, name: "进行中" }, + { bianma: 4, name: "已完成" }, + ], status: record.isRescueExecuted }), + }, + { + title: "操作", + width: 200, + fixed: "right", + render: (_, record) => ( + + {(record.isEventReportSpecial === 2 && props.permission("qyd-rescue-view")) && ( + + )} + { + (record.isRescueExecuted !== 4 && props.permission("qyd-rescue-command")) && ( + + ) + } + { + (record.isRescueExecuted === 4 && props.permission("qyd-rescue-rescue-record")) && ( + + ) + } + { + (record.isRescueExecuted === 4 && record.isEventReportSpecial === 1 && props.permission("qyd-rescue-special-report")) && ( + + ) + } + + ), + }, + ]} + {... + tableProps + } + /> + + ) + ; +} + +export default Connect([NS_EVENT_REPORT, NS_RESUE], true)(Permission(List)); diff --git a/src/pages/Container/Enterprise/EmergencyRescue/Rescue/RescueRecord/index.js b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/RescueRecord/index.js new file mode 100644 index 0000000..49ed22d --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/RescueRecord/index.js @@ -0,0 +1,69 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { Descriptions, Divider } from "antd"; +import Page from "zy-react-library/components/Page"; +import Table from "zy-react-library/components/Table"; +import TooltipPreviewImg from "zy-react-library/components/TooltipPreviewImg"; +import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; +import useTable from "zy-react-library/hooks/useTable"; +import { NS_RESUE } from "~/enumerate/namespace"; + +function RescueRecord(props) { + const query = useGetUrlQuery(); + + const { tableProps: executionRecordTableProps } = useTable(props["rescueExecutionRecordList"], { + params: { id: query.id }, + useStorageQueryCriteria: false, + }); + const { tableProps: eventHandlingRecordTableProps } = useTable(props["rescueEventHandlingRecordList"], { + params: { id: query.id }, + useStorageQueryCriteria: false, + }); + + return ( + + 指挥相关数据 + + 执行记录 +
(), + }, + { title: "完成状态", dataIndex: "commandStatus" }, + ]} + {...executionRecordTableProps} + /> + 事件处置记录 +
+ + ); +} + +export default Connect([NS_RESUE], true)(RescueRecord); diff --git a/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/SpecialReport/index.js b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/SpecialReport/index.js similarity index 92% rename from src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/SpecialReport/index.js rename to src/pages/Container/Enterprise/EmergencyRescue/Rescue/SpecialReport/index.js index fb91ffc..76644b3 100644 --- a/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/SpecialReport/index.js +++ b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/SpecialReport/index.js @@ -9,7 +9,7 @@ import DictionarySelect from "zy-react-library/components/Select/Dictionary"; import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; import { PHONE } from "zy-react-library/regular"; -import { NS_EVENT_REPORT } from "~/enumerate/namespace"; +import { NS_RESUE } from "~/enumerate/namespace"; function Add(props) { const query = useGetUrlQuery(); @@ -23,7 +23,7 @@ function Add(props) { const { success } = await props["eventReportSpecialReportSave"]({ ...values, eventReportId: query.id, - regionCode: values.regionCode.join(","), + regionCode: values.regionCode?.join(","), }); if (success) { message.success("新增成功"); @@ -34,10 +34,10 @@ function Add(props) { return ( ) }, { name: "reportType", label: "接报类型" }, { name: "accidentTitle", label: "事故标题" }, @@ -110,4 +110,4 @@ function Add(props) { ); } -export default Connect([NS_EVENT_REPORT], true)(Add); +export default Connect([NS_RESUE], true)(Add); diff --git a/src/pages/Container/Enterprise/EmergencyRescue/Rescue/View/index.js b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/View/index.js new file mode 100644 index 0000000..98921d3 --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/View/index.js @@ -0,0 +1,71 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { Descriptions, Spin } from "antd"; +import { useEffect, useState } from "react"; +import Page from "zy-react-library/components/Page"; +import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; +import { NS_RESUE } from "~/enumerate/namespace"; + +function View(props) { + const query = useGetUrlQuery(); + + const [info, setInfo] = useState({}); + + const getData = async () => { + const { data } = await props["eventReportSpecialReportInfo"]({ id: query.id }); + setInfo(data); + }; + + useEffect(() => { + getData(); + }, []); + + return ( + + + + + + ); +} + +export default Connect([NS_RESUE], true)(View); diff --git a/src/pages/Container/Enterprise/EmergencyRescue/Rescue/index.js b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/index.js new file mode 100644 index 0000000..b0b175e --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/Rescue/index.js @@ -0,0 +1,5 @@ +function Rescue(props) { + return props.children; +} + +export default Rescue; diff --git a/src/pages/Container/Enterprise/EmergencyResource/ClosedCardPort/View/index.js b/src/pages/Container/Enterprise/EmergencyResource/ClosedCardPort/View/index.js index 8bd3770..15bacf6 100644 --- a/src/pages/Container/Enterprise/EmergencyResource/ClosedCardPort/View/index.js +++ b/src/pages/Container/Enterprise/EmergencyResource/ClosedCardPort/View/index.js @@ -11,20 +11,23 @@ function View(props) { const [info, setInfo] = useState({}); const getData = async () => { - const { data } = await props["closedCardPortInfo"]({ id: query.id }); + if (!props.id && !query.id) + return; + + const { data } = await props["closedCardPortInfo"]({ id: props.id || query.id }); setInfo(data); }; useEffect(() => { getData(); - }, []); + }, [props.id]); return ( - + { - const { data } = await props["drainageWellInfo"]({ id: query.id }); + if (!props.id && !query.id) + return; + + const { data } = await props["drainageWellInfo"]({ id: props.id || query.id }); setInfo(data); }; useEffect(() => { getData(); - }, []); + }, [props.id]); return ( - + { - const { data } = await props["emergencyShelterInfo"]({ id: query.id }); + if (!props.id && !query.id) + return; + + const { data } = await props["emergencyShelterInfo"]({ id: props.id || query.id }); setInfo(data); }; useEffect(() => { getData(); - }, []); + }, [props.id]); return ( - + { - const { data } = await props["materialEquipmentInfo"]({ id: query.id }); + if (!props.id && !query.id) + return; + + const { data } = await props["materialEquipmentInfo"]({ id: props.id || query.id }); setInfo(data); }; useEffect(() => { getData(); - }, []); + }, [props.id]); return ( - +