新增hiddenInfo,待完善
parent
c69c5b943d
commit
9a52361c70
|
|
@ -0,0 +1,24 @@
|
|||
import type { FC } from "react";
|
||||
|
||||
/**
|
||||
* 组件属性
|
||||
*/
|
||||
export interface HiddenInfoProps {
|
||||
/** id,默认取 query.id */
|
||||
id?: string;
|
||||
/** id 的字段,默认 id */
|
||||
idKey?: string;
|
||||
/** hiddenId,默认取 query.hiddenId */
|
||||
hiddenId?: string;
|
||||
/** hiddenId 的字段,默认 hiddenId */
|
||||
hiddenIdKey?: string;
|
||||
/** 是否显示头部的返回,默认 true */
|
||||
isShowHeaderBack?: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
* 隐患查看组件(港务局版本)
|
||||
*/
|
||||
declare const HiddenInfo: FC<HiddenInfoProps>;
|
||||
|
||||
export default HiddenInfo;
|
||||
|
|
@ -0,0 +1,363 @@
|
|||
import { tools } from "@cqsjjb/jjb-common-lib";
|
||||
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";
|
||||
|
||||
const { query } = tools.router;
|
||||
|
||||
/**
|
||||
* 隐患查看组件(港务局版本)
|
||||
*/
|
||||
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 () => {
|
||||
request(`/hidden/hidden/${id || query[idKey]}`, "get").then((res) => {
|
||||
setInfo(res.data);
|
||||
});
|
||||
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);
|
||||
const afterRectificationImageFiles = await getFile({
|
||||
eqType: UPLOAD_FILE_TYPE_ENUM["4"],
|
||||
eqForeignKey: hiddenId || query[hiddenIdKey],
|
||||
});
|
||||
setAfterRectificationImageFiles(afterRectificationImageFiles);
|
||||
const rectificationPlanImageFiles = await getFile({
|
||||
eqType: UPLOAD_FILE_TYPE_ENUM["8"],
|
||||
eqForeignKey: hiddenId || query[hiddenIdKey],
|
||||
});
|
||||
setRectificationPlanImageFiles(rectificationPlanImageFiles);
|
||||
const acceptImageFiles = await getFile({ eqType: UPLOAD_FILE_TYPE_ENUM["5"], eqForeignKey: hiddenId || query[hiddenIdKey] });
|
||||
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;
|
||||
|
|
@ -20,7 +20,7 @@ export interface UploadProps extends Omit<AntUploadProps, "fileList"> {
|
|||
/** 要上传的文件类型,默认为 image */
|
||||
fileType?: "image" | "video" | "document";
|
||||
/** 获取上传过服务器删除的附件 */
|
||||
onGetRemoveFile?: (file: UploadFile) => void;
|
||||
onGetRemoveFile?: (file: Omit<UploadFile, "originFileObj">) => void;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -0,0 +1,30 @@
|
|||
// 隐患来源
|
||||
export const HIDDEN_SOURCE_ENUM = [
|
||||
{ bianma: "1", name: "隐患快报" },
|
||||
{ bianma: "2", name: "清单排查" },
|
||||
{ bianma: "3", name: "清单排查" },
|
||||
{ bianma: "4", name: "安全环保检查(监管端)" },
|
||||
{ bianma: "5", name: "安全环保检查(企业端)" },
|
||||
{ bianma: "6", name: "消防检查" },
|
||||
];
|
||||
|
||||
// 隐患状态
|
||||
export const HIDDEN_STATE_ENUM = [
|
||||
{ bianma: "100", name: "待确认" },
|
||||
{ bianma: "200", name: "待整改" },
|
||||
{ bianma: "201", name: "确认打回" },
|
||||
{ bianma: "300", name: "待验收" },
|
||||
{ bianma: "301", name: "已验收" },
|
||||
{ bianma: "302", name: "验收打回" },
|
||||
{ bianma: "400", name: "归档" },
|
||||
{ bianma: "99", name: "用户暂存" },
|
||||
{ bianma: "98", name: "安全环保检查/清单排查暂存" },
|
||||
{ bianma: "97", name: "已过期" },
|
||||
{ bianma: "101", name: "忽略隐患" },
|
||||
];
|
||||
|
||||
// 隐患整改类型
|
||||
export const HIDDEN_RECTIFICATION_TYPE_ENUM = [
|
||||
{ bianma: 1, name: "立即整改" },
|
||||
{ bianma: 2, name: "延期整改" },
|
||||
];
|
||||
Loading…
Reference in New Issue