2025-11-07 10:21:02 +08:00
|
|
|
|
import { request } from "@cqsjjb/jjb-common-lib/http";
|
2025-11-18 16:39:36 +08:00
|
|
|
|
import { Button, Descriptions, Divider, Space, Spin } from "antd";
|
2025-11-07 10:21:02 +08:00
|
|
|
|
import dayjs from "dayjs";
|
|
|
|
|
|
import { useEffect, useState } from "react";
|
2025-12-15 15:27:21 +08:00
|
|
|
|
import HeaderBack from "zy-react-library/components/HeaderBack";
|
|
|
|
|
|
import VideoIcon from "zy-react-library/components/Icon/VideoIcon";
|
|
|
|
|
|
import PreviewImg from "zy-react-library/components/PreviewImg";
|
|
|
|
|
|
import PreviewPdf from "zy-react-library/components/PreviewPdf";
|
|
|
|
|
|
import Video from "zy-react-library/components/Video";
|
|
|
|
|
|
// import { HIDDEN_SOURCE_ENUM, HIDDEN_STATE_ENUM } from "../../../enum/hidden/gwj";
|
|
|
|
|
|
// import { UPLOAD_FILE_TYPE_ENUM } from "../../../enum/uploadFile/gwj";
|
|
|
|
|
|
// import useDownloadFile from "../../../hooks/useDownloadFile";
|
|
|
|
|
|
// import useGetFile from "../../../hooks/useGetFile";
|
|
|
|
|
|
// import useGetUrlQuery from "../../../hooks/useGetUrlQuery";
|
|
|
|
|
|
// import { getFileName, getFileSuffix, getLabelName } from "../../../utils";
|
|
|
|
|
|
// import HeaderBack from "../../HeaderBack";
|
|
|
|
|
|
// import VideoIcon from "../../Icon/VideoIcon";
|
|
|
|
|
|
// import PreviewImg from "../../PreviewImg";
|
|
|
|
|
|
// import PreviewPdf from "../../PreviewPdf";
|
|
|
|
|
|
// import Video from "../../Video";
|
|
|
|
|
|
import { HIDDEN_SOURCE_ENUM, HIDDEN_STATE_ENUM } from "zy-react-library/enum/hidden/gwj";
|
|
|
|
|
|
import { UPLOAD_FILE_TYPE_ENUM } from "zy-react-library/enum/uploadFile/gwj";
|
|
|
|
|
|
import useDownloadFile from "zy-react-library/hooks/useDownloadFile";
|
|
|
|
|
|
import useGetFile from "zy-react-library/hooks/useGetFile";
|
|
|
|
|
|
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
|
|
|
|
|
|
import { getFileName, getFileSuffix, getLabelName } from "zy-react-library/utils";
|
2025-11-07 10:21:02 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 隐患查看组件(港务局版本)
|
|
|
|
|
|
*/
|
|
|
|
|
|
function HiddenInfo(props) {
|
|
|
|
|
|
const {
|
|
|
|
|
|
id = "",
|
|
|
|
|
|
idKey = "id",
|
|
|
|
|
|
hiddenId = "",
|
|
|
|
|
|
hiddenIdKey = "hiddenId",
|
|
|
|
|
|
isShowHeaderBack = true,
|
2025-12-05 14:17:41 +08:00
|
|
|
|
history = false,
|
2025-11-07 15:58:38 +08:00
|
|
|
|
onGetData,
|
2025-11-07 10:21:02 +08:00
|
|
|
|
} = props;
|
|
|
|
|
|
|
|
|
|
|
|
const [info, setInfo] = useState({
|
|
|
|
|
|
hiddenUserPresetsCO: {},
|
2025-12-05 14:17:41 +08:00
|
|
|
|
hiddenRectifyUserCO: [],
|
|
|
|
|
|
hiddenConfirmUserCO: [],
|
|
|
|
|
|
hiddenAcceptUserCO: [],
|
2025-11-19 17:38:25 +08:00
|
|
|
|
hiddenInspecCO: {},
|
2025-11-07 10:21:02 +08:00
|
|
|
|
hiddenSpecialList: [],
|
|
|
|
|
|
hiddenExtensionList: [],
|
|
|
|
|
|
});
|
|
|
|
|
|
const [hiddenImageFiles, setHiddenImageFiles] = useState([]);
|
|
|
|
|
|
const [hiddenVideoFiles, setHiddenVideoFiles] = useState([]);
|
|
|
|
|
|
const [afterRectificationImageFiles, setAfterRectificationImageFiles] = useState([]);
|
|
|
|
|
|
const [rectificationPlanImageFiles, setRectificationPlanImageFiles] = useState([]);
|
|
|
|
|
|
const [acceptImageFiles, setAcceptImageFiles] = useState([]);
|
2025-11-19 17:38:25 +08:00
|
|
|
|
const [inspectionAcceptImageFiles, setInspectionAcceptImageFiles] = useState([]);
|
2025-11-07 13:58:06 +08:00
|
|
|
|
const [loading, setLoading] = useState(true);
|
2025-12-03 09:55:18 +08:00
|
|
|
|
const [videoModalOpen, setVideoModalOpen] = useState(false);
|
2025-11-19 17:38:25 +08:00
|
|
|
|
|
2025-11-07 10:21:02 +08:00
|
|
|
|
const { getFile } = useGetFile();
|
2025-11-07 10:50:13 +08:00
|
|
|
|
const query = useGetUrlQuery();
|
2025-11-08 15:52:06 +08:00
|
|
|
|
const { loading: downloadFileLoading, downloadFile } = useDownloadFile();
|
2025-11-07 10:21:02 +08:00
|
|
|
|
|
2025-11-18 16:43:27 +08:00
|
|
|
|
const getFileData = async (info) => {
|
2025-12-05 14:17:41 +08:00
|
|
|
|
const hiddenImageFiles = await getFile({
|
|
|
|
|
|
eqType: UPLOAD_FILE_TYPE_ENUM["3"],
|
|
|
|
|
|
eqForeignKey: hiddenId || query[hiddenIdKey],
|
|
|
|
|
|
});
|
2025-11-07 10:21:02 +08:00
|
|
|
|
setHiddenImageFiles(hiddenImageFiles);
|
2025-12-05 14:17:41 +08:00
|
|
|
|
const hiddenVideoFiles = await getFile({
|
|
|
|
|
|
eqType: UPLOAD_FILE_TYPE_ENUM["102"],
|
|
|
|
|
|
eqForeignKey: hiddenId || query[hiddenIdKey],
|
|
|
|
|
|
});
|
2025-11-07 10:21:02 +08:00
|
|
|
|
setHiddenVideoFiles(hiddenVideoFiles);
|
2025-11-18 16:39:36 +08:00
|
|
|
|
|
2025-12-05 14:17:41 +08:00
|
|
|
|
if (info.hiddenRectifyUserCO && info.hiddenRectifyUserCO.length > 0) {
|
|
|
|
|
|
for (let i = 0; i < info.hiddenRectifyUserCO.length; i++) {
|
2025-12-10 16:11:10 +08:00
|
|
|
|
const afterRectificationImageFiles = await getFile({
|
|
|
|
|
|
eqType: UPLOAD_FILE_TYPE_ENUM["4"],
|
|
|
|
|
|
eqForeignKey: info.hiddenRectifyUserCO[i].hiddenUserId,
|
|
|
|
|
|
});
|
|
|
|
|
|
setAfterRectificationImageFiles(prevState => [...prevState, afterRectificationImageFiles]);
|
|
|
|
|
|
if (info.hiddenRectifyUserCO[i].isRectificationScheme === 1 && info.hiddenRectifyUserCO[i].hiddenSchemeCO && Object.keys(info.hiddenRectifyUserCO[i].hiddenSchemeCO).length > 0) {
|
2025-12-05 14:17:41 +08:00
|
|
|
|
const rectificationPlanImageFiles = await getFile({
|
|
|
|
|
|
eqType: UPLOAD_FILE_TYPE_ENUM["8"],
|
2025-12-15 15:27:21 +08:00
|
|
|
|
eqForeignKey: info.hiddenRectifyUserCO[i].hiddenSchemeCO.hiddenSchemeId,
|
2025-12-05 14:17:41 +08:00
|
|
|
|
});
|
2025-12-10 16:11:10 +08:00
|
|
|
|
setRectificationPlanImageFiles(prevState => [...prevState, rectificationPlanImageFiles]);
|
2025-12-05 14:17:41 +08:00
|
|
|
|
}
|
2025-11-18 16:39:36 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-12-05 14:17:41 +08:00
|
|
|
|
if (info.isQualified === 1 && (info.hiddenAcceptUserCO && info.hiddenAcceptUserCO.length > 0)) {
|
|
|
|
|
|
for (let i = 0; i < info.hiddenAcceptUserCO.length; i++) {
|
|
|
|
|
|
const acceptImageFiles = await getFile({
|
|
|
|
|
|
eqType: UPLOAD_FILE_TYPE_ENUM["5"],
|
|
|
|
|
|
eqForeignKey: hiddenId || query[hiddenIdKey],
|
|
|
|
|
|
});
|
2025-12-10 16:11:10 +08:00
|
|
|
|
setAcceptImageFiles(prevState => [...prevState, acceptImageFiles]);
|
2025-12-05 14:17:41 +08:00
|
|
|
|
}
|
2025-11-18 16:39:36 +08:00
|
|
|
|
}
|
2025-11-19 17:38:25 +08:00
|
|
|
|
|
|
|
|
|
|
if (info.hiddenInspecCO && Object.keys(info.hiddenInspecCO).length > 0) {
|
|
|
|
|
|
const inspectionAcceptImageFiles = await getFile({
|
|
|
|
|
|
eqType: UPLOAD_FILE_TYPE_ENUM["146"],
|
2025-11-20 16:43:06 +08:00
|
|
|
|
eqForeignKey: hiddenId || query[hiddenIdKey],
|
2025-11-19 17:38:25 +08:00
|
|
|
|
});
|
|
|
|
|
|
setInspectionAcceptImageFiles(inspectionAcceptImageFiles);
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
2025-11-18 16:43:27 +08:00
|
|
|
|
|
|
|
|
|
|
const getData = async () => {
|
2025-12-05 14:17:41 +08:00
|
|
|
|
request(!history ? `/hidden/hidden/${id || query[idKey]}` : `/hidden/hidden/history/${id || query[idKey]}`, "get").then((res) => {
|
2025-11-18 16:43:27 +08:00
|
|
|
|
setInfo(res.data);
|
|
|
|
|
|
getFileData(res.data);
|
|
|
|
|
|
setLoading(false);
|
|
|
|
|
|
onGetData?.(res.data);
|
|
|
|
|
|
});
|
2025-11-07 10:21:02 +08:00
|
|
|
|
};
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
|
getData();
|
2025-11-18 16:39:36 +08:00
|
|
|
|
}, [props.id, props.hiddenId]);
|
2025-11-07 10:21:02 +08:00
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
|
<div>
|
|
|
|
|
|
{isShowHeaderBack && <HeaderBack title="查看" />}
|
2025-11-08 15:52:06 +08:00
|
|
|
|
<Spin spinning={loading || downloadFileLoading}>
|
2025-11-07 13:58:06 +08:00
|
|
|
|
<div style={{ padding: 20 }}>
|
2025-11-08 15:52:06 +08:00
|
|
|
|
<Divider orientation="left">隐患信息</Divider>
|
|
|
|
|
|
<Descriptions
|
|
|
|
|
|
bordered
|
|
|
|
|
|
column={1}
|
2025-12-05 14:17:41 +08:00
|
|
|
|
styles={{ label: { width: 200 } }}
|
2025-11-08 15:52:06 +08:00
|
|
|
|
items={[
|
|
|
|
|
|
{ label: "隐患来源", children: getLabelName({ list: HIDDEN_SOURCE_ENUM, status: info.source }) },
|
|
|
|
|
|
{ label: "隐患类型", children: info.hiddenTypeName },
|
|
|
|
|
|
{ label: "隐患级别", children: info.hiddenLevelName },
|
|
|
|
|
|
{ label: "隐患状态", children: getLabelName({ list: HIDDEN_STATE_ENUM, status: info.state }) },
|
|
|
|
|
|
{ label: "隐患描述", children: info.hiddenDesc },
|
2025-11-18 16:39:36 +08:00
|
|
|
|
{ label: "隐患部位", children: info.hiddenPartName },
|
2025-11-11 14:40:56 +08:00
|
|
|
|
...(
|
|
|
|
|
|
(info.source === 2 || info.source === 3) && (info.hiddenCheckListCO && Object.keys(info.hiddenCheckListCO).length > 0)
|
2025-11-18 16:39:36 +08:00
|
|
|
|
? [
|
|
|
|
|
|
{ label: "风险点(单元)", children: info.hiddenCheckListCO.listRiskPoints },
|
|
|
|
|
|
{ label: "辨识部位", children: info.hiddenCheckListCO.identifiedLocations },
|
|
|
|
|
|
{ label: "存在风险", children: info.hiddenCheckListCO.existingRisks },
|
|
|
|
|
|
{ label: "风险分级", children: info.hiddenCheckListCO.riskLevel },
|
|
|
|
|
|
{ label: "隐患清单", children: info.hiddenCheckListCO.listName },
|
|
|
|
|
|
{ label: "检查内容", children: info.hiddenCheckListCO.inspectionContent },
|
|
|
|
|
|
]
|
|
|
|
|
|
: []
|
2025-11-11 14:40:56 +08:00
|
|
|
|
),
|
2025-11-07 10:21:02 +08:00
|
|
|
|
{
|
2025-11-08 15:52:06 +08:00
|
|
|
|
label: "隐患上报位置(经纬度)",
|
|
|
|
|
|
children: [info.longitude && `经度:${info.longitude}`, info.latitude && `纬度:${info.latitude}`].filter(Boolean).join(" "),
|
|
|
|
|
|
},
|
|
|
|
|
|
{ label: "隐患位置描述", children: info.positionDesc },
|
|
|
|
|
|
{ label: "隐患发现人", children: info.creatorName },
|
2025-12-15 15:27:21 +08:00
|
|
|
|
{ label: "隐患发现时间", children: dayjs(info.hiddenFindTime).format("YYYY-MM-DD HH:mm:ss") },
|
2025-11-08 15:52:06 +08:00
|
|
|
|
{
|
|
|
|
|
|
label: "整改类型",
|
|
|
|
|
|
children: getLabelName({
|
|
|
|
|
|
list: [{ bianma: "1", name: "立即整改" }, { bianma: "2", name: "延期整改" }],
|
|
|
|
|
|
status: info.rectificationType,
|
|
|
|
|
|
}),
|
|
|
|
|
|
},
|
2025-11-07 10:21:02 +08:00
|
|
|
|
{
|
2025-11-08 15:52:06 +08:00
|
|
|
|
label: "是否相关方",
|
|
|
|
|
|
children: getLabelName({
|
2025-12-15 15:27:21 +08:00
|
|
|
|
list: [{ bianma: "1", name: "是" }, { bianma: "0", name: "否" }],
|
2025-11-08 15:52:06 +08:00
|
|
|
|
status: info.isRelated,
|
|
|
|
|
|
}),
|
|
|
|
|
|
},
|
|
|
|
|
|
{ label: "隐患图片", children: <PreviewImg files={hiddenImageFiles} /> },
|
2025-12-01 11:31:26 +08:00
|
|
|
|
...(hiddenVideoFiles.length > 0
|
2025-12-05 14:17:41 +08:00
|
|
|
|
? [{
|
|
|
|
|
|
label: "隐患视频",
|
|
|
|
|
|
children: (
|
|
|
|
|
|
<VideoIcon onClick={() => {
|
|
|
|
|
|
setVideoModalOpen(true);
|
|
|
|
|
|
}}
|
|
|
|
|
|
/>
|
|
|
|
|
|
),
|
|
|
|
|
|
}]
|
2025-12-01 11:31:26 +08:00
|
|
|
|
: []),
|
2025-11-08 15:52:06 +08:00
|
|
|
|
]}
|
|
|
|
|
|
/>
|
|
|
|
|
|
{
|
|
|
|
|
|
(info.hiddenUserPresetsCO && Object.keys(info.hiddenUserPresetsCO).length > 0) && (
|
|
|
|
|
|
<>
|
|
|
|
|
|
<Divider orientation="left">整改信息(发现人预填)</Divider>
|
|
|
|
|
|
<Descriptions
|
|
|
|
|
|
bordered
|
|
|
|
|
|
column={1}
|
2025-12-05 14:17:41 +08:00
|
|
|
|
styles={{ label: { width: 200 } }}
|
2025-11-08 15:52:06 +08:00
|
|
|
|
items={[
|
|
|
|
|
|
{ label: "整改部门", children: info.hiddenUserPresetsCO.rectifyDeptName },
|
|
|
|
|
|
{ label: "整改人", children: info.hiddenUserPresetsCO.rectifyUserName },
|
|
|
|
|
|
...(info.rectificationType === 2
|
|
|
|
|
|
? [
|
2025-12-05 14:17:41 +08:00
|
|
|
|
{
|
|
|
|
|
|
label: "整改期限",
|
|
|
|
|
|
children: dayjs(info.hiddenUserPresetsCO.rectifyDeadline).format("YYYY-MM-DD"),
|
|
|
|
|
|
},
|
2025-11-08 15:52:06 +08:00
|
|
|
|
]
|
|
|
|
|
|
: []),
|
|
|
|
|
|
...(info.rectificationType === 1
|
|
|
|
|
|
? [
|
|
|
|
|
|
{ label: "验收部门", children: info.hiddenUserPresetsCO.checkDeptName },
|
|
|
|
|
|
{ label: "验收人", children: info.hiddenUserPresetsCO.checkUserName },
|
|
|
|
|
|
]
|
|
|
|
|
|
: []),
|
|
|
|
|
|
]}
|
|
|
|
|
|
/>
|
|
|
|
|
|
</>
|
|
|
|
|
|
)
|
|
|
|
|
|
}
|
|
|
|
|
|
{
|
2025-12-09 13:49:22 +08:00
|
|
|
|
(info.hiddenConfirmUserCO && info.hiddenConfirmUserCO.length > 0) && (
|
2025-11-08 15:52:06 +08:00
|
|
|
|
<>
|
|
|
|
|
|
<Divider orientation="left">隐患确认</Divider>
|
2025-12-05 14:17:41 +08:00
|
|
|
|
{
|
|
|
|
|
|
info.hiddenConfirmUserCO.map(item => (
|
|
|
|
|
|
<Descriptions
|
|
|
|
|
|
key={item.id}
|
|
|
|
|
|
bordered
|
|
|
|
|
|
column={1}
|
|
|
|
|
|
styles={{ label: { width: 200 } }}
|
|
|
|
|
|
items={[
|
|
|
|
|
|
{ label: "隐患级别", children: item.hiddenLevelName },
|
|
|
|
|
|
{ label: "隐患确认人", children: item.userName },
|
|
|
|
|
|
{ label: "隐患确认时间", children: item.rectificationTime },
|
|
|
|
|
|
{ label: "整改负责人部门", children: item.rectifyDeptName },
|
|
|
|
|
|
{ label: "整改负责人", children: item.rectifyUserName },
|
|
|
|
|
|
{ label: "整改完成期限", children: item.rectificationDeadline },
|
|
|
|
|
|
{ label: "验收部门", children: item.checkDeptName },
|
|
|
|
|
|
{ label: "验收人", children: item.checkUserName },
|
|
|
|
|
|
...(item.repulseCause
|
|
|
|
|
|
? [
|
|
|
|
|
|
{ label: "打回意见", children: item.repulseCause },
|
|
|
|
|
|
{ label: "打回时间", children: item.rectificationTime },
|
|
|
|
|
|
]
|
|
|
|
|
|
: []),
|
|
|
|
|
|
]}
|
|
|
|
|
|
/>
|
|
|
|
|
|
))
|
|
|
|
|
|
}
|
2025-11-08 15:52:06 +08:00
|
|
|
|
</>
|
|
|
|
|
|
)
|
|
|
|
|
|
}
|
|
|
|
|
|
{
|
|
|
|
|
|
info.hiddenExtensionList && info.hiddenExtensionList.length > 0 && (
|
|
|
|
|
|
<>
|
|
|
|
|
|
<Divider orientation="left">延期信息</Divider>
|
|
|
|
|
|
{
|
|
|
|
|
|
info.hiddenExtensionList.map(item => (
|
|
|
|
|
|
<Descriptions
|
|
|
|
|
|
key={item.id}
|
|
|
|
|
|
bordered
|
|
|
|
|
|
column={1}
|
2025-12-05 14:17:41 +08:00
|
|
|
|
styles={{ label: { width: 200 } }}
|
2025-11-08 15:52:06 +08:00
|
|
|
|
items={[
|
|
|
|
|
|
{ label: "申请延期日期", children: item.createTime },
|
|
|
|
|
|
{ label: "延期日期", children: item.delayTime },
|
|
|
|
|
|
{ label: "审核人", children: item.updateName },
|
|
|
|
|
|
...(item.state === 3
|
|
|
|
|
|
? [
|
|
|
|
|
|
{ label: "处置方案", children: item.disposalPlan },
|
|
|
|
|
|
{
|
|
|
|
|
|
label: "处置方案附件",
|
|
|
|
|
|
children: (
|
|
|
|
|
|
getFileSuffix(item.disposalFile) === "pdf"
|
|
|
|
|
|
? <PreviewPdf name={getFileName(item.disposalFile)} url={item.disposalFile} />
|
2025-11-08 17:55:27 +08:00
|
|
|
|
: (
|
|
|
|
|
|
<Space>
|
|
|
|
|
|
<span>{getFileName(item.disposalFile)}</span>
|
2025-12-05 14:17:41 +08:00
|
|
|
|
<Button
|
|
|
|
|
|
type="primary"
|
|
|
|
|
|
size="small"
|
|
|
|
|
|
onClick={() => downloadFile(item.disposalFile)}
|
|
|
|
|
|
>
|
|
|
|
|
|
预览
|
|
|
|
|
|
</Button>
|
2025-11-08 17:55:27 +08:00
|
|
|
|
</Space>
|
|
|
|
|
|
)
|
2025-11-08 15:52:06 +08:00
|
|
|
|
),
|
|
|
|
|
|
},
|
|
|
|
|
|
]
|
|
|
|
|
|
: []),
|
|
|
|
|
|
{
|
|
|
|
|
|
label: "延期审核状态",
|
|
|
|
|
|
children: (
|
|
|
|
|
|
<>
|
|
|
|
|
|
{item.state === 1 && <span>待审核</span>}
|
|
|
|
|
|
{item.state === 2 && <span>审批中</span>}
|
|
|
|
|
|
{item.state === 3 && <span>已通过</span>}
|
|
|
|
|
|
{item.state === 4 && <span>已拒绝</span>}
|
|
|
|
|
|
{item.state === 5 && <span>已撤回</span>}
|
|
|
|
|
|
</>
|
|
|
|
|
|
),
|
|
|
|
|
|
},
|
2025-12-05 14:17:41 +08:00
|
|
|
|
...((item.state === 3 || item.state === 4)
|
|
|
|
|
|
? [{
|
|
|
|
|
|
label: "延期审核时间",
|
|
|
|
|
|
children: item.updateTime,
|
|
|
|
|
|
}]
|
|
|
|
|
|
: []),
|
2025-11-08 15:52:06 +08:00
|
|
|
|
]}
|
|
|
|
|
|
/>
|
|
|
|
|
|
),
|
|
|
|
|
|
)
|
|
|
|
|
|
}
|
|
|
|
|
|
</>
|
|
|
|
|
|
)
|
|
|
|
|
|
}
|
|
|
|
|
|
{
|
|
|
|
|
|
info.hiddenSpecialList && info.hiddenSpecialList.length > 0 && (
|
|
|
|
|
|
<>
|
|
|
|
|
|
<Divider orientation="left">特殊处置审核信息</Divider>
|
|
|
|
|
|
{
|
|
|
|
|
|
info.hiddenSpecialList.map(item => (
|
|
|
|
|
|
<Descriptions
|
|
|
|
|
|
key={item.id}
|
|
|
|
|
|
bordered
|
|
|
|
|
|
column={1}
|
2025-12-05 14:17:41 +08:00
|
|
|
|
styles={{ label: { width: 200 } }}
|
2025-11-08 15:52:06 +08:00
|
|
|
|
items={[
|
|
|
|
|
|
...((item.state === 3 || item.state === 4)
|
|
|
|
|
|
? [
|
|
|
|
|
|
{ label: "审核人", children: item.updateName },
|
|
|
|
|
|
{ label: "审核时间", children: item.updateTime },
|
|
|
|
|
|
]
|
|
|
|
|
|
: []),
|
|
|
|
|
|
{ label: "无法整改原因", children: item.examine },
|
|
|
|
|
|
...(item.state === 3
|
|
|
|
|
|
? [
|
|
|
|
|
|
{ label: "处置方案", children: item.disposalPlan },
|
|
|
|
|
|
{
|
|
|
|
|
|
label: "处置方案附件",
|
|
|
|
|
|
children: (
|
|
|
|
|
|
getFileSuffix(item.disposalFile) === "pdf"
|
|
|
|
|
|
? <PreviewPdf name={getFileName(item.disposalFile)} url={item.disposalFile} />
|
2025-11-08 17:55:27 +08:00
|
|
|
|
: (
|
|
|
|
|
|
<Space>
|
|
|
|
|
|
<span>{getFileName(item.disposalFile)}</span>
|
2025-12-05 14:17:41 +08:00
|
|
|
|
<Button
|
|
|
|
|
|
type="primary"
|
|
|
|
|
|
size="small"
|
|
|
|
|
|
onClick={() => downloadFile(item.disposalFile)}
|
|
|
|
|
|
>
|
|
|
|
|
|
预览
|
|
|
|
|
|
</Button>
|
2025-11-08 17:55:27 +08:00
|
|
|
|
</Space>
|
|
|
|
|
|
)
|
2025-11-08 15:52:06 +08:00
|
|
|
|
),
|
|
|
|
|
|
},
|
2025-12-05 14:17:41 +08:00
|
|
|
|
{
|
|
|
|
|
|
label: "是否更换整改负责人",
|
|
|
|
|
|
children: item.rectifyUserCO && Object.keys(item.rectifyUserCO).length > 0 ? "是" : "否",
|
|
|
|
|
|
},
|
2025-11-08 15:52:06 +08:00
|
|
|
|
...(
|
|
|
|
|
|
item.rectifyUserCO && Object.keys(item.rectifyUserCO).length > 0
|
|
|
|
|
|
? [{ label: "整改负责人", children: item.rectifyUserCO.userName }]
|
|
|
|
|
|
: []),
|
|
|
|
|
|
]
|
|
|
|
|
|
: []),
|
|
|
|
|
|
{
|
|
|
|
|
|
label: "特殊处置审核状态",
|
|
|
|
|
|
children: (
|
|
|
|
|
|
<>
|
|
|
|
|
|
{item.state === 1 && <span>待审核</span>}
|
|
|
|
|
|
{item.state === 2 && <span>审批中</span>}
|
|
|
|
|
|
{item.state === 3 && <span>已通过</span>}
|
|
|
|
|
|
{item.state === 4 && <span>已拒绝</span>}
|
|
|
|
|
|
{item.state === 5 && <span>已撤回</span>}
|
|
|
|
|
|
</>
|
|
|
|
|
|
),
|
|
|
|
|
|
},
|
|
|
|
|
|
]}
|
|
|
|
|
|
/>
|
|
|
|
|
|
),
|
|
|
|
|
|
)
|
|
|
|
|
|
}
|
|
|
|
|
|
</>
|
|
|
|
|
|
)
|
|
|
|
|
|
}
|
|
|
|
|
|
{
|
2025-12-05 14:17:41 +08:00
|
|
|
|
(info.hiddenRectifyUserCO && info.hiddenRectifyUserCO.length > 0) && (
|
2025-11-08 15:52:06 +08:00
|
|
|
|
<>
|
|
|
|
|
|
<Divider orientation="left">整改信息</Divider>
|
2025-12-05 14:17:41 +08:00
|
|
|
|
{
|
2025-12-09 13:49:22 +08:00
|
|
|
|
info.hiddenRectifyUserCO.map((item, index) => (
|
2025-12-05 14:17:41 +08:00
|
|
|
|
<Descriptions
|
|
|
|
|
|
key={item.id}
|
|
|
|
|
|
bordered
|
|
|
|
|
|
column={1}
|
|
|
|
|
|
styles={{ label: { width: 200 } }}
|
|
|
|
|
|
items={[
|
|
|
|
|
|
{ label: "整改部门", children: item.deptName },
|
|
|
|
|
|
{ label: "整改人", children: item.userName },
|
|
|
|
|
|
{ label: "整改时间", children: item.rectificationTime },
|
|
|
|
|
|
{ label: "整改描述", children: item.descr },
|
2025-12-15 15:27:21 +08:00
|
|
|
|
...(item.investmentFunds ? [{ label: "投入资金", children: `${item.investmentFunds}元` }] : []),
|
|
|
|
|
|
...(info.tempSafeMeasure ? [{ label: "临时安全措施", children: info.tempSafeMeasure }] : []),
|
2025-12-10 16:11:10 +08:00
|
|
|
|
{ label: "整改后图片", children: <PreviewImg files={afterRectificationImageFiles[index]} /> },
|
2025-12-05 14:17:41 +08:00
|
|
|
|
{ label: "整改方案", children: item.isRectificationScheme === 0 ? "无" : "有" },
|
|
|
|
|
|
...((item.isRectificationScheme === 1 && item.hiddenSchemeCO && Object.keys(item.hiddenSchemeCO).length > 0)
|
|
|
|
|
|
? [
|
|
|
|
|
|
{ label: "治理标准", children: item.hiddenSchemeCO.governStanDards },
|
|
|
|
|
|
{ label: "治理方法", children: item.hiddenSchemeCO.governMethod },
|
|
|
|
|
|
{ label: "经费落实", children: item.hiddenSchemeCO.expenditure },
|
|
|
|
|
|
{ label: "负责人员", children: item.hiddenSchemeCO.principal },
|
|
|
|
|
|
{ label: "工时安排", children: item.hiddenSchemeCO.programming },
|
|
|
|
|
|
{ label: "时限要求", children: item.hiddenSchemeCO.timeLimitFor },
|
|
|
|
|
|
{ label: "工作要求", children: item.hiddenSchemeCO.jobRequireMent },
|
|
|
|
|
|
{ label: "其他事项", children: item.hiddenSchemeCO.otherBusiness },
|
|
|
|
|
|
{ label: "方案图片", children: <PreviewImg files={rectificationPlanImageFiles[index]} /> },
|
|
|
|
|
|
]
|
|
|
|
|
|
: []),
|
|
|
|
|
|
]}
|
|
|
|
|
|
/>
|
|
|
|
|
|
))
|
|
|
|
|
|
}
|
2025-11-08 15:52:06 +08:00
|
|
|
|
</>
|
|
|
|
|
|
)
|
|
|
|
|
|
}
|
|
|
|
|
|
{
|
2025-12-05 14:17:41 +08:00
|
|
|
|
(info.hiddenAcceptUserCO && info.hiddenAcceptUserCO.length > 0)
|
2025-11-08 15:52:06 +08:00
|
|
|
|
? (
|
2025-11-24 13:46:33 +08:00
|
|
|
|
info.isQualified === 1
|
2025-11-08 15:52:06 +08:00
|
|
|
|
? (
|
|
|
|
|
|
<>
|
|
|
|
|
|
<Divider orientation="left">验收信息</Divider>
|
2025-12-05 14:17:41 +08:00
|
|
|
|
{
|
2025-12-09 13:49:22 +08:00
|
|
|
|
info.hiddenAcceptUserCO.map((item, index) => (
|
2025-12-05 14:17:41 +08:00
|
|
|
|
<Descriptions
|
|
|
|
|
|
key={item.id}
|
|
|
|
|
|
bordered
|
|
|
|
|
|
column={1}
|
|
|
|
|
|
styles={{ label: { width: 200 } }}
|
|
|
|
|
|
items={[
|
|
|
|
|
|
{ label: "验收部门", children: item.deptName },
|
|
|
|
|
|
{ label: "验收人", children: item.userName },
|
|
|
|
|
|
{ label: "验收时间", children: item.rectificationTime },
|
2025-12-15 15:27:21 +08:00
|
|
|
|
...(item.repulseCause ? [{ label: "验收打回意见", children: item.repulseCause }] : []),
|
2025-12-05 14:17:41 +08:00
|
|
|
|
{ label: "是否合格", children: "合格" },
|
2025-12-15 15:27:21 +08:00
|
|
|
|
...(item.descr ? [{ label: "验收描述", children: item.descr }] : []),
|
|
|
|
|
|
...((acceptImageFiles[index] && acceptImageFiles[index].length > 0) ? [{ label: "验收图片", children: <PreviewImg files={acceptImageFiles[index]} /> }] : []),
|
2025-12-05 14:17:41 +08:00
|
|
|
|
]}
|
|
|
|
|
|
/>
|
|
|
|
|
|
))
|
|
|
|
|
|
}
|
2025-11-08 15:52:06 +08:00
|
|
|
|
</>
|
|
|
|
|
|
)
|
|
|
|
|
|
: (
|
|
|
|
|
|
<>
|
|
|
|
|
|
<Divider orientation="left">验收打回信息</Divider>
|
2025-12-05 14:17:41 +08:00
|
|
|
|
{
|
2025-12-09 13:49:22 +08:00
|
|
|
|
info.hiddenAcceptUserCO.map(item => (
|
2025-12-05 14:17:41 +08:00
|
|
|
|
<Descriptions
|
|
|
|
|
|
key={item.id}
|
|
|
|
|
|
bordered
|
|
|
|
|
|
column={1}
|
|
|
|
|
|
styles={{ label: { width: 200 } }}
|
|
|
|
|
|
items={[
|
|
|
|
|
|
{ label: "验收部门", children: item.deptName },
|
|
|
|
|
|
{ label: "验收人", children: item.userName },
|
|
|
|
|
|
{ label: "验收时间", children: item.rectificationTime },
|
|
|
|
|
|
{ label: "验收打回意见", children: item.repulseCause },
|
|
|
|
|
|
]}
|
|
|
|
|
|
/>
|
|
|
|
|
|
))
|
|
|
|
|
|
}
|
2025-11-08 15:52:06 +08:00
|
|
|
|
</>
|
|
|
|
|
|
)
|
2025-11-07 10:21:02 +08:00
|
|
|
|
)
|
2025-11-08 15:52:06 +08:00
|
|
|
|
: null
|
|
|
|
|
|
}
|
2025-11-19 17:38:25 +08:00
|
|
|
|
{
|
|
|
|
|
|
(info.hiddenInspecCO && Object.keys(info.hiddenInspecCO).length > 0)
|
|
|
|
|
|
? (
|
|
|
|
|
|
<>
|
|
|
|
|
|
<Divider orientation="left">安全环保验收信息</Divider>
|
|
|
|
|
|
<Descriptions
|
|
|
|
|
|
bordered
|
|
|
|
|
|
column={1}
|
2025-12-05 14:17:41 +08:00
|
|
|
|
styles={{ label: { width: 200 } }}
|
2025-11-19 17:38:25 +08:00
|
|
|
|
items={[
|
|
|
|
|
|
{ label: "验收人", children: info.hiddenInspecCO.finalCheckOr },
|
|
|
|
|
|
{ label: "验收时间", children: info.hiddenInspecCO.finalCheckTime },
|
|
|
|
|
|
{ label: "是否合格", children: info.hiddenInspecCO.finalCheck === 1 ? "合格" : "不合格" },
|
|
|
|
|
|
{ label: "验收描述", children: info.hiddenInspecCO.finalCheckDesc },
|
|
|
|
|
|
{ label: "验收图片", children: <PreviewImg files={inspectionAcceptImageFiles} /> },
|
|
|
|
|
|
]}
|
|
|
|
|
|
/>
|
|
|
|
|
|
</>
|
|
|
|
|
|
)
|
|
|
|
|
|
: null
|
|
|
|
|
|
}
|
2025-11-08 15:52:06 +08:00
|
|
|
|
</div>
|
2025-11-07 13:58:06 +08:00
|
|
|
|
</Spin>
|
2025-12-01 11:31:26 +08:00
|
|
|
|
{
|
|
|
|
|
|
videoModalOpen && (
|
|
|
|
|
|
<Video
|
|
|
|
|
|
visible={videoModalOpen}
|
|
|
|
|
|
source={hiddenVideoFiles[0].url}
|
|
|
|
|
|
onCancel={() => setVideoModalOpen(false)}
|
|
|
|
|
|
title="隐患视频"
|
|
|
|
|
|
/>
|
|
|
|
|
|
)
|
|
|
|
|
|
}
|
2025-11-07 10:21:02 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export default HiddenInfo;
|