diff --git a/package.json b/package.json index fe417ce..7e0f00b 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "lodash-es": "^4.17.21", "react": "^18.2.0", "react-dom": "^18.2.0", - "zy-react-library": "^1.2.28" + "zy-react-library": "^1.2.30" }, "devDependencies": { "@antfu/eslint-config": "^5.4.1", diff --git a/router.md b/router.md index 9aadeca..37fd144 100644 --- a/router.md +++ b/router.md @@ -64,9 +64,27 @@ `/emergencyRescue/container/enterprise/emergencyOrganization/emergencyRescueTeam/list` - 预案与演练/企业预案管理 `/emergencyRescue/container/enterprise/planAndDrill/enterprisePlan/list` +- 预案与演练/企业预案申请记录 + `/emergencyRescue/container/enterprise/planAndDrill/enterprisePlanApplyRecords/list` +- 预案与演练/企业预案审核 + `/emergencyRescue/container/enterprise/planAndDrill/enterprisePlanAudit/list` +- 预案与演练/企业预案审核记录 + `/emergencyRescue/container/enterprise/planAndDrill/enterprisePlanAuditRecords/list` - 预案与演练/应急预案管理 `/emergencyRescue/container/enterprise/planAndDrill/emergencyPlan/list` - 预案与演练/应急演练管理 `/emergencyRescue/container/enterprise/planAndDrill/emergencyExercise/list` - 应急救援/值班管理/值班日志 `/emergencyRescue/container/enterprise/emergencyRescue/duty/dutyLog/list` +- 应急救援/值班管理/排班登记管理 + `/emergencyRescue/container/enterprise/emergencyRescue/duty/schedulingRegistration/list` +- 应急救援/应急接报/事件接报 + `/emergencyRescue/container/enterprise/emergencyRescue/emergencyReporting/eventReport/list` +- 应急救援/应急知识库/案例库 + `/emergencyRescue/container/enterprise/emergencyRescue/emergencyKnowledgeLibrary/case/list` +- 应急救援/应急知识库/危险货物库 + `/emergencyRescue/container/enterprise/emergencyRescue/emergencyKnowledgeLibrary/hazardousGoods/list` +- 应急救援/应急知识库/危化品库 + `/emergencyRescue/container/enterprise/emergencyRescue/emergencyKnowledgeLibrary/hazardousChemicals/list` +- 应急救援/应急知识库/生成工艺库 + `/emergencyRescue/container/enterprise/emergencyRescue/emergencyKnowledgeLibrary/generationProcess/list` diff --git a/src/api/emergencyKnowledgeLibrary/index.js b/src/api/emergencyKnowledgeLibrary/index.js new file mode 100644 index 0000000..c36a6e5 --- /dev/null +++ b/src/api/emergencyKnowledgeLibrary/index.js @@ -0,0 +1,26 @@ +import { declareRequest } from "@cqsjjb/jjb-dva-runtime"; + +export const emergencyKnowledgeLibraryList = declareRequest( + "emergencyKnowledgeLibraryLoading", + "Post > @/emergencyRescue/emergencyCaseLibrary/list", +); +export const emergencyKnowledgeLibraryInfo = declareRequest( + "emergencyKnowledgeLibraryLoading", + "Get > /emergencyRescue/emergencyCaseLibrary/{id}", +); +export const emergencyKnowledgeLibraryAdd = declareRequest( + "emergencyKnowledgeLibraryLoading", + "Post > @/emergencyRescue/emergencyCaseLibrary/save", +); +export const emergencyKnowledgeLibraryUpdate = declareRequest( + "emergencyKnowledgeLibraryLoading", + "Put > @/emergencyRescue/emergencyCaseLibrary/edit", +); +export const emergencyKnowledgeLibraryDelete = declareRequest( + "emergencyKnowledgeLibraryLoading", + "Delete > @/emergencyRescue/emergencyCaseLibrary/{id}", +); +export const emergencyKnowledgeLibraryDeleteBatch = declareRequest( + "emergencyKnowledgeLibraryLoading", + "Delete > @/emergencyRescue/emergencyCaseLibrary/ids?ids={ids}", +); diff --git a/src/api/enterprisePlan/index.js b/src/api/enterprisePlan/index.js index 0a385e8..83c3a5e 100644 --- a/src/api/enterprisePlan/index.js +++ b/src/api/enterprisePlan/index.js @@ -20,6 +20,14 @@ export const enterprisePlanBasicInfoDelete = declareRequest( "enterprisePlanBasicInfoLoading", "Delete > @/emergencyRescue/enterprisePlanBasicInfo/{id}", ); +export const enterprisePlanBasicInfoConfigureApprover = declareRequest( + "enterprisePlanBasicInfoLoading", + "Put > @/emergencyRescue/enterprisePlanBasicInfo/configureApprover", +); +export const enterprisePlanBasicInfoAudit = declareRequest( + "enterprisePlanBasicInfoLoading", + "Put > @/emergencyRescue/enterprisePlanBasicInfo/audit", +); export const enterprisePlanLevelResponseList = declareRequest( "enterprisePlanLevelResponseLoading", "Post > @/emergencyRescue/enterprisePlanLevelResponse/list", diff --git a/src/api/eventReport/index.js b/src/api/eventReport/index.js new file mode 100644 index 0000000..6413720 --- /dev/null +++ b/src/api/eventReport/index.js @@ -0,0 +1,22 @@ +import { declareRequest } from "@cqsjjb/jjb-dva-runtime"; + +export const eventReportList = declareRequest( + "eventReportLoading", + "Post > @/emergencyRescue/eventReport/list", +); +export const eventReportAdd = declareRequest( + "eventReportLoading", + "Post > @/emergencyRescue/eventReport/save", +); +export const eventReportInfo = declareRequest( + "eventReportLoading", + "Get > /emergencyRescue/eventReport/{id}", +); +export const eventReportRescue = declareRequest( + "eventReportLoading", + "Post > @/emergencyRescue/eventReport/triggerRescue", +); +export const eventReportSpecialReportSave = declareRequest( + "eventReportSpecialReportLoading", + "Post > @/emergencyRescue/eventReportSpecial/save", +); diff --git a/src/api/schedulingRegistration/index.js b/src/api/schedulingRegistration/index.js new file mode 100644 index 0000000..fdb6314 --- /dev/null +++ b/src/api/schedulingRegistration/index.js @@ -0,0 +1,14 @@ +import { declareRequest } from "@cqsjjb/jjb-dva-runtime"; + +export const schedulingRegistrationListAll = declareRequest( + "schedulingRegistrationLoading", + "Get > /emergencyRescue/shiftSchedule/listAll", +); +export const schedulingRegistrationInfo = declareRequest( + "schedulingRegistrationLoading", + "Get > /emergencyRescue/shiftSchedule/{id}", +); +export const schedulingRegistrationUpdate = declareRequest( + "schedulingRegistrationLoading", + "Put > @/emergencyRescue/shiftSchedule/edit", +); diff --git a/src/enumerate/namespace/index.js b/src/enumerate/namespace/index.js index c1b014d..8a7339b 100644 --- a/src/enumerate/namespace/index.js +++ b/src/enumerate/namespace/index.js @@ -27,3 +27,6 @@ export const NS_ENTERPRISE_PLAN = defineNamespace("enterprisePlan"); export const NS_EMERGENCY_PLAN = defineNamespace("emergencyPlan"); export const NS_EMERGENCY_EXERCISE = defineNamespace("emergencyExercise"); 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"); diff --git a/src/pages/Container/Enterprise/EmergencyRescue/Duty/SchedulingRegistration/List/index.js b/src/pages/Container/Enterprise/EmergencyRescue/Duty/SchedulingRegistration/List/index.js new file mode 100644 index 0000000..dce978d --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/Duty/SchedulingRegistration/List/index.js @@ -0,0 +1,99 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { Button, message, Space } from "antd"; +import dayjs from "dayjs"; +import { useState } from "react"; +import ImportIcon from "zy-react-library/components/Icon/ImportIcon"; +import ImportFile from "zy-react-library/components/ImportFile"; +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 useImportFile from "zy-react-library/hooks/useImportFile"; +import useTable from "zy-react-library/hooks/useTable"; +import { NS_SCHEDULING_REGISTRATION } from "~/enumerate/namespace"; + +function List(props) { + const [importVisible, setImportVisible] = useState(false); + + const [form] = Search.useForm(); + const { loading: importLoading, importFile } = useImportFile(); + + const { tableProps, getData } = useTable(props["schedulingRegistrationListAll"], { + form, + usePagination: false, + }); + + return ( + + + ( + + + + )} + columns={[ + { + title: "值班日期", + dataIndex: "shiftScheduleDate", + render: (_, record) => dayjs(record.shiftScheduleDate).format("MM月DD日"), + }, + { + title: "早班(08:00-20:00)", + children: [ + { title: "值班领导", dataIndex: "morningShiftScheduleLeaderName" }, + { title: "值班员", dataIndex: "morningShiftSchedulePersonnelName" }, + { title: "应急指挥人", dataIndex: "morningShiftScheduleCommanderName" }, + { title: "值班司机", dataIndex: "morningShiftScheduleDriverName" }, + ], + }, + { + title: "晚班(20:00-08:00)", + children: [ + { title: "值班领导", dataIndex: "nightShiftScheduleLeaderName" }, + { title: "值班员", dataIndex: "nightShiftSchedulePersonnelName" }, + { title: "应急指挥人", dataIndex: "nightShiftScheduleCommanderName" }, + { title: "值班司机", dataIndex: "nightShiftScheduleDriverName" }, + ], + }, + { title: "备注", dataIndex: "remarks" }, + ]} + {...tableProps} + loading={tableProps.loading || importLoading} + /> + setImportVisible(false)} + onConfirm={async (values) => { + const { success } = await importFile("/emergencyRescue/shiftSchedule/importShiftSchedule", { files: values.file }); + if (success) { + message.success("导入成功"); + setImportVisible(false); + getData(); + } + }} + /> + + ); +} + +export default Connect([NS_SCHEDULING_REGISTRATION], true)(List); diff --git a/src/pages/Container/Enterprise/EmergencyRescue/Duty/SchedulingRegistration/index.js b/src/pages/Container/Enterprise/EmergencyRescue/Duty/SchedulingRegistration/index.js new file mode 100644 index 0000000..1aa788c --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/Duty/SchedulingRegistration/index.js @@ -0,0 +1,5 @@ +function SchedulingRegistration(props) { + return props.children; +} + +export default SchedulingRegistration; diff --git a/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/Case/List/index.js b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/Case/List/index.js new file mode 100644 index 0000000..b6685fb --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/Case/List/index.js @@ -0,0 +1,279 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { Button, message, Modal, Space } from "antd"; +import { useEffect, useRef, useState } from "react"; +import FormBuilder from "zy-react-library/components/FormBuilder"; +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 DictionarySelect from "zy-react-library/components/Select/Dictionary"; +import Table from "zy-react-library/components/Table"; +import Upload from "zy-react-library/components/Upload"; +import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; +import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj"; +import useDeleteFile from "zy-react-library/hooks/useDeleteFile"; +import useDownloadFile from "zy-react-library/hooks/useDownloadFile"; +import useGetFile from "zy-react-library/hooks/useGetFile"; +import useTable from "zy-react-library/hooks/useTable"; +import useUploadFile from "zy-react-library/hooks/useUploadFile"; +import { NS_EMERGENCY_KNOWLEDGE_LIBRARY } from "~/enumerate/namespace"; + +function List(props) { + const { loading: getFileLoading, getFile } = useGetFile(); + const { loading: downloadFileLoading, downloadFile } = useDownloadFile(); + + const [selectedRowKeys, setSelectedRowKeys] = useState([]); + const [currentId, setCurrentId] = useState(""); + const [addModalVisible, setAddModalVisible] = useState(false); + + const [form] = Search.useForm(); + + const { tableProps, getData } = useTable(props["emergencyKnowledgeLibraryList"], { + form, + params: { likeEmergencyCaseType: 1 }, + }); + + const onDelete = (record) => { + Modal.confirm({ + title: "删除确认", + content: `确定要删除【${record.title}】吗`, + onOk: async () => { + const { success } = await props["emergencyKnowledgeLibraryDelete"]({ 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["emergencyKnowledgeLibraryDeleteBatch"]({ ids: selectedRowKeys }); + if (success) { + message.success("删除成功"); + getData(); + } + }, + }); + }; + + return ( + + +
{ + setSelectedRowKeys(selectedRowKeys); + }, + }} + toolBarRender={() => ( + + + + + )} + columns={[ + { title: "标题", dataIndex: "title" }, + { title: "事故级别", dataIndex: "accidentLevelName" }, + { title: "内容", dataIndex: "content" }, + { + title: "相关附件", + dataIndex: "fileId", + width: 100, + render: (_, record) => ( + + + + ), + }, + { + title: "操作", + width: 150, + fixed: "right", + render: (_, record) => ( + + + + + ), + }, + ]} + {...tableProps} + loading={tableProps.loading || getFileLoading || downloadFileLoading} + /> + { + addModalVisible && ( + { + setAddModalVisible(false); + setCurrentId(""); + }} + getData={getData} + /> + ) + } + + ); +} + +const AddModalComponent = (props) => { + const [form] = FormBuilder.useForm(); + const { loading: getFileLoading, getFile } = useGetFile(); + const { loading: deleteFileLoading, deleteFile } = useDeleteFile(); + const { loading: uploadFileLoading, uploadFile } = useUploadFile(); + + const fileIdRef = useRef(""); + + const getData = async () => { + if (!props.id) + return; + + const { data } = await props["emergencyKnowledgeLibraryInfo"]({ id: props.id }); + fileIdRef.current = data.fileId; + const files = await getFile({ eqType: UPLOAD_FILE_TYPE_ENUM[706], eqForeignKey: data.fileId }); + form.setFieldsValue({ + ...data, + files, + }); + }; + + useEffect(() => { + getData(); + }, []); + + const onSubmit = async (values) => { + await deleteFile({ single: false, files: values.deleteFiles }); + const { id: fileId } = await uploadFile({ + single: false, + files: values.files, + params: { type: UPLOAD_FILE_TYPE_ENUM[706], foreignKey: fileIdRef.current }, + }); + const { success } = await props[!props.id ? "emergencyKnowledgeLibraryAdd" : "emergencyKnowledgeLibraryUpdate"]({ + ...values, + fileId, + id: props.id, + emergencyCaseType: 1, + }); + if (success) { + message.success(`${!props.id ? "新增" : "编辑"}成功`); + props.getData(); + props.onCancel(); + } + }; + + return ( + + { + form.setFieldValue("accidentLevelName", label); + }} + /> + ), + }, + { name: "accidentLevelName", label: "事故级别名称", onlyForLabel: true }, + { name: "content", label: "内容", render: FORM_ITEM_RENDER_ENUM.TEXTAREA, required: false }, + { + name: "files", + label: "相关附件", + render: ( + { + form.setFieldValue("deleteFiles", [...(form.getFieldValue("deleteFiles") || []), file]); + }} + /> + ), + required: false, + }, + { name: "deleteFiles", label: "删除的附件", onlyForLabel: true }, + ]} + form={form} + onFinish={onSubmit} + /> + + ); +}; + +const AddModal = Connect([NS_EMERGENCY_KNOWLEDGE_LIBRARY], true)(AddModalComponent); +export default Connect([NS_EMERGENCY_KNOWLEDGE_LIBRARY], true)(List); diff --git a/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/Case/index.js b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/Case/index.js new file mode 100644 index 0000000..29f7332 --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/Case/index.js @@ -0,0 +1,5 @@ +function Case(props) { + return props.children; +} + +export default Case; diff --git a/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/GenerationProcess/List/index.js b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/GenerationProcess/List/index.js new file mode 100644 index 0000000..4c87ca1 --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/GenerationProcess/List/index.js @@ -0,0 +1,265 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { Button, message, Modal, Space } from "antd"; +import { useEffect, useRef, useState } from "react"; +import FormBuilder from "zy-react-library/components/FormBuilder"; +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 Upload from "zy-react-library/components/Upload"; +import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; +import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj"; +import useDeleteFile from "zy-react-library/hooks/useDeleteFile"; +import useDownloadFile from "zy-react-library/hooks/useDownloadFile"; +import useGetFile from "zy-react-library/hooks/useGetFile"; +import useTable from "zy-react-library/hooks/useTable"; +import useUploadFile from "zy-react-library/hooks/useUploadFile"; +import { NS_EMERGENCY_KNOWLEDGE_LIBRARY } from "~/enumerate/namespace"; + +function List(props) { + const { loading: getFileLoading, getFile } = useGetFile(); + const { loading: downloadFileLoading, downloadFile } = useDownloadFile(); + + const [selectedRowKeys, setSelectedRowKeys] = useState([]); + const [currentId, setCurrentId] = useState(""); + const [addModalVisible, setAddModalVisible] = useState(false); + + const [form] = Search.useForm(); + + const { tableProps, getData } = useTable(props["emergencyKnowledgeLibraryList"], { + form, + params: { likeEmergencyCaseType: 4 }, + }); + + const onDelete = (record) => { + Modal.confirm({ + title: "删除确认", + content: `确定要删除【${record.title}】吗`, + onOk: async () => { + const { success } = await props["emergencyKnowledgeLibraryDelete"]({ 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["emergencyKnowledgeLibraryDeleteBatch"]({ ids: selectedRowKeys }); + if (success) { + message.success("删除成功"); + getData(); + } + }, + }); + }; + + return ( + + +
{ + setSelectedRowKeys(selectedRowKeys); + }, + }} + toolBarRender={() => ( + + + + + )} + columns={[ + { title: "名称", dataIndex: "title" }, + { title: "类型", dataIndex: "accidentLevel" }, + { title: "内容", dataIndex: "content" }, + { + title: "相关附件", + dataIndex: "fileId", + width: 100, + render: (_, record) => ( + + + + ), + }, + { + title: "操作", + width: 150, + fixed: "right", + render: (_, record) => ( + + + + + ), + }, + ]} + {...tableProps} + loading={tableProps.loading || getFileLoading || downloadFileLoading} + /> + { + addModalVisible && ( + { + setAddModalVisible(false); + setCurrentId(""); + }} + getData={getData} + /> + ) + } + + ); +} + +const AddModalComponent = (props) => { + const [form] = FormBuilder.useForm(); + const { loading: getFileLoading, getFile } = useGetFile(); + const { loading: deleteFileLoading, deleteFile } = useDeleteFile(); + const { loading: uploadFileLoading, uploadFile } = useUploadFile(); + + const fileIdRef = useRef(""); + + const getData = async () => { + if (!props.id) + return; + + const { data } = await props["emergencyKnowledgeLibraryInfo"]({ id: props.id }); + fileIdRef.current = data.fileId; + const files = await getFile({ eqType: UPLOAD_FILE_TYPE_ENUM[709], eqForeignKey: data.fileId }); + form.setFieldsValue({ + ...data, + files, + }); + }; + + useEffect(() => { + getData(); + }, []); + + const onSubmit = async (values) => { + await deleteFile({ single: false, files: values.deleteFiles }); + const { id: fileId } = await uploadFile({ + single: false, + files: values.files, + params: { type: UPLOAD_FILE_TYPE_ENUM[709], foreignKey: fileIdRef.current }, + }); + const { success } = await props[!props.id ? "emergencyKnowledgeLibraryAdd" : "emergencyKnowledgeLibraryUpdate"]({ + ...values, + fileId, + id: props.id, + emergencyCaseType: 4, + }); + if (success) { + message.success(`${!props.id ? "新增" : "编辑"}成功`); + props.getData(); + props.onCancel(); + } + }; + + return ( + + { + form.setFieldValue("deleteFiles", [...(form.getFieldValue("deleteFiles") || []), file]); + }} + /> + ), + required: false, + }, + { name: "deleteFiles", label: "删除的附件", onlyForLabel: true }, + ]} + form={form} + onFinish={onSubmit} + /> + + ); +}; + +const AddModal = Connect([NS_EMERGENCY_KNOWLEDGE_LIBRARY], true)(AddModalComponent); +export default Connect([NS_EMERGENCY_KNOWLEDGE_LIBRARY], true)(List); diff --git a/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/GenerationProcess/index.js b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/GenerationProcess/index.js new file mode 100644 index 0000000..29f7332 --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/GenerationProcess/index.js @@ -0,0 +1,5 @@ +function Case(props) { + return props.children; +} + +export default Case; diff --git a/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/HazardousChemicals/List/index.js b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/HazardousChemicals/List/index.js new file mode 100644 index 0000000..ec86b91 --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/HazardousChemicals/List/index.js @@ -0,0 +1,265 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { Button, message, Modal, Space } from "antd"; +import { useEffect, useRef, useState } from "react"; +import FormBuilder from "zy-react-library/components/FormBuilder"; +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 Upload from "zy-react-library/components/Upload"; +import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; +import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj"; +import useDeleteFile from "zy-react-library/hooks/useDeleteFile"; +import useDownloadFile from "zy-react-library/hooks/useDownloadFile"; +import useGetFile from "zy-react-library/hooks/useGetFile"; +import useTable from "zy-react-library/hooks/useTable"; +import useUploadFile from "zy-react-library/hooks/useUploadFile"; +import { NS_EMERGENCY_KNOWLEDGE_LIBRARY } from "~/enumerate/namespace"; + +function List(props) { + const { loading: getFileLoading, getFile } = useGetFile(); + const { loading: downloadFileLoading, downloadFile } = useDownloadFile(); + + const [selectedRowKeys, setSelectedRowKeys] = useState([]); + const [currentId, setCurrentId] = useState(""); + const [addModalVisible, setAddModalVisible] = useState(false); + + const [form] = Search.useForm(); + + const { tableProps, getData } = useTable(props["emergencyKnowledgeLibraryList"], { + form, + params: { likeEmergencyCaseType: 3 }, + }); + + const onDelete = (record) => { + Modal.confirm({ + title: "删除确认", + content: `确定要删除【${record.title}】吗`, + onOk: async () => { + const { success } = await props["emergencyKnowledgeLibraryDelete"]({ 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["emergencyKnowledgeLibraryDeleteBatch"]({ ids: selectedRowKeys }); + if (success) { + message.success("删除成功"); + getData(); + } + }, + }); + }; + + return ( + + +
{ + setSelectedRowKeys(selectedRowKeys); + }, + }} + toolBarRender={() => ( + + + + + )} + columns={[ + { title: "中文名称", dataIndex: "title" }, + { title: "英文名称", dataIndex: "titleEn" }, + { title: "内容", dataIndex: "content" }, + { + title: "相关附件", + dataIndex: "fileId", + width: 100, + render: (_, record) => ( + + + + ), + }, + { + title: "操作", + width: 150, + fixed: "right", + render: (_, record) => ( + + + + + ), + }, + ]} + {...tableProps} + loading={tableProps.loading || getFileLoading || downloadFileLoading} + /> + { + addModalVisible && ( + { + setAddModalVisible(false); + setCurrentId(""); + }} + getData={getData} + /> + ) + } + + ); +} + +const AddModalComponent = (props) => { + const [form] = FormBuilder.useForm(); + const { loading: getFileLoading, getFile } = useGetFile(); + const { loading: deleteFileLoading, deleteFile } = useDeleteFile(); + const { loading: uploadFileLoading, uploadFile } = useUploadFile(); + + const fileIdRef = useRef(""); + + const getData = async () => { + if (!props.id) + return; + + const { data } = await props["emergencyKnowledgeLibraryInfo"]({ id: props.id }); + fileIdRef.current = data.fileId; + const files = await getFile({ eqType: UPLOAD_FILE_TYPE_ENUM[708], eqForeignKey: data.fileId }); + form.setFieldsValue({ + ...data, + files, + }); + }; + + useEffect(() => { + getData(); + }, []); + + const onSubmit = async (values) => { + await deleteFile({ single: false, files: values.deleteFiles }); + const { id: fileId } = await uploadFile({ + single: false, + files: values.files, + params: { type: UPLOAD_FILE_TYPE_ENUM[708], foreignKey: fileIdRef.current }, + }); + const { success } = await props[!props.id ? "emergencyKnowledgeLibraryAdd" : "emergencyKnowledgeLibraryUpdate"]({ + ...values, + fileId, + id: props.id, + emergencyCaseType: 3, + }); + if (success) { + message.success(`${!props.id ? "新增" : "编辑"}成功`); + props.getData(); + props.onCancel(); + } + }; + + return ( + + { + form.setFieldValue("deleteFiles", [...(form.getFieldValue("deleteFiles") || []), file]); + }} + /> + ), + required: false, + }, + { name: "deleteFiles", label: "删除的附件", onlyForLabel: true }, + ]} + form={form} + onFinish={onSubmit} + /> + + ); +}; + +const AddModal = Connect([NS_EMERGENCY_KNOWLEDGE_LIBRARY], true)(AddModalComponent); +export default Connect([NS_EMERGENCY_KNOWLEDGE_LIBRARY], true)(List); diff --git a/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/HazardousChemicals/index.js b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/HazardousChemicals/index.js new file mode 100644 index 0000000..4227fb2 --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/HazardousChemicals/index.js @@ -0,0 +1,5 @@ +function HazardousGoods(props) { + return props.children; +} + +export default HazardousGoods; diff --git a/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/HazardousGoods/List/index.js b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/HazardousGoods/List/index.js new file mode 100644 index 0000000..ee4f41b --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/HazardousGoods/List/index.js @@ -0,0 +1,263 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { Button, message, Modal, Space } from "antd"; +import { useEffect, useRef, useState } from "react"; +import FormBuilder from "zy-react-library/components/FormBuilder"; +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 Upload from "zy-react-library/components/Upload"; +import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; +import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj"; +import useDeleteFile from "zy-react-library/hooks/useDeleteFile"; +import useDownloadFile from "zy-react-library/hooks/useDownloadFile"; +import useGetFile from "zy-react-library/hooks/useGetFile"; +import useTable from "zy-react-library/hooks/useTable"; +import useUploadFile from "zy-react-library/hooks/useUploadFile"; +import { NS_EMERGENCY_KNOWLEDGE_LIBRARY } from "~/enumerate/namespace"; + +function List(props) { + const { loading: getFileLoading, getFile } = useGetFile(); + const { loading: downloadFileLoading, downloadFile } = useDownloadFile(); + + const [selectedRowKeys, setSelectedRowKeys] = useState([]); + const [currentId, setCurrentId] = useState(""); + const [addModalVisible, setAddModalVisible] = useState(false); + + const [form] = Search.useForm(); + + const { tableProps, getData } = useTable(props["emergencyKnowledgeLibraryList"], { + form, + params: { likeEmergencyCaseType: 2 }, + }); + + const onDelete = (record) => { + Modal.confirm({ + title: "删除确认", + content: `确定要删除【${record.title}】吗`, + onOk: async () => { + const { success } = await props["emergencyKnowledgeLibraryDelete"]({ 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["emergencyKnowledgeLibraryDeleteBatch"]({ ids: selectedRowKeys }); + if (success) { + message.success("删除成功"); + getData(); + } + }, + }); + }; + + return ( + + +
{ + setSelectedRowKeys(selectedRowKeys); + }, + }} + toolBarRender={() => ( + + + + + )} + columns={[ + { title: "物品名称", dataIndex: "title" }, + { title: "内容", dataIndex: "content" }, + { + title: "相关附件", + dataIndex: "fileId", + width: 100, + render: (_, record) => ( + + + + ), + }, + { + title: "操作", + width: 150, + fixed: "right", + render: (_, record) => ( + + + + + ), + }, + ]} + {...tableProps} + loading={tableProps.loading || getFileLoading || downloadFileLoading} + /> + { + addModalVisible && ( + { + setAddModalVisible(false); + setCurrentId(""); + }} + getData={getData} + /> + ) + } + + ); +} + +const AddModalComponent = (props) => { + const [form] = FormBuilder.useForm(); + const { loading: getFileLoading, getFile } = useGetFile(); + const { loading: deleteFileLoading, deleteFile } = useDeleteFile(); + const { loading: uploadFileLoading, uploadFile } = useUploadFile(); + + const fileIdRef = useRef(""); + + const getData = async () => { + if (!props.id) + return; + + const { data } = await props["emergencyKnowledgeLibraryInfo"]({ id: props.id }); + fileIdRef.current = data.fileId; + const files = await getFile({ eqType: UPLOAD_FILE_TYPE_ENUM[707], eqForeignKey: data.fileId }); + form.setFieldsValue({ + ...data, + files, + }); + }; + + useEffect(() => { + getData(); + }, []); + + const onSubmit = async (values) => { + await deleteFile({ single: false, files: values.deleteFiles }); + const { id: fileId } = await uploadFile({ + single: false, + files: values.files, + params: { type: UPLOAD_FILE_TYPE_ENUM[707], foreignKey: fileIdRef.current }, + }); + const { success } = await props[!props.id ? "emergencyKnowledgeLibraryAdd" : "emergencyKnowledgeLibraryUpdate"]({ + ...values, + fileId, + id: props.id, + emergencyCaseType: 2, + }); + if (success) { + message.success(`${!props.id ? "新增" : "编辑"}成功`); + props.getData(); + props.onCancel(); + } + }; + + return ( + + { + form.setFieldValue("deleteFiles", [...(form.getFieldValue("deleteFiles") || []), file]); + }} + /> + ), + required: false, + }, + { name: "deleteFiles", label: "删除的附件", onlyForLabel: true }, + ]} + form={form} + onFinish={onSubmit} + /> + + ); +}; + +const AddModal = Connect([NS_EMERGENCY_KNOWLEDGE_LIBRARY], true)(AddModalComponent); +export default Connect([NS_EMERGENCY_KNOWLEDGE_LIBRARY], true)(List); diff --git a/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/HazardousGoods/index.js b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/HazardousGoods/index.js new file mode 100644 index 0000000..4227fb2 --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/HazardousGoods/index.js @@ -0,0 +1,5 @@ +function HazardousGoods(props) { + return props.children; +} + +export default HazardousGoods; diff --git a/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/index.js b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/index.js new file mode 100644 index 0000000..4b912b1 --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyKnowledgeLibrary/index.js @@ -0,0 +1,5 @@ +function EmergencyKnowledgeLibrary(props) { + return props.children; +} + +export default EmergencyKnowledgeLibrary; diff --git a/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/Add/index.js b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/Add/index.js new file mode 100644 index 0000000..0cf4c76 --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/Add/index.js @@ -0,0 +1,56 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { message } from "antd"; +import FormBuilder from "zy-react-library/components/FormBuilder"; +import Map from "zy-react-library/components/Map"; +import Page from "zy-react-library/components/Page"; +import DictionarySelect from "zy-react-library/components/Select/Dictionary"; +import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; +import { PHONE } from "zy-react-library/regular"; +import { NS_EVENT_REPORT } from "~/enumerate/namespace"; + +function Add(props) { + const [form] = FormBuilder.useForm(); + + const onSubmit = async (values) => { + const { success } = await props["eventReportAdd"]({ + ...values, + }); + if (success) { + message.success("新增成功"); + props.history.goBack(); + } + }; + + return ( + + { + form.setFieldValue("accessModeName", label); + }} + /> + ), + }, + { name: "accessModeName", label: "接入方式名称", onlyForLabel: true }, + { name: "ownerName", label: "机主姓名" }, + { name: "incomingCall", label: "呼入电话", rules: [{ pattern: PHONE, message: "请输入正确的电话号码" }] }, + { name: "eventType", label: "事件类型" }, + { name: "reportTime", label: "接报时间", render: FORM_ITEM_RENDER_ENUM.DATETIME }, + { name: "occurrenceTime", label: "发生时间", render: FORM_ITEM_RENDER_ENUM.DATETIME }, + { key: "map", customizeRender: true, span: 24, render: () }, + ]} + form={form} + onFinish={onSubmit} + /> + + ); +} + +export default Connect([NS_EVENT_REPORT], true)(Add); diff --git a/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/List/index.js b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/List/index.js new file mode 100644 index 0000000..66b033a --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/List/index.js @@ -0,0 +1,124 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { Button, message, Modal, Space } from "antd"; +import AddIcon from "zy-react-library/components/Icon/AddIcon"; +import Page from "zy-react-library/components/Page"; +import Search from "zy-react-library/components/Search"; +import DictionarySelect from "zy-react-library/components/Select/Dictionary"; +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_EVENT_REPORT } from "~/enumerate/namespace"; + +function List(props) { + const [form] = Search.useForm(); + + const { tableProps, getData } = useTable(props["eventReportList"], { + form, + }); + + const onRescue = async (id) => { + Modal.confirm({ + title: "是否救援", + content: "是否发起救援?", + onOk: async () => { + const { success } = await props["eventReportRescue"]({ id }); + if (success) { + message.success("操作成功"); + getData(); + } + }, + }); + }; + + return ( + + ) }, + { name: "eventType", label: "事件类型" }, + { name: "times", label: "发生时间", render: FORM_ITEM_RENDER_ENUM.DATE_RANGE }, + ]} + form={form} + onFinish={getData} + /> +
( + + + + )} + columns={[ + { title: "接入方式", dataIndex: "accessModeName" }, + { title: "机主姓名", dataIndex: "ownerName" }, + { title: "呼入电话", dataIndex: "incomingCall" }, + { title: "事件类型", dataIndex: "eventType" }, + { title: "接报时间", dataIndex: "reportTime" }, + { title: "发生时间", dataIndex: "occurrenceTime" }, + { + title: "救援情况", + dataIndex: "isRescueExecuted", + render: (_, record) => (record.isRescueExecuted === 1 ? "未执行" : "已执行"), + }, + { + title: "操作", + width: 200, + fixed: "right", + render: (_, record) => ( + + {record.isRescueExecuted === 1 && ( + + )} + + + + ), + }, + ]} + {...tableProps} + /> + + ); +} + +export default Connect([NS_EVENT_REPORT], true)(List); diff --git a/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/SpecialReport/index.js b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/SpecialReport/index.js new file mode 100644 index 0000000..fb91ffc --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/SpecialReport/index.js @@ -0,0 +1,113 @@ +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { message } from "antd"; +import { useEffect } from "react"; +import AreaCascader from "zy-react-library/components/Cascader/Area"; +import FormBuilder from "zy-react-library/components/FormBuilder"; +import Map from "zy-react-library/components/Map"; +import Page from "zy-react-library/components/Page"; +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"; + +function Add(props) { + const query = useGetUrlQuery(); + const [form] = FormBuilder.useForm(); + + useEffect(() => { + form.setFieldsValue(query); + }, []); + + const onSubmit = async (values) => { + const { success } = await props["eventReportSpecialReportSave"]({ + ...values, + eventReportId: query.id, + regionCode: values.regionCode.join(","), + }); + if (success) { + message.success("新增成功"); + props.history.goBack(); + } + }; + + return ( + + { + form.setFieldValue("accessModeName", label); + }} + disabled + /> + ), + }, + { name: "accessModeName", label: "接入方式名称", onlyForLabel: true }, + { name: "personName", label: "姓名" }, + { name: "contactPhone", label: "联系电话", rules: [{ pattern: PHONE, message: "请输入正确的电话号码" }] }, + { name: "otherInfo", label: "其他信息", span: 24, render: FORM_ITEM_RENDER_ENUM.TEXTAREA }, + { name: "unitName", label: "单位名称" }, + { + name: "regionCode", + label: "所在区域", + render: ( + { + form.setFieldValue("regionCodeName", nodes.map(node => node.label).join("/")); + }} + /> + ), + }, + { name: "regionCodeName", label: "所在区域名称", onlyForLabel: true }, + { name: "unitAddress", label: "单位地址" }, + { name: "industryType", label: "行业类型" }, + { name: "economyType", label: "经济类型" }, + { name: "majorHazardSource", label: "重大危险源" }, + { name: "reportTime", label: "接报时间", render: FORM_ITEM_RENDER_ENUM.DATETIME, componentProps: { disabled: true } }, + { name: "occurrenceTime", label: "发生时间", render: FORM_ITEM_RENDER_ENUM.DATETIME, componentProps: { disabled: true } }, + { name: "eventType", label: "事件类型", componentProps: { disabled: true } }, + { name: "locationAddress", label: "所在地址" }, + { key: "map", customizeRender: true, span: 24, render: () }, + { name: "reportType", label: "接报类型" }, + { name: "accidentTitle", label: "事故标题" }, + { name: "accidentLevel", label: "事故级别" }, + { name: "injuryType", label: "伤害类型" }, + { name: "accidentType", label: "事故类型" }, + { name: "trappedCount", label: "被困人数", render: FORM_ITEM_RENDER_ENUM.INTEGER }, + { name: "missingCount", label: "失踪人数", render: FORM_ITEM_RENDER_ENUM.INTEGER }, + { name: "deathCount", label: "死亡人数", render: FORM_ITEM_RENDER_ENUM.INTEGER }, + { name: "seriouslyInjuredCount", label: "重伤人数", render: FORM_ITEM_RENDER_ENUM.INTEGER }, + { name: "minorInjuryCount", label: "轻伤人数", render: FORM_ITEM_RENDER_ENUM.INTEGER }, + { name: "poisonedCount", label: "中毒人数", render: FORM_ITEM_RENDER_ENUM.INTEGER }, + { + name: "directEconomicLoss", + label: "直接经济损失", + render: FORM_ITEM_RENDER_ENUM.NUMBER, + componentProps: { + suffix: "(万元)", + }, + }, + { name: "briefProcess", label: "简要经过", render: FORM_ITEM_RENDER_ENUM.TEXTAREA, span: 24 }, + { name: "disposalSituation", label: "处置情况", render: FORM_ITEM_RENDER_ENUM.TEXTAREA, span: 24 }, + ]} + form={form} + onFinish={onSubmit} + /> + + ); +} + +export default Connect([NS_EVENT_REPORT], true)(Add); diff --git a/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/View/index.js b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/View/index.js new file mode 100644 index 0000000..a8bae40 --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/View/index.js @@ -0,0 +1,45 @@ +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_EVENT_REPORT } from "~/enumerate/namespace"; + +function View(props) { + const [info, setInfo] = useState({}); + + const query = useGetUrlQuery(); + + const getData = async () => { + const { data } = await props["eventReportInfo"]({ id: query.id }); + setInfo(data); + }; + + useEffect(() => { + getData(); + }, []); + + return ( + + + + + + ); +} + +export default Connect([NS_EVENT_REPORT], true)(View); diff --git a/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/index.js b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/index.js new file mode 100644 index 0000000..c450e7d --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/EventReport/index.js @@ -0,0 +1,5 @@ +function EventReport(props) { + return props.children; +} + +export default EventReport; diff --git a/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/index.js b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/index.js new file mode 100644 index 0000000..1496304 --- /dev/null +++ b/src/pages/Container/Enterprise/EmergencyRescue/EmergencyReporting/index.js @@ -0,0 +1,5 @@ +function EmergencyReporting(props) { + return props.children; +} + +export default EmergencyReporting; diff --git a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/Add/components/PlanAttachments/index.js b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/Add/components/PlanAttachments/index.js index 71096de..afdb1e1 100644 --- a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/Add/components/PlanAttachments/index.js +++ b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/Add/components/PlanAttachments/index.js @@ -71,7 +71,7 @@ function PlanAttachments(props) { }, { title: "操作", - width: 150, + width: 200, fixed: "right", render: (_, record) => ( @@ -82,7 +82,7 @@ function PlanAttachments(props) { downloadFile({ url: files[0].url, name: files[0].name }); }} > - 下载 + 下载附件 {props.mode !== "view" && (
( - + {!props.processStatus && ( + + )} )} columns={[ @@ -69,15 +76,38 @@ function List(props) { fixed: "right", render: (_, record) => ( - - {(!record.auditFlag || record.auditFlag !== 3) && ( + {props.processStatus !== 2 && ( + + )} + {props.processStatus === 2 && ( + + )} + {record.auditFlag === "3" && ( + + )} + {!props.processStatus && ( )} - {(!record.auditFlag || record.auditFlag !== 3) && ( + {!props.processStatus && ( , + ]} + > + + + ); +}; + export default Connect([NS_ENTERPRISE_PLAN], true)(List); diff --git a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/View/index.js b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/View/index.js index faabbb8..ca8a136 100644 --- a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/View/index.js +++ b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlan/View/index.js @@ -34,7 +34,7 @@ function View(props) { }, []); return ( - + setUrlState({ currentStep: key })} diff --git a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanApplyRecords/List/index.js b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanApplyRecords/List/index.js new file mode 100644 index 0000000..9d400e7 --- /dev/null +++ b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanApplyRecords/List/index.js @@ -0,0 +1,7 @@ +import ListPage from "../../EnterprisePlan/List"; + +function List(props) { + return (); +} + +export default List; diff --git a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanApplyRecords/View/index.js b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanApplyRecords/View/index.js new file mode 100644 index 0000000..ab968a5 --- /dev/null +++ b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanApplyRecords/View/index.js @@ -0,0 +1,7 @@ +import ViewPage from "../../EnterprisePlan/View"; + +function View(props) { + return (); +} + +export default View; diff --git a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanApplyRecords/index.js b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanApplyRecords/index.js new file mode 100644 index 0000000..9d5bf5a --- /dev/null +++ b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanApplyRecords/index.js @@ -0,0 +1,5 @@ +function EnterprisePlanApplyRecords(props) { + return props.children; +} + +export default EnterprisePlanApplyRecords; diff --git a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanAudit/Audit/index.js b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanAudit/Audit/index.js new file mode 100644 index 0000000..05947ae --- /dev/null +++ b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanAudit/Audit/index.js @@ -0,0 +1,103 @@ +import useUrlState from "@ahooksjs/use-url-state"; +import { Connect } from "@cqsjjb/jjb-dva-runtime"; +import { Button, message, Modal } from "antd"; +import { Fragment, useState } from "react"; +import FormBuilder from "zy-react-library/components/FormBuilder"; +import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; +import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; +import { NS_ENTERPRISE_PLAN } from "~/enumerate/namespace"; +import ViewPage from "../../EnterprisePlan/View"; + +function Audit(props) { + const query = useGetUrlQuery(); + const [urlState] = useUrlState(); + + const [auditModalVisible, setAuditModalVisible] = useState(false); + + return ( + + { + setAuditModalVisible(true); + }} + > + 审核 + + )} + {...props} + /> + { + auditModalVisible + && ( + setAuditModalVisible(false)} + /> + ) + } + + ); +} + +const AuditModalComponent = (props) => { + const [form] = FormBuilder.useForm(); + + const onSubmit = async (values) => { + const { success } = await props["enterprisePlanBasicInfoAudit"]({ + ...values, + id: props.id, + }); + if (success) { + message.success("审核成功"); + props.onCancel(); + props.goBack(); + } + }; + + return ( + + !(formValues.auditFlag === 3), + }, + ]} + form={form} + onFinish={onSubmit} + /> + + ); +}; + +const AuditModal = Connect([NS_ENTERPRISE_PLAN], true)(AuditModalComponent); +export default Audit; diff --git a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanAudit/List/index.js b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanAudit/List/index.js new file mode 100644 index 0000000..1d837f7 --- /dev/null +++ b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanAudit/List/index.js @@ -0,0 +1,7 @@ +import ListPage from "../../EnterprisePlan/List"; + +function List(props) { + return (); +} + +export default List; diff --git a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanAudit/index.js b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanAudit/index.js new file mode 100644 index 0000000..814d97a --- /dev/null +++ b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanAudit/index.js @@ -0,0 +1,5 @@ +function EnterprisePlanAudit(props) { + return props.children; +} + +export default EnterprisePlanAudit; diff --git a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanAuditRecords/List/index.js b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanAuditRecords/List/index.js new file mode 100644 index 0000000..0aa2a05 --- /dev/null +++ b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanAuditRecords/List/index.js @@ -0,0 +1,7 @@ +import ListPage from "../../EnterprisePlan/List"; + +function List(props) { + return (); +} + +export default List; diff --git a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanAuditRecords/View/index.js b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanAuditRecords/View/index.js new file mode 100644 index 0000000..ab968a5 --- /dev/null +++ b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanAuditRecords/View/index.js @@ -0,0 +1,7 @@ +import ViewPage from "../../EnterprisePlan/View"; + +function View(props) { + return (); +} + +export default View; diff --git a/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanAuditRecords/index.js b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanAuditRecords/index.js new file mode 100644 index 0000000..20d8bea --- /dev/null +++ b/src/pages/Container/Enterprise/PlanAndDrill/EnterprisePlanAuditRecords/index.js @@ -0,0 +1,5 @@ +function EnterprisePlanAuditRecords(props) { + return props.children; +} + +export default EnterprisePlanAuditRecords;