diff --git a/components/HiddenInfo/gwj/index.js b/components/HiddenInfo/gwj/index.js
index 2465e33..952b9cf 100644
--- a/components/HiddenInfo/gwj/index.js
+++ b/components/HiddenInfo/gwj/index.js
@@ -1,16 +1,17 @@
import { request } from "@cqsjjb/jjb-common-lib/http";
-import { Descriptions, Divider, Spin } from "antd";
+import { Button, Descriptions, Divider, 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";
-import { UPLOAD_FILE_TYPE_ENUM } from "../../../enum/uploadFile/gwj";
-import useGetFile from "../../../hooks/useGetFile";
-import { getLabelName, getFileName } from "../../../utils";
-import { HIDDEN_SOURCE_ENUM, HIDDEN_STATE_ENUM } from "../../../enum/hidden/gwj";
-import useGetUrlQuery from "../../../hooks/useGetUrlQuery";
/**
* 隐患查看组件(港务局版本)
@@ -43,6 +44,7 @@ function HiddenInfo(props) {
const [loading, setLoading] = useState(true);
const { getFile } = useGetFile();
const query = useGetUrlQuery();
+ const { loading: downloadFileLoading, downloadFile } = useDownloadFile();
const getData = async () => {
request(`/hidden/hidden/${id || query[idKey]}`, "get").then((res) => {
@@ -74,292 +76,306 @@ function HiddenInfo(props) {
return (
{isShowHeaderBack &&
}
-
+
-
隐患信息
-
},
- ...(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 && (
- <>
-
延期信息
+
隐患信息
+
(
- },
- ]
- : []),
- {
- 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 && (
- <>
- 特殊处置审核信息
+ 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") },
{
- info.hiddenSpecialList.map(item => (
- },
- { 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 && 已撤回}
- >
- ),
- },
- ]}
- />
- ),
+ 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 => (
+
+ :
+ ),
+ },
+ ]
+ : []),
+ {
+ 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 => (
+
+ :
+ ),
+ },
+ { 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)
+ ? (
+ <>
+ 验收信息
+ },
+ ]}
+ />
+ >
+ )
+ : (
+ <>
+ 验收打回信息
+
+ >
+ )
)
- }
- >
- )
- }
- {
- (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
- }
- 安全环保验收信息
-
-
+ : null
+ }
+ 安全环保验收信息
+
+
);
diff --git a/components/Pdf/index.d.ts b/components/Pdf/index.d.ts
index 7fb7e98..0d23d75 100644
--- a/components/Pdf/index.d.ts
+++ b/components/Pdf/index.d.ts
@@ -3,6 +3,8 @@ import type { CSSProperties, FC } from "react";
export interface PdfProps {
/** pdf 文件地址 */
file: string;
+ /** pdf 文件名 */
+ name?: string;
/** 是否显示弹窗 */
visible?: boolean;
/** 关闭弹窗的方法 */
diff --git a/components/Pdf/index.js b/components/Pdf/index.js
index 45c309b..f72885c 100644
--- a/components/Pdf/index.js
+++ b/components/Pdf/index.js
@@ -1,6 +1,7 @@
-import { Button, message, Modal, Spin } from "antd";
+import { message, Modal, Spin } from "antd";
import { useState } from "react";
import { Document, Page, pdfjs } from "react-pdf";
+import useDownloadFile from "../../hooks/useDownloadFile";
import { getFileUrl } from "../../utils/index";
/**
@@ -11,6 +12,7 @@ function Pdf(props) {
visible = false,
onCancel,
file,
+ name,
inline = false,
style = {},
} = props;
@@ -70,6 +72,21 @@ function Pdf(props) {
return renderPdfContent();
}
+ const { loading: downloadFileLoading, downloadFile } = useDownloadFile();
+
+ const onDownloadFile = () => {
+ Modal.confirm({
+ title: "提示",
+ content: "确定要下载此文件吗?",
+ onOk: () => {
+ downloadFile({
+ url: fileUrl,
+ name,
+ });
+ },
+ });
+ };
+
// 默认弹窗模式
return (
关闭}
+ cancelText="关闭"
+ okText="下载"
+ onOk={onDownloadFile}
+ loading={downloadFileLoading}
>
{renderPdfContent()}
diff --git a/components/PreviewPdf/index.js b/components/PreviewPdf/index.js
index 0ffee69..085bdd9 100644
--- a/components/PreviewPdf/index.js
+++ b/components/PreviewPdf/index.js
@@ -15,16 +15,19 @@ const PreviewPdf = (props) => {
} = props;
const [visible, setVisible] = useState(false);
- const [src, setSrc] = useState("");
+ const [currentSrc, setCurrentSrc] = useState("");
+ const [currentName, setCurrentName] = useState("");
- const previewPdf = (src) => {
+ const previewPdf = (src, name) => {
setVisible(true);
- setSrc(src);
+ setCurrentSrc(src);
+ setCurrentName(name);
};
const onCancel = () => {
setVisible(false);
- setSrc("");
+ setCurrentSrc("");
+ setCurrentName("");
};
// 单个文件预览模式
@@ -33,13 +36,14 @@ const PreviewPdf = (props) => {
<>
{name}
-
>
@@ -57,7 +61,7 @@ const PreviewPdf = (props) => {
previewPdf(item.filePath || item[urlKey])}
+ onClick={() => previewPdf(item.filePath || item[urlKey], item.name || item.fileName || item[nameKey])}
>
预览
@@ -66,7 +70,8 @@ const PreviewPdf = (props) => {
))}
>