zy-react-library/components/HiddenInfo/gwj/index.js

364 lines
17 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import { request } from "@cqsjjb/jjb-common-lib/http";
import { Descriptions, Divider } from "antd";
import dayjs from "dayjs";
import { useEffect, useState } from "react";
import HeaderBack from "../../HeaderBack";
import VideoIcon from "../../Icon/VideoIcon";
import PreviewImg from "../../PreviewImg";
import PreviewPdf from "../../PreviewPdf";
import { UPLOAD_FILE_TYPE_ENUM } from "../../../enum/uploadFile/gwj";
import useGetFile from "../../../hooks/useGetFile";
import { getLabelName } from "../../../utils";
import { HIDDEN_SOURCE_ENUM, HIDDEN_STATE_ENUM } from "../../../enum/hidden/gwj";
/**
* 隐患查看组件(港务局版本)
*/
function HiddenInfo(props) {
const {
id = "",
idKey = "id",
hiddenId = "",
hiddenIdKey = "hiddenId",
isShowHeaderBack = true,
} = props;
const [info, setInfo] = useState({
hiddenUserPresetsCO: {},
hiddenRectifyUserCO: {
hiddenSchemeCO: {},
},
hiddenConfirmUserCO: {},
hiddenAcceptUserCO: {},
hiddenSpecialList: [],
hiddenExtensionList: [],
});
const [hiddenImageFiles, setHiddenImageFiles] = useState([]);
const [hiddenVideoFiles, setHiddenVideoFiles] = useState([]);
const [afterRectificationImageFiles, setAfterRectificationImageFiles] = useState([]);
const [rectificationPlanImageFiles, setRectificationPlanImageFiles] = useState([]);
const [acceptImageFiles, setAcceptImageFiles] = useState([]);
const { getFile } = useGetFile();
const getData = async () => {
const urlParams = new URLSearchParams(window.location.search);
const queryId = urlParams.get(idKey);
const queryHiddenId = urlParams.get(hiddenIdKey);
request(`/hidden/hidden/${id || queryId}`, "get").then((res) => {
setInfo(res.data);
});
const hiddenImageFiles = await getFile({ eqType: UPLOAD_FILE_TYPE_ENUM["3"], eqForeignKey: hiddenId || queryHiddenId });
setHiddenImageFiles(hiddenImageFiles);
const hiddenVideoFiles = await getFile({ eqType: UPLOAD_FILE_TYPE_ENUM["102"], eqForeignKey: hiddenId || queryHiddenId });
setHiddenVideoFiles(hiddenVideoFiles);
const afterRectificationImageFiles = await getFile({
eqType: UPLOAD_FILE_TYPE_ENUM["4"],
eqForeignKey: hiddenId || queryHiddenId,
});
setAfterRectificationImageFiles(afterRectificationImageFiles);
const rectificationPlanImageFiles = await getFile({
eqType: UPLOAD_FILE_TYPE_ENUM["8"],
eqForeignKey: hiddenId || queryHiddenId,
});
setRectificationPlanImageFiles(rectificationPlanImageFiles);
const acceptImageFiles = await getFile({ eqType: UPLOAD_FILE_TYPE_ENUM["5"], eqForeignKey: hiddenId || queryHiddenId });
setAcceptImageFiles(acceptImageFiles);
};
useEffect(() => {
getData();
}, []);
return (
<div>
{isShowHeaderBack && <HeaderBack title="查看" />}
<div style={{ padding: 20 }}>
<Divider orientation="left">隐患信息</Divider>
<Descriptions
bordered
column={1}
labelStyle={{ width: 200 }}
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 },
{ label: "隐患部位", children: info.hiddenPart },
...(info.source === 2 || info.source === 3
? [
{ label: "风险点(单元)", children: "todo" },
{ label: "辨识部位", children: "todo" },
{ label: "存在风险", children: "todo" },
{ label: "风险分级", children: "todo" },
{ label: "隐患清单", children: "todo" },
]
: []),
{
label: "隐患上报位置(经纬度)",
children: [info.longitude && `经度:${info.longitude}`, info.latitude && `纬度:${info.latitude}`].filter(Boolean).join(" "),
},
{ label: "隐患位置描述", children: info.positionDesc },
{ label: "隐患发现人", children: info.creatorName },
{ label: "隐患发现时间", children: dayjs(info.hiddenFindTime).format("YYYY-MM-DD hh:mm:ss") },
{
label: "整改类型",
children: getLabelName({
list: [{ bianma: "1", name: "立即整改" }, { bianma: "2", name: "延期整改" }],
status: info.rectificationType,
}),
},
{
label: "是否相关方",
children: getLabelName({
list: [{ bianma: "1", name: "是" }, { bianma: "2", name: "否" }],
status: info.isRelated,
}),
},
{ label: "隐患图片", children: <PreviewImg files={hiddenImageFiles} /> },
...(hiddenVideoFiles.length > 0 ? [{ label: "隐患视频", children: <VideoIcon /> }] : []),
]}
/>
{
(info.hiddenUserPresetsCO && Object.keys(info.hiddenUserPresetsCO).length > 0) && (
<>
<Divider orientation="left">整改信息发现人预填</Divider>
<Descriptions
bordered
column={1}
labelStyle={{ width: 200 }}
items={[
{ label: "整改部门", children: info.hiddenUserPresetsCO.deptName },
{ label: "整改人", children: info.hiddenUserPresetsCO.userName },
...(info.rectificationType === 2
? [
{ label: "整改期限", children: dayjs(info.hiddenUserPresetsCO.rectifyDeadline).format("YYYY-MM-DD") },
]
: []),
...(info.rectificationType === 1
? [
{ label: "验收部门", children: info.hiddenUserPresetsCO.deptName },
{ label: "验收人", children: info.hiddenUserPresetsCO.userName },
]
: []),
]}
/>
</>
)
}
{
(info.isConfirm === 1 && info.hiddenConfirmUserCO && Object.keys(info.hiddenConfirmUserCO).length > 0) && (
<>
<Divider orientation="left">隐患确认</Divider>
<Descriptions
bordered
column={1}
labelStyle={{ width: 200 }}
items={[
{ label: "隐患级别", children: info.hiddenConfirmUserCO.hiddenLevelName },
{ label: "隐患确认人", children: info.hiddenConfirmUserCO.userName },
{ label: "隐患确认时间", children: info.hiddenConfirmUserCO.rectificationTime },
{ label: "整改负责人部门", children: info.hiddenConfirmUserCO.rectifyDeptName },
{ label: "整改负责人", children: info.hiddenConfirmUserCO.rectifyUserName },
{ label: "整改完成期限", children: info.hiddenConfirmUserCO.rectificationDeadline },
{ label: "验收部门", children: info.hiddenConfirmUserCO.checkDeptName },
{ label: "验收人", children: info.hiddenConfirmUserCO.checkUserName },
...(info.hiddenConfirmUserCO.repulseCause
? [
{ label: "打回意见", children: info.hiddenConfirmUserCO.repulseCause },
{ label: "打回时间", children: info.hiddenConfirmUserCO.rectificationTime },
]
: []),
]}
/>
</>
)
}
{
info.hiddenExtensionList && info.hiddenExtensionList.length > 0 && (
<>
<Divider orientation="left">延期信息</Divider>
{
info.hiddenExtensionList.map(item => (
<Descriptions
key={item.id}
bordered
column={1}
labelStyle={{ width: 200 }}
items={[
{ label: "申请延期日期", children: item.createTime },
{ label: "延期日期", children: item.delayTime },
{ label: "审核人", children: item.updateName },
...(item.state === 3
? [
{ label: "处置方案", children: item.disposalPlan },
{ label: "处置方案附件", children: <PreviewPdf name={item.disposalPlan || "处置方案附件"} url={item.disposalFile} /> },
]
: []),
{
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>}
</>
),
},
...((item.state === 3 || item.state === 4) ? [{ label: "延期审核时间", children: item.updateTime }] : []),
]}
/>
),
)
}
</>
)
}
{
info.hiddenSpecialList && info.hiddenSpecialList.length > 0 && (
<>
<Divider orientation="left">特殊处置审核信息</Divider>
{
info.hiddenSpecialList.map(item => (
<Descriptions
key={item.id}
bordered
column={1}
labelStyle={{ width: 200 }}
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: <PreviewPdf name={item.disposalPlan || "处置方案附件"} url={item.disposalFile} /> },
{ label: "是否更换整改负责人", children: item.rectifyUserCO && Object.keys(item.rectifyUserCO).length > 0 ? "是" : "否" },
...(
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>}
</>
),
},
]}
/>
),
)
}
</>
)
}
{
(info.hiddenRectifyUserCO && Object.keys(info.hiddenRectifyUserCO).length > 0) && (
<>
<Divider orientation="left">整改信息</Divider>
<Descriptions
bordered
column={1}
labelStyle={{ width: 200 }}
items={[
{ label: "整改部门", children: info.hiddenRectifyUserCO.deptName },
{ label: "整改人", children: info.hiddenRectifyUserCO.userName },
{ label: "整改时间", children: info.hiddenRectifyUserCO.rectificationTime },
{ label: "整改描述", children: info.hiddenRectifyUserCO.descr },
{ label: "投入资金", children: info.hiddenRectifyUserCO.investmentFunds },
{ label: "临时安全措施", children: info.tempSafeMeasure },
{ label: "整改后图片", children: <PreviewImg files={afterRectificationImageFiles} /> },
{ label: "整改方案", children: info.hiddenRectifyUserCO.isRectificationScheme === 0 ? "无" : "有" },
...((info.hiddenRectifyUserCO.isRectificationScheme === 1 && info.hiddenRectifyUserCO.hiddenSchemeCO && Object.keys(info.hiddenRectifyUserCO.hiddenSchemeCO).length > 0)
? [
{ label: "治理标准", children: info.hiddenRectifyUserCO.hiddenSchemeCO.governStanDards },
{ label: "治理方法", children: info.hiddenRectifyUserCO.hiddenSchemeCO.governMethod },
{ label: "经费落实", children: info.hiddenRectifyUserCO.hiddenSchemeCO.expenditure },
{ label: "负责人员", children: info.hiddenRectifyUserCO.hiddenSchemeCO.principal },
{ label: "工时安排", children: info.hiddenRectifyUserCO.hiddenSchemeCO.programming },
{ label: "时限要求", children: info.hiddenRectifyUserCO.hiddenSchemeCO.timeLimitFor },
{ label: "工作要求", children: info.hiddenRectifyUserCO.hiddenSchemeCO.jobRequireMent },
{ label: "其他事项", children: info.hiddenRectifyUserCO.hiddenSchemeCO.otherBusiness },
{ label: "方案图片", children: <PreviewImg files={rectificationPlanImageFiles} /> },
]
: []),
]}
/>
</>
)
}
{
info.isQualified === 1
? (
(info.hiddenAcceptUserCO && Object.keys(info.hiddenAcceptUserCO).length > 0)
? (
<>
<Divider orientation="left">验收信息</Divider>
<Descriptions
bordered
column={1}
labelStyle={{ width: 200 }}
items={[
{ label: "验收部门", children: info.hiddenAcceptUserCO.deptName },
{ label: "验收人", children: info.hiddenAcceptUserCO.userName },
{ label: "验收时间", children: info.hiddenAcceptUserCO.rectificationTime },
{ label: "验收打回意见", children: info.hiddenAcceptUserCO.repulseCause },
{ label: "是否合格", children: "合格" },
{ label: "验收描述", children: info.hiddenAcceptUserCO.descr },
{ label: "验收图片", children: <PreviewImg files={acceptImageFiles} /> },
]}
/>
</>
)
: (
<>
<Divider orientation="left">验收打回信息</Divider>
<Descriptions
bordered
column={1}
labelStyle={{ width: 200 }}
items={[
{ label: "验收部门", children: info.hiddenAcceptUserCO.deptName },
{ label: "验收人", children: info.hiddenAcceptUserCO.userName },
{ label: "验收时间", children: info.hiddenAcceptUserCO.rectificationTime },
{ label: "验收打回意见", children: info.hiddenAcceptUserCO.repulseCause },
]}
/>
</>
)
)
: null
}
<Divider orientation="left">安全环保验收信息</Divider>
<Descriptions
bordered
column={1}
labelStyle={{ width: 200 }}
items={[
{ label: "验收人", children: "todo" },
{ label: "验收时间", children: "todo" },
{ label: "是否合格", children: "todo" },
{ label: "验收描述", children: "todo" },
{ label: "验收图片", children: "todo" },
]}
/>
</div>
</div>
);
}
export default HiddenInfo;