diff --git a/src/api/accident/index.js b/src/api/accident/index.js
index 4f306a7..a08b775 100644
--- a/src/api/accident/index.js
+++ b/src/api/accident/index.js
@@ -1,38 +1,42 @@
-import { declareRequest } from '@cqsjjb/jjb-dva-runtime';
+import { declareRequest } from "@cqsjjb/jjb-dva-runtime";
export const accidentList = declareRequest(
- 'accidentLoading',
- 'Post > @/accident/accident/list',
+ "accidentLoading",
+ "Post > @/accident/accident/list",
);
export const accidentAdd = declareRequest(
- 'accidentLoading',
- 'Post > @/accident/accident/save'
+ "accidentLoading",
+ "Post > @/accident/accident/save",
);
export const accidentEdit = declareRequest(
- 'accidentLoading',
- 'Put > @/accident/accident/edit'
+ "accidentLoading",
+ "Put > @/accident/accident/edit",
);
export const accidentDelete = declareRequest(
- 'accidentLoading',
- 'Delete > @/accident/accident/{id}'
+ "accidentLoading",
+ "Delete > @/accident/accident/{id}",
);
export const accidentBatchDelete = declareRequest(
- 'accidentLoading',
- 'Delete > @/accident/accident/ids?ids={ids}'
+ "accidentLoading",
+ "Delete > @/accident/accident/ids?ids={ids}",
);
-export const accidentInfo = declareRequest('accidentLoading', 'Get > /accident/accident/{id}');
+export const accidentInfo = declareRequest("accidentLoading", "Get > /accident/accident/{id}");
export const accidentCountByCorpinfoAndType = declareRequest(
- 'accidentLoading',
- 'Post > @/accident/accident/countByCorpinfoAndType'
+ "accidentLoading",
+ "Post > @/accident/accident/countByCorpinfoAndType",
);
export const getCorpInfoList = declareRequest(
- 'accidentLoading',
- 'Post > @/basicInfo/corpInfo/list'
+ "accidentLoading",
+ "Post > @/basicInfo/corpInfo/list",
);
export const accidentExport = declareRequest(
- 'accidentLoading',
- 'Post > @/accident/accident/export'
+ "accidentLoading",
+ "Post > @/accident/accident/export",
+);
+export const countByIncidentType = declareRequest(
+ "accidentLoading",
+ "Post > @/accident/accident/countByIncidentType",
);
diff --git a/src/pages/Container/Accident/components/Accident/index.js b/src/pages/Container/Accident/components/Accident/index.js
index 658441b..2bef760 100644
--- a/src/pages/Container/Accident/components/Accident/index.js
+++ b/src/pages/Container/Accident/components/Accident/index.js
@@ -1,29 +1,27 @@
-import React, { useEffect, useState } from "react";
+import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Descriptions, Form, message, Modal, Space } from "antd";
+import { useEffect, 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 ExportIcon from "zy-react-library/components/Icon/ExportIcon";
+import Page from "zy-react-library/components/Page";
+import PreviewImg from "zy-react-library/components/PreviewImg";
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 { TWO_DECIMAL_PLACES } from "zy-react-library/regular";
-import useTable from "zy-react-library/hooks/useTable";
import useDeleteFile from "zy-react-library/hooks/useDeleteFile";
-import useGetFile from "zy-react-library/hooks/useGetFile";
-import useUploadFile from "zy-react-library/hooks/useUploadFile";
-import { NS_ACCIDENT } from "~/enumerate/namespace";
-import AddIcon from "zy-react-library/components/Icon/AddIcon";
-import DeleteIcon from "zy-react-library/components/Icon/DeleteIcon";
-import ExportIcon from "zy-react-library/components/Icon/ExportIcon";
-import DictionarySelect from "zy-react-library/components/Select/Dictionary";
import useDownloadBlob from "zy-react-library/hooks/useDownloadBlob";
-import useUrlQueryCriteria from "zy-react-library/hooks/useUrlQueryCriteria";
-import PreviewImg from "zy-react-library/components/PreviewImg";
import useDownloadFile from "zy-react-library/hooks/useDownloadFile";
-import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
-import Page from "zy-react-library/components/Page";
-
+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 useUrlQueryCriteria from "zy-react-library/hooks/useUrlQueryCriteria";
+import { NS_ACCIDENT } from "~/enumerate/namespace";
function Accident(props) {
const [addModalVisible, setAddModalVisible] = useState(false);
@@ -41,8 +39,8 @@ function Accident(props) {
eqCorpinfoId: props.corpinfoId,
},
transform: data => ({
- geIncidentDate: data.incidentDate?.[0] ? (data.incidentDate[0] + " 00:00:00") : "",
- leIncidentDate: data.incidentDate?.[1] ? (data.incidentDate[1] + " 23:59:59") : "",
+ geIncidentDate: data.incidentDate?.[0] ? (`${data.incidentDate[0]} 00:00:00`) : "",
+ leIncidentDate: data.incidentDate?.[1] ? (`${data.incidentDate[1]} 23:59:59`) : "",
}),
});
const typeName = props.type === 1 ? "事件" : "事故";
@@ -50,7 +48,7 @@ function Accident(props) {
+ >
(
- {!props.isSupervise && props.permission(props.addPermission) &&
- } onClick={() => setAddModalVisible(true)}>新增
- }
- {props.permission(props.exportPermission) &&
- } ghost onClick={async () => {
- const exportParams = getUrlCriteriaQuery("searchFormKeys", "searchFormValues");
+ {!props.isSupervise && props.permission(props.addPermission)
+ && } onClick={() => setAddModalVisible(true)}>新增}
+ {props.permission(props.exportPermission)
+ && (
+ }
+ ghost
+ onClick={async () => {
+ const exportParams = getUrlCriteriaQuery("searchFormKeys", "searchFormValues");
- await downloadBlob("/accident/accident/export", { params: { ...exportParams, eqType: props.type } })
- }}>全部导出
- }
- {!props.isSupervise && props.permission(props.deleteBatchPermission) &&
- }
- ghost
- type="primary"
- danger
- onClick={() => {
- if (!selectedRowKeys.length)
- return message.warning("请选择要删除的项");
- Modal.confirm({
- title: "确定删除吗?",
- onOk: async () => {
- await props["accidentBatchDelete"]({ ids: selectedRowKeys });
- message.success("删除成功");
- setSelectedRowKeys([]);
- getData();
- },
- });
- }}
- >
- 批量删除
-
- }
+ await downloadBlob("/accident/accident/export", { params: { ...exportParams, eqType: props.type } });
+ }}
+ >
+ 全部导出
+
+ )}
+ {!props.isSupervise && props.permission(props.deleteBatchPermission)
+ && (
+ }
+ ghost
+ type="primary"
+ danger
+ onClick={() => {
+ if (!selectedRowKeys.length)
+ return message.warning("请选择要删除的项");
+ Modal.confirm({
+ title: "确定删除吗?",
+ onOk: async () => {
+ await props["accidentBatchDelete"]({ ids: selectedRowKeys });
+ message.success("删除成功");
+ setSelectedRowKeys([]);
+ getData();
+ },
+ });
+ }}
+ >
+ 批量删除
+
+ )}
)}
columns={[
@@ -127,66 +135,72 @@ function Accident(props) {
>
查看
- {!props.isSupervise && props.permission(props.editPermission) &&
-
- }
- {!props.isSupervise && props.permission(props.deletePermission) &&
-
- }
+ {!props.isSupervise && props.permission(props.editPermission)
+ && (
+
+ )}
+ {!props.isSupervise && props.permission(props.deletePermission)
+ && (
+
+ )}
),
},
]}
{...tableProps}
/>
- {addModalVisible && {
- setAddModalVisible(false);
- setCurrentId("");
- setAccidentId("");
- }}
- type={props.type}
- typeName={typeName}
- getData={getData}
- />}
+ {addModalVisible && (
+ {
+ setAddModalVisible(false);
+ setCurrentId("");
+ setAccidentId("");
+ }}
+ type={props.type}
+ typeName={typeName}
+ getData={getData}
+ />
+ )}
- {infoModalVisible && {
- setInfoModalVisible(false);
- setCurrentId("");
- setAccidentId("");
- }}
- typeName={typeName}
- getData={getData}
- />}
+ {infoModalVisible && (
+ {
+ setInfoModalVisible(false);
+ setCurrentId("");
+ setAccidentId("");
+ }}
+ typeName={typeName}
+ getData={getData}
+ />
+ )}
);
}
@@ -218,7 +232,7 @@ function AddModalComponent(props) {
const values = {
...data,
imageFiles,
- attachmentFiles
+ attachmentFiles,
};
form.setFieldsValue(values);
@@ -255,31 +269,32 @@ function AddModalComponent(props) {
await uploadFile({
single: false,
files: values.imageFiles,
- params: { type: UPLOAD_FILE_TYPE_ENUM["136"], foreignKey: accidentId }
+ params: { type: UPLOAD_FILE_TYPE_ENUM["136"], foreignKey: accidentId },
});
}
if (values.attachmentFiles && values.attachmentFiles.length > 0) {
await uploadFile({
single: false,
files: values.attachmentFiles,
- params: { type: UPLOAD_FILE_TYPE_ENUM["137"], foreignKey: accidentId }
+ params: { type: UPLOAD_FILE_TYPE_ENUM["137"], foreignKey: accidentId },
});
}
// 保存基本信息
await props["accidentEdit"]({ ...values, ...dicNames, id: props.currentId });
- } else {
+ }
+ else {
// 上传文件
const { id } = await uploadFile({
single: false,
files: values.imageFiles,
- params: { type: UPLOAD_FILE_TYPE_ENUM["136"], foreignKey: "" }
+ params: { type: UPLOAD_FILE_TYPE_ENUM["136"], foreignKey: "" },
});
if (values.attachmentFiles && values.attachmentFiles.length > 0) {
await uploadFile({
single: false,
files: values.attachmentFiles,
- params: { type: UPLOAD_FILE_TYPE_ENUM["137"], foreignKey: id }
+ params: { type: UPLOAD_FILE_TYPE_ENUM["137"], foreignKey: id },
});
}
@@ -294,7 +309,8 @@ function AddModalComponent(props) {
onCancel();
props.getData();
message.success("操作成功");
- } catch (error) {
+ }
+ catch (error) {
message.error("操作失败,请重试");
}
};
@@ -318,8 +334,8 @@ function AddModalComponent(props) {
options={[
{ name: "incidentNumber", label: `${typeName}案号` },
{ name: "incidentName", label: `${typeName}名称` },
- { name: "incidentType", label: `${typeName}类型`, render: setDicNames({ ...dicNames, incidentTypeName: label })} /> },
- { name: "incidentLevel", label: `${typeName}等级`, render: setDicNames({ ...dicNames, incidentLevelName: label })} /> },
+ { name: "incidentType", label: `${typeName}类型`, render: setDicNames({ ...dicNames, incidentTypeName: label })} /> },
+ { name: "incidentLevel", label: `${typeName}等级`, render: setDicNames({ ...dicNames, incidentLevelName: label })} /> },
{ name: "location", label: `${typeName}发生地点` },
{ name: "incidentDate", label: `${typeName}发生时间`, render: FORM_ITEM_RENDER_ENUM.DATETIME },
{ name: "directLoss", label: "直接经济损失(万元)", render: FORM_ITEM_RENDER_ENUM.NUMBER, componentProps: { precision: 2, min: 0 }, required: false },
@@ -344,7 +360,7 @@ function AddModalComponent(props) {
}}
/>
),
- span: 24
+ span: 24,
},
// 添加附件上传
{
@@ -359,7 +375,7 @@ function AddModalComponent(props) {
}}
/>
),
- span: 24
+ span: 24,
},
]}
/>
@@ -371,7 +387,7 @@ function InfoModalComponent(props) {
const [info, setInfo] = useState({});
const [imageFiles, setImageFiles] = useState([]);
const [attachmentFiles, setAttachmentFiles] = useState([]);
- const { loading, downloadFile } = useDownloadFile()
+ const { loading, downloadFile } = useDownloadFile();
const typeName = props.typeName;
const { getFile } = useGetFile();
@@ -432,7 +448,7 @@ function InfoModalComponent(props) {
label: `${typeName}图片`,
children: (
- )
+ ),
},
// 显示附件
{
@@ -448,7 +464,7 @@ function InfoModalComponent(props) {
))}
{attachmentFiles.length === 0 && 无}
- )
+ ),
},
]}
/>
diff --git a/src/pages/Container/Event/index.js b/src/pages/Container/Event/index.js
index 6c0e2fd..7949c7e 100644
--- a/src/pages/Container/Event/index.js
+++ b/src/pages/Container/Event/index.js
@@ -2,15 +2,16 @@ import Accident from "../Accident/components/Accident";
function AccidentContainer(props) {
return (
-
);
}
-export default AccidentContainer;
\ No newline at end of file
+export default AccidentContainer;
diff --git a/src/pages/Container/SuperviseAccident/Info/index.js b/src/pages/Container/SuperviseAccident/Info/index.js
index 8c4e642..8944fdf 100644
--- a/src/pages/Container/SuperviseAccident/Info/index.js
+++ b/src/pages/Container/SuperviseAccident/Info/index.js
@@ -1,16 +1,62 @@
-import Accident from "../../Accident/components/Accident";
+import { Permission } from "@cqsjjb/jjb-common-decorator/permission";
+import { Connect } from "@cqsjjb/jjb-dva-runtime";
+import { Form } from "antd";
+import { useEffect, useState } from "react";
+import Page from "zy-react-library/components/Page";
+import Table from "zy-react-library/components/Table";
+import useDictionary from "zy-react-library/hooks/useDictionary";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
+import useTable from "zy-react-library/hooks/useTable";
+import { NS_ACCIDENT } from "~/enumerate/namespace";
+
+function Bulletin(props) {
+ const [form] = Form.useForm();
+ const query = useGetUrlQuery();
+ const { getDictionary } = useDictionary();
+ const [accidentType, setAccidentType] = useState([]);
+ const [countByIncidentType, setCountByIncidentType] = useState([]);
+
+ useEffect(() => {
+ getDictionary({ dictValue: "accidentType" }).then((res) => {
+ setAccidentType(res);
+ });
+ }, []);
+
+ const { tableProps } = useTable(props["countByIncidentType"], {
+ form,
+ usePagination: false,
+ params: {
+ eqAccidentType: query.eqAccidentType,
+ corpinfoId: query.corpinfoId,
+ },
+ onSuccess: ({ data }) => {
+ setCountByIncidentType(data);
+ },
+ });
+
+ const getAccidentCount = (corpinfoId, incidentType) => {
+ return countByIncidentType.find(item => item.corpinfoId === corpinfoId && item.incidentType === incidentType)?.count || 0;
+ };
-function AccidentContainer(props) {
- const {corpinfoId,eqAccidentType} = useGetUrlQuery();
return (
-
+
+
+ ({
+ dataIndex: `countByCorpinfoAndType_${item.dictValue}`,
+ title: `${item.dictLabel}`,
+ render: (_, record) => (
+ getAccidentCount(record.corpinfoId, item.dictValue)
+ ),
+ })),
+ ]}
+ {...tableProps}
+ dataSource={[{ corpinfoId: query.corpinfoId || countByIncidentType[0]?.corpinfoId }]}
+ />
+
+
);
}
-export default AccidentContainer;
+export default Connect([NS_ACCIDENT], true)(Permission(Bulletin));
diff --git a/src/pages/Container/SuperviseAccident/List/index.js b/src/pages/Container/SuperviseAccident/List/index.js
index 91d5cf5..044ca7f 100644
--- a/src/pages/Container/SuperviseAccident/List/index.js
+++ b/src/pages/Container/SuperviseAccident/List/index.js
@@ -1,97 +1,81 @@
-import {Connect} from "@cqsjjb/jjb-dva-runtime";
-import {Button, Form, Space} from "antd";
-import {useEffect, useState} from "react";
+import { Connect } from "@cqsjjb/jjb-dva-runtime";
+import { Button, Form } from "antd";
+import { useState } from "react";
+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 {NS_ACCIDENT} from "~/enumerate/namespace";
-import useDictionary from "zy-react-library/hooks/useDictionary";
-import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
-import useUrlQueryCriteria from "zy-react-library/hooks/useUrlQueryCriteria";
-import Page from "zy-react-library/components/Page";
-
-
-const TYPE = [
- {name: "事件", bianma: "1"},
- {name: "事故", bianma: "2"},
-]
+import { NS_ACCIDENT } from "~/enumerate/namespace";
function SuperviseAccident(props) {
- const [selectedRowKeys, setSelectedRowKeys] = useState([]);
const [form] = Form.useForm();
- const {getDictionary} = useDictionary();
- const [accidentType, setAccidentType] = useState([]);
- const {getUrlCriteriaQuery} = useUrlQueryCriteria();
+
const [accidentCountByCorpinfoAndType, setAccidentCountByCorpinfoAndType] = useState([]);
- useEffect(() => {
- getDictionary({dictValue: "accidentType"}).then(res => {
- setAccidentType(res);
- });
- }, []);
- const getAccidentCountByCorpinfoAndType=async (corpinfoIds,type)=>{
- const {data} = await props["accidentCountByCorpinfoAndType"]({corpinfoIds,eqAccidentType:type})
- setAccidentCountByCorpinfoAndType(data)
- }
+ const getAccidentCountByCorpinfoAndType = async (corpinfoIds, type) => {
+ const { data } = await props["accidentCountByCorpinfoAndType"]({ corpinfoIds, eqAccidentType: type });
+ setAccidentCountByCorpinfoAndType(data);
+ };
- const {tableProps, getData} = useTable(props["getCorpInfoList"], {
+ const { tableProps, getData } = useTable(props["getCorpInfoList"], {
form,
params: {
- inType: [0,1,6],
+ inType: [0, 1, 6],
},
- onSuccess: ({data}) => {
- getAccidentCountByCorpinfoAndType(data.map(item => item.id),form.getFieldValue("eqAccidentType"))
+ onSuccess: ({ data }) => {
+ getAccidentCountByCorpinfoAndType(data.map(item => item.id), form.getFieldValue("eqAccidentType"));
},
});
- const getAccidentCount=(id,type)=>{
- return accidentCountByCorpinfoAndType.find(item => item.corpinfoId === id && item.incidentType === type)?.[`count`] || 0;
- }
- const searchType = getUrlCriteriaQuery("searchFormKeys","searchFormValues").eqAccidentType;
+ const getAccidentTotal = (id, key) => {
+ return accidentCountByCorpinfoAndType.find(item => item.corpinfoId === id)?.[key] || 0;
+ };
return (
setSelectedRowKeys(selectedRowKeys),
- }}
+
columns={[
- {dataIndex: "corpName", title: `公司名称`},
- ...accidentType.map(item => ({
- dataIndex: `countByCorpinfoAndType_${item.dictValue}`,
- title: `${item.dictLabel}`,
- render: (_, record) => (
- getAccidentCount(record.id,item.dictValue)
- ),
- })),
+ { dataIndex: "corpName", title: `公司名称` },
{
- title: "操作",
- width: 160,
- fixed: "right",
+ dataIndex: "eventCount",
+ title: "事件总数",
+ width: 180,
render: (_, record) => (
-
-
-
+
+
),
},
+ {
+ dataIndex: "accidentCount",
+ title: "事故总数",
+ width: 180,
+ render: (_, record) => (
+
+
+ ),
+ },
+
]}
{...tableProps}
/>