import { request } from "@cqsjjb/jjb-common-lib/http";
import { Button, Descriptions, Divider, Space, Spin } from "antd";
import dayjs from "dayjs";
import { useEffect, useState } from "react";
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";
/**
* 隐患查看组件(港务局版本)
*/
function HiddenInfo(props) {
const {
id = "",
idKey = "id",
hiddenId = "",
hiddenIdKey = "hiddenId",
isShowHeaderBack = true,
onGetData,
} = props;
const [info, setInfo] = useState({
hiddenUserPresetsCO: {},
hiddenRectifyUserCO: {},
hiddenConfirmUserCO: {},
hiddenAcceptUserCO: {},
hiddenInspecCO: {},
hiddenSpecialList: [],
hiddenExtensionList: [],
});
const [hiddenImageFiles, setHiddenImageFiles] = useState([]);
const [hiddenVideoFiles, setHiddenVideoFiles] = useState([]);
const [afterRectificationImageFiles, setAfterRectificationImageFiles] = useState([]);
const [rectificationPlanImageFiles, setRectificationPlanImageFiles] = useState([]);
const [acceptImageFiles, setAcceptImageFiles] = useState([]);
const [inspectionAcceptImageFiles, setInspectionAcceptImageFiles] = useState([]);
const [loading, setLoading] = useState(true);
const { getFile } = useGetFile();
const query = useGetUrlQuery();
const { loading: downloadFileLoading, downloadFile } = useDownloadFile();
const getFileData = async (info) => {
const hiddenImageFiles = await getFile({ eqType: UPLOAD_FILE_TYPE_ENUM["3"], eqForeignKey: hiddenId || query[hiddenIdKey] });
setHiddenImageFiles(hiddenImageFiles);
const hiddenVideoFiles = await getFile({ eqType: UPLOAD_FILE_TYPE_ENUM["102"], eqForeignKey: hiddenId || query[hiddenIdKey] });
setHiddenVideoFiles(hiddenVideoFiles);
if (info.hiddenRectifyUserCO && Object.keys(info.hiddenRectifyUserCO).length > 0) {
const afterRectificationImageFiles = await getFile({
eqType: UPLOAD_FILE_TYPE_ENUM["4"],
eqForeignKey: hiddenId || query[hiddenIdKey],
});
setAfterRectificationImageFiles(afterRectificationImageFiles);
if ((info.hiddenRectifyUserCO.isRectificationScheme === 1 && info.hiddenRectifyUserCO.hiddenSchemeCO && Object.keys(info.hiddenRectifyUserCO.hiddenSchemeCO).length > 0)) {
const rectificationPlanImageFiles = await getFile({
eqType: UPLOAD_FILE_TYPE_ENUM["8"],
eqForeignKey: hiddenId || query[hiddenIdKey],
});
setRectificationPlanImageFiles(rectificationPlanImageFiles);
}
}
if (info.isQualified === 1 && (info.hiddenAcceptUserCO && Object.keys(info.hiddenAcceptUserCO).length > 0)) {
const acceptImageFiles = await getFile({ eqType: UPLOAD_FILE_TYPE_ENUM["5"], eqForeignKey: hiddenId || query[hiddenIdKey] });
setAcceptImageFiles(acceptImageFiles);
}
if (info.hiddenInspecCO && Object.keys(info.hiddenInspecCO).length > 0) {
const inspectionAcceptImageFiles = await getFile({
eqType: UPLOAD_FILE_TYPE_ENUM["146"],
eqForeignKey: hiddenId || query[hiddenIdKey],
});
setInspectionAcceptImageFiles(inspectionAcceptImageFiles);
}
};
const getData = async () => {
request(`/hidden/hidden/${id || query[idKey]}`, "get").then((res) => {
setInfo(res.data);
getFileData(res.data);
setLoading(false);
onGetData?.(res.data);
});
};
useEffect(() => {
getData();
}, [props.id, props.hiddenId]);
return (
{isShowHeaderBack &&
}
隐患信息
0)
? [
{ 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 },
]
: []
),
{
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: },
...(hiddenVideoFiles.length > 0 ? [{ label: "隐患视频", children: }] : []),
]}
/>
{
(info.hiddenUserPresetsCO && Object.keys(info.hiddenUserPresetsCO).length > 0) && (
<>
整改信息(发现人预填)
>
)
}
{
(info.isConfirm === 1 && info.hiddenConfirmUserCO && Object.keys(info.hiddenConfirmUserCO).length > 0) && (
<>
隐患确认
>
)
}
{
info.hiddenExtensionList && info.hiddenExtensionList.length > 0 && (
<>
延期信息
{
info.hiddenExtensionList.map(item => (
: (
{getFileName(item.disposalFile)}
)
),
},
]
: []),
{
label: "延期审核状态",
children: (
<>
{item.state === 1 && 待审核}
{item.state === 2 && 审批中}
{item.state === 3 && 已通过}
{item.state === 4 && 已拒绝}
{item.state === 5 && 已撤回}
>
),
},
...((item.state === 3 || item.state === 4) ? [{ label: "延期审核时间", children: item.updateTime }] : []),
]}
/>
),
)
}
>
)
}
{
info.hiddenSpecialList && info.hiddenSpecialList.length > 0 && (
<>
特殊处置审核信息
{
info.hiddenSpecialList.map(item => (
: (
{getFileName(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 && 待审核}
{item.state === 2 && 审批中}
{item.state === 3 && 已通过}
{item.state === 4 && 已拒绝}
{item.state === 5 && 已撤回}
>
),
},
]}
/>
),
)
}
>
)
}
{
(info.hiddenRectifyUserCO && Object.keys(info.hiddenRectifyUserCO).length > 0) && (
<>
整改信息
},
{ 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: },
]
: []),
]}
/>
>
)
}
{
info.isQualified === 1
? (
(info.hiddenAcceptUserCO && Object.keys(info.hiddenAcceptUserCO).length > 0)
? (
<>
验收信息
},
]}
/>
>
)
: (
<>
验收打回信息
>
)
)
: null
}
{
(info.hiddenInspecCO && Object.keys(info.hiddenInspecCO).length > 0)
? (
<>
安全环保验收信息
},
]}
/>
>
)
: null
}
);
}
export default HiddenInfo;