样式修改

master
LiuJiaNan 2026-04-08 17:08:06 +08:00
parent bcd0d4a2ee
commit f4c8a67d88
12 changed files with 526 additions and 831 deletions

View File

@ -0,0 +1,60 @@
import { Image } from "antd";
import { getFileUrl } from "zy-react-library/utils";
function DisclaimerSign({
colSpan,
firstColSpan,
lastColSpan,
safetyRemarks,
safetySignPath,
safetySignTime,
AcceptRemarks,
AcceptSignPath,
AcceptSignTime,
}) {
const showFirst = safetyRemarks || safetySignPath || safetySignTime;
const showLast = AcceptRemarks || AcceptSignPath || AcceptSignTime;
return (
<tr>
{
showFirst && (
<td colSpan={(firstColSpan || colSpan) + (!showLast ? (lastColSpan || colSpan) : 0)}>
<div className="flex">
<div>
<span>安全交底人</span>
<span>{safetyRemarks}</span>
</div>
<div className="right">
<div>
{safetySignPath && <Image src={getFileUrl() + safetySignPath} width={50} height={50} />}
</div>
<div>{safetySignTime}</div>
</div>
</div>
</td>
)
}
{
showLast && (
<td colSpan={(lastColSpan || colSpan) + (!showFirst ? (firstColSpan || colSpan) : 0)}>
<div className="flex">
<div>
<span>接受交底人</span>
<span>{AcceptRemarks}</span>
</div>
<div className="right">
<div>
{AcceptSignPath && <Image src={getFileUrl() + AcceptSignPath} width={50} height={50} />}
</div>
<div>{AcceptSignTime}</div>
</div>
</div>
</td>
)
}
</tr>
);
}
export default DisclaimerSign;

View File

@ -0,0 +1,46 @@
import { Image } from "antd";
import { Fragment } from "react";
import { getFileUrl } from "zy-react-library/utils";
function OpinionSign({
title,
colSpan,
remarks,
signPath,
signTime,
}) {
const show = signPath || remarks || signTime;
return (
<Fragment>
{
show && (
<tr>
<td colSpan={colSpan}>
<div className="flex">
<div>
<span>
{title}
</span>
<span>{remarks}</span>
</div>
<div className="right">
<div>
<span>签字</span>
<span>
{signPath && <Image src={getFileUrl() + signPath} width={50} height={50} />}
</span>
<span>{signTime}</span>
</div>
</div>
</div>
</td>
</tr>
)
}
</Fragment>
);
}
export default OpinionSign;

View File

@ -0,0 +1,75 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Image } from "antd";
import { useEffect, useState } from "react";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { getFileUrl } from "zy-react-library/utils";
import { NS_EIGHTWORK } from "~/enumerate/namespace";
function SafetyMeasures(props) {
const query = useGetUrlQuery();
const [safetyMeasures, setSafetyMeasures] = useState([]);
const [otherSafetyMeasures, setOtherSafetyMeasures] = useState([]);
const getData = async () => {
const { data } = await props["eightworkMeasuresLogs"]({ workId: query.workId });
setSafetyMeasures(data.filter(item => item.type === 1));
setOtherSafetyMeasures(data.filter(item => item.type === 2));
};
useEffect(() => {
getData();
}, []);
return (
<tr>
<td colSpan={props.colSpan} style={{ border: "none", padding: 0 }}>
<table>
<tbody>
<tr>
<td className="center title" style={{ width: 80 }}>序号</td>
<td className="center title" style={{ width: "auto" }}>安全措施</td>
<td className="center title" style={{ width: 100 }}>是否涉及</td>
<td className="center title" style={{ width: 100 }}>确认人</td>
</tr>
{safetyMeasures.map((item, index) => (
<tr key={index}>
<td className="center">{index + 1}</td>
<td>{item.content}</td>
<td className="center">符合</td>
<td className="center">
{item.signPath && <Image src={getFileUrl() + item.signPath} width={50} height={50} />}
</td>
</tr>
))}
{
otherSafetyMeasures.length > 0 && (
<tr>
<td className="center">{safetyMeasures.length + 1}</td>
<td colSpan={3}>
{
otherSafetyMeasures.map((item, index) => (
<div key={index} style={{ display: "flex", justifyContent: "space-between" }}>
<div>
<span>其它安全措施</span>
<span>{item.content}</span>
</div>
<div>
<span>编制人</span>
<span>{item.createName}</span>
</div>
</div>
))
}
</td>
</tr>
)
}
</tbody>
</table>
</td>
</tr>
);
}
export default Connect([NS_EIGHTWORK], true)(SafetyMeasures);

View File

@ -7,21 +7,28 @@
th, td { th, td {
border: 1px solid #ddd; border: 1px solid #ddd;
padding: 8px; padding: 8px;
}
&.title{ .title{
font-weight: 600; font-weight: 600;
color: #333; color: #333;
background-color: #f2f2f2; background-color: #f2f2f2;
width: 200px; width: 200px;
} }
&.center { .center {
text-align: center; text-align: center;
} }
&.right { .right {
text-align: right; text-align: right;
} }
.flex {
display: flex;
justify-content: space-between;
align-items: center;
gap: 10px;
} }
} }
} }

View File

@ -6,6 +6,9 @@ import { useReactToPrint } from "react-to-print";
import Page from "zy-react-library/components/Page"; import Page from "zy-react-library/components/Page";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { getFileUrl } from "zy-react-library/utils"; import { getFileUrl } from "zy-react-library/utils";
import DisclaimerSign from "~/components/DisclaimerSign";
import OpinionSign from "~/components/OpinionSign";
import SafetyMeasures from "~/components/SafetyMeasures";
import { NS_EIGHTWORK } from "~/enumerate/namespace"; import { NS_EIGHTWORK } from "~/enumerate/namespace";
import "~/css/index.less"; import "~/css/index.less";
@ -29,15 +32,10 @@ function View(props) {
}); });
const [info, setInfo] = useState({}); const [info, setInfo] = useState({});
const [safetyMeasures, setSafetyMeasures] = useState([]);
const [otherSafetyMeasures, setOtherSafetyMeasures] = useState([]);
const getData = async () => { const getData = async () => {
const { data: basicInfo } = await props["eightworkInfo"]({ id: query.id }); const { data: basicInfo } = await props["eightworkInfo"]({ id: query.id });
setInfo(basicInfo); setInfo(basicInfo);
const { data: measuresLogs } = await props["eightworkMeasuresLogs"]({ workId: query.workId });
setSafetyMeasures(measuresLogs.filter(item => item.type === 1));
setOtherSafetyMeasures(measuresLogs.filter(item => item.type === 2));
}; };
useEffect(() => { useEffect(() => {
@ -157,124 +155,52 @@ function View(props) {
<td className="title">实际作业开始时间</td> <td className="title">实际作业开始时间</td>
<td colSpan={6}>{info?.info?.workStartTime}</td> <td colSpan={6}>{info?.info?.workStartTime}</td>
</tr> </tr>
<tr> <SafetyMeasures colSpan={7} />
<td colSpan={7} style={{ border: "none", padding: 0 }}> <DisclaimerSign
<table> firstColSpan={4}
<tbody> lastColSpan={3}
<tr> safetyRemarks={info?.info?.step_18?.remarks}
<td className="center title" style={{ width: 80 }}>序号</td> safetySignPath={info?.info?.step_18?.signPath}
<td className="center title" style={{ width: "auto" }}>安全措施</td> safetySignTime={info?.info?.step_18?.signTime}
<td className="center title" style={{ width: 100 }}>是否涉及</td> AcceptRemarks={info?.info?.step_19?.remarks}
<td className="center title" style={{ width: 100 }}>确认人</td> AcceptSignPath={info?.info?.step_19?.signPath}
</tr> AcceptSignTime={info?.info?.step_19?.signTime}
{safetyMeasures.map((item, index) => ( />
<tr key={index}> <OpinionSign
<td className="center">{index + 1}</td> title="作业负责人意见"
<td>{item.content}</td> colSpan={7}
<td className="center">符合</td> remarks={info?.info?.step_21?.remarks}
<td className="center"> signPath={info?.info?.step_21?.signPath}
{item.signPath && <Image src={getFileUrl() + item.signPath} width={50} height={50} />} signTime={info?.info?.step_21?.signTime}
</td> />
</tr> <OpinionSign
))} title="所在单位意见"
<tr> colSpan={7}
<td className="center">{safetyMeasures.length + 1}</td> remarks={info?.info?.step_22?.remarks}
<td colSpan={3}> signPath={info?.info?.step_22?.signPath}
{ signTime={info?.info?.step_22?.signTime}
otherSafetyMeasures.map((item, index) => ( />
<div key={index} style={{ display: "flex", justifyContent: "space-between" }}> <OpinionSign
<div> title="审核部门意见"
<span>其它安全措施</span> colSpan={7}
<span>{item.content}</span> remarks={info?.info?.step_23?.remarks}
</div> signPath={info?.info?.step_23?.signPath}
<div> signTime={info?.info?.step_23?.signTime}
<span>编制人</span> />
<span>{item.createName}</span> <OpinionSign
</div> title="审批部门意见"
</div> colSpan={7}
)) remarks={info?.info?.step_24?.remarks}
} signPath={info?.info?.step_24?.signPath}
</td> signTime={info?.info?.step_24?.signTime}
</tr> />
</tbody> <OpinionSign
</table> title="完工验收"
</td> colSpan={7}
</tr> remarks={info?.info?.step_25?.remarks}
<tr> signPath={info?.info?.step_25?.signPath}
<td className="title">安全交底人</td> signTime={info?.info?.step_25?.signTime}
<td className="right" colSpan={3}> />
<div>
{info?.info?.step_18?.signPath
&& <Image src={getFileUrl() + info?.info?.step_18?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_18?.signTime}</div>
<div>{info?.info?.step_18?.remarks}</div>
</td>
<td className="title">接受交底人</td>
<td className="right" colSpan={2}>
<div>
{info?.info?.step_19?.signPath
&& <Image src={getFileUrl() + info?.info?.step_19?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_19?.signTime}</div>
<div>{info?.info?.step_19?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">作业负责人意见</td>
<td className="right" colSpan={6}>
<div>
{info?.info?.step_21?.signPath
&& <Image src={getFileUrl() + info?.info?.step_21?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_21?.signTime}</div>
<div>{info?.info?.step_21?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">所在单位意见</td>
<td className="right" colSpan={6}>
<div>
{info?.info?.step_22?.signPath
&& <Image src={getFileUrl() + info?.info?.step_22?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_22?.signTime}</div>
<div>{info?.info?.step_22?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">审核部门意见</td>
<td className="right" colSpan={6}>
<div>
{info?.info?.step_23?.signPath
&& <Image src={getFileUrl() + info?.info?.step_23?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_23?.signTime}</div>
<div>{info?.info?.step_23?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">审批部门意见</td>
<td className="right" colSpan={6}>
<div>
{info?.info?.step_24?.signPath
&& <Image src={getFileUrl() + info?.info?.step_24?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_24?.signTime}</div>
<div>{info?.info?.step_24?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">完工验收</td>
<td className="right" colSpan={6}>
<div>
{info?.info?.step_25?.signPath
&& <Image src={getFileUrl() + info?.info?.step_25?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_25?.signTime}</div>
<div>{info?.info?.step_25?.remarks}</div>
</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>

View File

@ -30,7 +30,6 @@ function View(props) {
const [info, setInfo] = useState({}); const [info, setInfo] = useState({});
const [safetyMeasures, setSafetyMeasures] = useState([]); const [safetyMeasures, setSafetyMeasures] = useState([]);
const [otherSafetyMeasures, setOtherSafetyMeasures] = useState([]); const [otherSafetyMeasures, setOtherSafetyMeasures] = useState([]);
// const [delayedMonitoringRecord, setDelayedMonitoringRecord] = useState([]);
const [gasMonitoringRecord, setGasMonitoringRecord] = useState([]); const [gasMonitoringRecord, setGasMonitoringRecord] = useState([]);
const getData = async () => { const getData = async () => {
@ -41,7 +40,6 @@ function View(props) {
pageSize: 999, pageSize: 999,
pageIndex: 1, pageIndex: 1,
}); });
// setDelayedMonitoringRecord(supplementaryInfo.filter(item => item.type === "delay"));
setGasMonitoringRecord(supplementaryInfo.filter(item => item.type === "gas")); setGasMonitoringRecord(supplementaryInfo.filter(item => item.type === "gas"));
const { data: measuresLogs } = await props["eightworkMeasuresLogs"]({ workId: query.workId }); const { data: measuresLogs } = await props["eightworkMeasuresLogs"]({ workId: query.workId });
setSafetyMeasures(measuresLogs.filter(item => item.type === 1)); setSafetyMeasures(measuresLogs.filter(item => item.type === 1));

View File

@ -6,6 +6,9 @@ import { useReactToPrint } from "react-to-print";
import Page from "zy-react-library/components/Page"; import Page from "zy-react-library/components/Page";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { getFileUrl } from "zy-react-library/utils"; import { getFileUrl } from "zy-react-library/utils";
import DisclaimerSign from "~/components/DisclaimerSign";
import OpinionSign from "~/components/OpinionSign";
import SafetyMeasures from "~/components/SafetyMeasures";
import { NS_EIGHTWORK } from "~/enumerate/namespace"; import { NS_EIGHTWORK } from "~/enumerate/namespace";
import "~/css/index.less"; import "~/css/index.less";
@ -29,15 +32,10 @@ function View(props) {
}); });
const [info, setInfo] = useState({}); const [info, setInfo] = useState({});
const [safetyMeasures, setSafetyMeasures] = useState([]);
const [otherSafetyMeasures, setOtherSafetyMeasures] = useState([]);
const getData = async () => { const getData = async () => {
const { data: basicInfo } = await props["eightworkInfo"]({ id: query.id }); const { data: basicInfo } = await props["eightworkInfo"]({ id: query.id });
setInfo(basicInfo); setInfo(basicInfo);
const { data: measuresLogs } = await props["eightworkMeasuresLogs"]({ workId: query.workId });
setSafetyMeasures(measuresLogs.filter(item => item.type === 1));
setOtherSafetyMeasures(measuresLogs.filter(item => item.type === 2));
}; };
useEffect(() => { useEffect(() => {
@ -141,124 +139,51 @@ function View(props) {
<td className="title">实际作业开始时间</td> <td className="title">实际作业开始时间</td>
<td colSpan={3}>{info?.info?.workStartTime}</td> <td colSpan={3}>{info?.info?.workStartTime}</td>
</tr> </tr>
<tr> <SafetyMeasures colSpan={4} />
<td colSpan={4} style={{ border: "none", padding: 0 }}> <DisclaimerSign
<table> colSpan={2}
<tbody> safetyRemarks={info?.info?.step_18?.remarks}
<tr> safetySignPath={info?.info?.step_18?.signPath}
<td className="center title" style={{ width: 80 }}>序号</td> safetySignTime={info?.info?.step_18?.signTime}
<td className="center title" style={{ width: "auto" }}>安全措施</td> AcceptRemarks={info?.info?.step_19?.remarks}
<td className="center title" style={{ width: 100 }}>是否涉及</td> AcceptSignPath={info?.info?.step_19?.signPath}
<td className="center title" style={{ width: 100 }}>确认人</td> AcceptSignTime={info?.info?.step_19?.signTime}
</tr> />
{safetyMeasures.map((item, index) => ( <OpinionSign
<tr key={index}> title="作业负责人意见"
<td className="center">{index + 1}</td> colSpan={4}
<td>{item.content}</td> remarks={info?.info?.step_21?.remarks}
<td className="center">符合</td> signPath={info?.info?.step_21?.signPath}
<td className="center"> signTime={info?.info?.step_21?.signTime}
{item.signPath && <Image src={getFileUrl() + item.signPath} width={50} height={50} />} />
</td> <OpinionSign
</tr> title="所在单位意见"
))} colSpan={4}
<tr> remarks={info?.info?.step_22?.remarks}
<td className="center">{safetyMeasures.length + 1}</td> signPath={info?.info?.step_22?.signPath}
<td colSpan={3}> signTime={info?.info?.step_22?.signTime}
{ />
otherSafetyMeasures.map((item, index) => ( <OpinionSign
<div key={index} style={{ display: "flex", justifyContent: "space-between" }}> title="审核部门意见"
<div> colSpan={4}
<span>其它安全措施</span> remarks={info?.info?.step_23?.remarks}
<span>{item.content}</span> signPath={info?.info?.step_23?.signPath}
</div> signTime={info?.info?.step_23?.signTime}
<div> />
<span>编制人</span> <OpinionSign
<span>{item.createName}</span> title="审批部门意见"
</div> colSpan={4}
</div> remarks={info?.info?.step_24?.remarks}
)) signPath={info?.info?.step_24?.signPath}
} signTime={info?.info?.step_24?.signTime}
</td> />
</tr> <OpinionSign
</tbody> title="完工验收"
</table> colSpan={4}
</td> remarks={info?.info?.step_25?.remarks}
</tr> signPath={info?.info?.step_25?.signPath}
<tr> signTime={info?.info?.step_25?.signTime}
<td className="title">安全交底人</td> />
<td className="right">
<div>
{info?.info?.step_18?.signPath
&& <Image src={getFileUrl() + info?.info?.step_18?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_18?.signTime}</div>
<div>{info?.info?.step_18?.remarks}</div>
</td>
<td className="title">接受交底人</td>
<td className="right">
<div>
{info?.info?.step_19?.signPath
&& <Image src={getFileUrl() + info?.info?.step_19?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_19?.signTime}</div>
<div>{info?.info?.step_19?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">作业负责人意见</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_21?.signPath
&& <Image src={getFileUrl() + info?.info?.step_21?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_21?.signTime}</div>
<div>{info?.info?.step_21?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">所在单位意见</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_22?.signPath
&& <Image src={getFileUrl() + info?.info?.step_22?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_22?.signTime}</div>
<div>{info?.info?.step_22?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">审核部门意见</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_23?.signPath
&& <Image src={getFileUrl() + info?.info?.step_23?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_23?.signTime}</div>
<div>{info?.info?.step_23?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">审批部门意见</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_24?.signPath
&& <Image src={getFileUrl() + info?.info?.step_24?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_24?.signTime}</div>
<div>{info?.info?.step_24?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">完工验收</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_25?.signPath
&& <Image src={getFileUrl() + info?.info?.step_25?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_25?.signTime}</div>
<div>{info?.info?.step_25?.remarks}</div>
</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>

View File

@ -6,6 +6,9 @@ import { useReactToPrint } from "react-to-print";
import Page from "zy-react-library/components/Page"; import Page from "zy-react-library/components/Page";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { getFileUrl } from "zy-react-library/utils"; import { getFileUrl } from "zy-react-library/utils";
import DisclaimerSign from "~/components/DisclaimerSign";
import OpinionSign from "~/components/OpinionSign";
import SafetyMeasures from "~/components/SafetyMeasures";
import { NS_EIGHTWORK } from "~/enumerate/namespace"; import { NS_EIGHTWORK } from "~/enumerate/namespace";
import "~/css/index.less"; import "~/css/index.less";
@ -29,15 +32,10 @@ function View(props) {
}); });
const [info, setInfo] = useState({}); const [info, setInfo] = useState({});
const [safetyMeasures, setSafetyMeasures] = useState([]);
const [otherSafetyMeasures, setOtherSafetyMeasures] = useState([]);
const getData = async () => { const getData = async () => {
const { data: basicInfo } = await props["eightworkInfo"]({ id: query.id }); const { data: basicInfo } = await props["eightworkInfo"]({ id: query.id });
setInfo(basicInfo); setInfo(basicInfo);
const { data: measuresLogs } = await props["eightworkMeasuresLogs"]({ workId: query.workId });
setSafetyMeasures(measuresLogs.filter(item => item.type === 1));
setOtherSafetyMeasures(measuresLogs.filter(item => item.type === 2));
}; };
useEffect(() => { useEffect(() => {
@ -141,124 +139,51 @@ function View(props) {
<td className="title">实际作业开始时间</td> <td className="title">实际作业开始时间</td>
<td colSpan={3}>{info?.info?.workStartTime}</td> <td colSpan={3}>{info?.info?.workStartTime}</td>
</tr> </tr>
<tr> <SafetyMeasures colSpan={4} />
<td colSpan={4} style={{ border: "none", padding: 0 }}> <DisclaimerSign
<table> colSpan={2}
<tbody> safetyRemarks={info?.info?.step_18?.remarks}
<tr> safetySignPath={info?.info?.step_18?.signPath}
<td className="center title" style={{ width: 80 }}>序号</td> safetySignTime={info?.info?.step_18?.signTime}
<td className="center title" style={{ width: "auto" }}>安全措施</td> AcceptRemarks={info?.info?.step_19?.remarks}
<td className="center title" style={{ width: 100 }}>是否涉及</td> AcceptSignPath={info?.info?.step_19?.signPath}
<td className="center title" style={{ width: 100 }}>确认人</td> AcceptSignTime={info?.info?.step_19?.signTime}
</tr> />
{safetyMeasures.map((item, index) => ( <OpinionSign
<tr key={index}> title="作业负责人意见"
<td className="center">{index + 1}</td> colSpan={4}
<td>{item.content}</td> remarks={info?.info?.step_21?.remarks}
<td className="center">符合</td> signPath={info?.info?.step_21?.signPath}
<td className="center"> signTime={info?.info?.step_21?.signTime}
{item.signPath && <Image src={getFileUrl() + item.signPath} width={50} height={50} />} />
</td> <OpinionSign
</tr> title="所在单位意见"
))} colSpan={4}
<tr> remarks={info?.info?.step_22?.remarks}
<td className="center">{safetyMeasures.length + 1}</td> signPath={info?.info?.step_22?.signPath}
<td colSpan={3}> signTime={info?.info?.step_22?.signTime}
{ />
otherSafetyMeasures.map((item, index) => ( <OpinionSign
<div key={index} style={{ display: "flex", justifyContent: "space-between" }}> title="审核部门意见"
<div> colSpan={4}
<span>其它安全措施</span> remarks={info?.info?.step_23?.remarks}
<span>{item.content}</span> signPath={info?.info?.step_23?.signPath}
</div> signTime={info?.info?.step_23?.signTime}
<div> />
<span>编制人</span> <OpinionSign
<span>{item.createName}</span> title="审批部门意见"
</div> colSpan={4}
</div> remarks={info?.info?.step_24?.remarks}
)) signPath={info?.info?.step_24?.signPath}
} signTime={info?.info?.step_24?.signTime}
</td> />
</tr> <OpinionSign
</tbody> title="完工验收"
</table> colSpan={4}
</td> remarks={info?.info?.step_25?.remarks}
</tr> signPath={info?.info?.step_25?.signPath}
<tr> signTime={info?.info?.step_25?.signTime}
<td className="title">安全交底人</td> />
<td className="right">
<div>
{info?.info?.step_18?.signPath
&& <Image src={getFileUrl() + info?.info?.step_18?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_18?.signTime}</div>
<div>{info?.info?.step_18?.remarks}</div>
</td>
<td className="title">接受交底人</td>
<td className="right">
<div>
{info?.info?.step_19?.signPath
&& <Image src={getFileUrl() + info?.info?.step_19?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_19?.signTime}</div>
<div>{info?.info?.step_19?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">作业负责人意见</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_21?.signPath
&& <Image src={getFileUrl() + info?.info?.step_21?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_21?.signTime}</div>
<div>{info?.info?.step_21?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">所在单位意见</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_22?.signPath
&& <Image src={getFileUrl() + info?.info?.step_22?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_22?.signTime}</div>
<div>{info?.info?.step_22?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">审核部门意见</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_23?.signPath
&& <Image src={getFileUrl() + info?.info?.step_23?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_23?.signTime}</div>
<div>{info?.info?.step_23?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">审批部门意见</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_24?.signPath
&& <Image src={getFileUrl() + info?.info?.step_24?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_24?.signTime}</div>
<div>{info?.info?.step_24?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">完工验收</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_25?.signPath
&& <Image src={getFileUrl() + info?.info?.step_25?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_25?.signTime}</div>
<div>{info?.info?.step_25?.remarks}</div>
</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>

View File

@ -6,6 +6,9 @@ import { useReactToPrint } from "react-to-print";
import Page from "zy-react-library/components/Page"; import Page from "zy-react-library/components/Page";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { getFileUrl } from "zy-react-library/utils"; import { getFileUrl } from "zy-react-library/utils";
import DisclaimerSign from "~/components/DisclaimerSign";
import OpinionSign from "~/components/OpinionSign";
import SafetyMeasures from "~/components/SafetyMeasures";
import { NS_EIGHTWORK } from "~/enumerate/namespace"; import { NS_EIGHTWORK } from "~/enumerate/namespace";
import "~/css/index.less"; import "~/css/index.less";
@ -29,15 +32,10 @@ function View(props) {
}); });
const [info, setInfo] = useState({}); const [info, setInfo] = useState({});
const [safetyMeasures, setSafetyMeasures] = useState([]);
const [otherSafetyMeasures, setOtherSafetyMeasures] = useState([]);
const getData = async () => { const getData = async () => {
const { data: basicInfo } = await props["eightworkInfo"]({ id: query.id }); const { data: basicInfo } = await props["eightworkInfo"]({ id: query.id });
setInfo(basicInfo); setInfo(basicInfo);
const { data: measuresLogs } = await props["eightworkMeasuresLogs"]({ workId: query.workId });
setSafetyMeasures(measuresLogs.filter(item => item.type === 1));
setOtherSafetyMeasures(measuresLogs.filter(item => item.type === 2));
}; };
useEffect(() => { useEffect(() => {
@ -146,124 +144,51 @@ function View(props) {
<td className="title">实际作业开始时间</td> <td className="title">实际作业开始时间</td>
<td colSpan={3}>{info?.info?.workStartTime}</td> <td colSpan={3}>{info?.info?.workStartTime}</td>
</tr> </tr>
<tr> <SafetyMeasures colSpan={4} />
<td colSpan={4} style={{ border: "none", padding: 0 }}> <DisclaimerSign
<table> colSpan={2}
<tbody> safetyRemarks={info?.info?.step_18?.remarks}
<tr> safetySignPath={info?.info?.step_18?.signPath}
<td className="center title" style={{ width: 80 }}>序号</td> safetySignTime={info?.info?.step_18?.signTime}
<td className="center title" style={{ width: "auto" }}>安全措施</td> AcceptRemarks={info?.info?.step_19?.remarks}
<td className="center title" style={{ width: 100 }}>是否涉及</td> AcceptSignPath={info?.info?.step_19?.signPath}
<td className="center title" style={{ width: 100 }}>确认人</td> AcceptSignTime={info?.info?.step_19?.signTime}
</tr> />
{safetyMeasures.map((item, index) => ( <OpinionSign
<tr key={index}> title="作业负责人意见"
<td className="center">{index + 1}</td> colSpan={4}
<td>{item.content}</td> remarks={info?.info?.step_21?.remarks}
<td className="center">符合</td> signPath={info?.info?.step_21?.signPath}
<td className="center"> signTime={info?.info?.step_21?.signTime}
{item.signPath && <Image src={getFileUrl() + item.signPath} width={50} height={50} />} />
</td> <OpinionSign
</tr> title="所在单位意见"
))} colSpan={4}
<tr> remarks={info?.info?.step_22?.remarks}
<td className="center">{safetyMeasures.length + 1}</td> signPath={info?.info?.step_22?.signPath}
<td colSpan={3}> signTime={info?.info?.step_22?.signTime}
{ />
otherSafetyMeasures.map((item, index) => ( <OpinionSign
<div key={index} style={{ display: "flex", justifyContent: "space-between" }}> title="审核部门意见"
<div> colSpan={4}
<span>其它安全措施</span> remarks={info?.info?.step_23?.remarks}
<span>{item.content}</span> signPath={info?.info?.step_23?.signPath}
</div> signTime={info?.info?.step_23?.signTime}
<div> />
<span>编制人</span> <OpinionSign
<span>{item.createName}</span> title="审批部门意见"
</div> colSpan={4}
</div> remarks={info?.info?.step_24?.remarks}
)) signPath={info?.info?.step_24?.signPath}
} signTime={info?.info?.step_24?.signTime}
</td> />
</tr> <OpinionSign
</tbody> title="完工验收"
</table> colSpan={4}
</td> remarks={info?.info?.step_25?.remarks}
</tr> signPath={info?.info?.step_25?.signPath}
<tr> signTime={info?.info?.step_25?.signTime}
<td className="title">安全交底人</td> />
<td className="right">
<div>
{info?.info?.step_18?.signPath
&& <Image src={getFileUrl() + info?.info?.step_18?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_18?.signTime}</div>
<div>{info?.info?.step_18?.remarks}</div>
</td>
<td className="title">接受交底人</td>
<td className="right">
<div>
{info?.info?.step_19?.signPath
&& <Image src={getFileUrl() + info?.info?.step_19?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_19?.signTime}</div>
<div>{info?.info?.step_19?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">作业负责人意见</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_21?.signPath
&& <Image src={getFileUrl() + info?.info?.step_21?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_21?.signTime}</div>
<div>{info?.info?.step_21?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">所在单位意见</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_22?.signPath
&& <Image src={getFileUrl() + info?.info?.step_22?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_22?.signTime}</div>
<div>{info?.info?.step_22?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">审核部门意见</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_23?.signPath
&& <Image src={getFileUrl() + info?.info?.step_23?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_23?.signTime}</div>
<div>{info?.info?.step_23?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">审批部门意见</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_24?.signPath
&& <Image src={getFileUrl() + info?.info?.step_24?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_24?.signTime}</div>
<div>{info?.info?.step_24?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">完工验收</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_25?.signPath
&& <Image src={getFileUrl() + info?.info?.step_25?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_25?.signTime}</div>
<div>{info?.info?.step_25?.remarks}</div>
</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>

View File

@ -6,6 +6,9 @@ import { useReactToPrint } from "react-to-print";
import Page from "zy-react-library/components/Page"; import Page from "zy-react-library/components/Page";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { getFileUrl } from "zy-react-library/utils"; import { getFileUrl } from "zy-react-library/utils";
import DisclaimerSign from "~/components/DisclaimerSign";
import OpinionSign from "~/components/OpinionSign";
import SafetyMeasures from "~/components/SafetyMeasures";
import { NS_EIGHTWORK } from "~/enumerate/namespace"; import { NS_EIGHTWORK } from "~/enumerate/namespace";
import "~/css/index.less"; import "~/css/index.less";
@ -29,15 +32,10 @@ function View(props) {
}); });
const [info, setInfo] = useState({}); const [info, setInfo] = useState({});
const [safetyMeasures, setSafetyMeasures] = useState([]);
const [otherSafetyMeasures, setOtherSafetyMeasures] = useState([]);
const getData = async () => { const getData = async () => {
const { data: basicInfo } = await props["eightworkInfo"]({ id: query.id }); const { data: basicInfo } = await props["eightworkInfo"]({ id: query.id });
setInfo(basicInfo); setInfo(basicInfo);
const { data: measuresLogs } = await props["eightworkMeasuresLogs"]({ workId: query.workId });
setSafetyMeasures(measuresLogs.filter(item => item.type === 1));
setOtherSafetyMeasures(measuresLogs.filter(item => item.type === 2));
}; };
useEffect(() => { useEffect(() => {
@ -138,124 +136,51 @@ function View(props) {
<td className="title">作业实施时间</td> <td className="title">作业实施时间</td>
<td colSpan={3}>{`${info?.info?.workStartTime}${info?.info?.workEndTime}`}</td> <td colSpan={3}>{`${info?.info?.workStartTime}${info?.info?.workEndTime}`}</td>
</tr> </tr>
<tr> <SafetyMeasures colSpan={4} />
<td colSpan={4} style={{ border: "none", padding: 0 }}> <DisclaimerSign
<table> colSpan={2}
<tbody> safetyRemarks={info?.info?.step_18?.remarks}
<tr> safetySignPath={info?.info?.step_18?.signPath}
<td className="center title" style={{ width: 80 }}>序号</td> safetySignTime={info?.info?.step_18?.signTime}
<td className="center title" style={{ width: "auto" }}>安全措施</td> AcceptRemarks={info?.info?.step_19?.remarks}
<td className="center title" style={{ width: 100 }}>是否涉及</td> AcceptSignPath={info?.info?.step_19?.signPath}
<td className="center title" style={{ width: 100 }}>确认人</td> AcceptSignTime={info?.info?.step_19?.signTime}
</tr> />
{safetyMeasures.map((item, index) => ( <OpinionSign
<tr key={index}> title="作业负责人意见"
<td className="center">{index + 1}</td> colSpan={4}
<td>{item.content}</td> remarks={info?.info?.step_21?.remarks}
<td className="center">符合</td> signPath={info?.info?.step_21?.signPath}
<td className="center"> signTime={info?.info?.step_21?.signTime}
{item.signPath && <Image src={getFileUrl() + item.signPath} width={50} height={50} />} />
</td> <OpinionSign
</tr> title="所在单位意见"
))} colSpan={4}
<tr> remarks={info?.info?.step_22?.remarks}
<td className="center">{safetyMeasures.length + 1}</td> signPath={info?.info?.step_22?.signPath}
<td colSpan={3}> signTime={info?.info?.step_22?.signTime}
{ />
otherSafetyMeasures.map((item, index) => ( <OpinionSign
<div key={index} style={{ display: "flex", justifyContent: "space-between" }}> title="审核部门意见"
<div> colSpan={4}
<span>其它安全措施</span> remarks={info?.info?.step_23?.remarks}
<span>{item.content}</span> signPath={info?.info?.step_23?.signPath}
</div> signTime={info?.info?.step_23?.signTime}
<div> />
<span>编制人</span> <OpinionSign
<span>{item.createName}</span> title="审批部门意见"
</div> colSpan={4}
</div> remarks={info?.info?.step_24?.remarks}
)) signPath={info?.info?.step_24?.signPath}
} signTime={info?.info?.step_24?.signTime}
</td> />
</tr> <OpinionSign
</tbody> title="完工验收"
</table> colSpan={4}
</td> remarks={info?.info?.step_25?.remarks}
</tr> signPath={info?.info?.step_25?.signPath}
<tr> signTime={info?.info?.step_25?.signTime}
<td className="title">安全交底人</td> />
<td className="right">
<div>
{info?.info?.step_18?.signPath
&& <Image src={getFileUrl() + info?.info?.step_18?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_18?.signTime}</div>
<div>{info?.info?.step_18?.remarks}</div>
</td>
<td className="title">接受交底人</td>
<td className="right">
<div>
{info?.info?.step_19?.signPath
&& <Image src={getFileUrl() + info?.info?.step_19?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_19?.signTime}</div>
<div>{info?.info?.step_19?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">作业负责人意见</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_21?.signPath
&& <Image src={getFileUrl() + info?.info?.step_21?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_21?.signTime}</div>
<div>{info?.info?.step_21?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">所在单位意见</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_22?.signPath
&& <Image src={getFileUrl() + info?.info?.step_22?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_22?.signTime}</div>
<div>{info?.info?.step_22?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">审核部门意见</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_23?.signPath
&& <Image src={getFileUrl() + info?.info?.step_23?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_23?.signTime}</div>
<div>{info?.info?.step_23?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">审批部门意见</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_24?.signPath
&& <Image src={getFileUrl() + info?.info?.step_24?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_24?.signTime}</div>
<div>{info?.info?.step_24?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">完工验收</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_25?.signPath
&& <Image src={getFileUrl() + info?.info?.step_25?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_25?.signTime}</div>
<div>{info?.info?.step_25?.remarks}</div>
</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>

View File

@ -6,6 +6,7 @@ import { useReactToPrint } from "react-to-print";
import Page from "zy-react-library/components/Page"; import Page from "zy-react-library/components/Page";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { getFileUrl } from "zy-react-library/utils"; import { getFileUrl } from "zy-react-library/utils";
import SafetyMeasures from "~/components/SafetyMeasures";
import { NS_EIGHTWORK } from "~/enumerate/namespace"; import { NS_EIGHTWORK } from "~/enumerate/namespace";
import "~/css/index.less"; import "~/css/index.less";
@ -29,8 +30,6 @@ function View(props) {
}); });
const [info, setInfo] = useState({}); const [info, setInfo] = useState({});
const [safetyMeasures, setSafetyMeasures] = useState([]);
const [otherSafetyMeasures, setOtherSafetyMeasures] = useState([]);
const [delayedMonitoringRecord, setDelayedMonitoringRecord] = useState([]); const [delayedMonitoringRecord, setDelayedMonitoringRecord] = useState([]);
const [gasMonitoringRecord, setGasMonitoringRecord] = useState([]); const [gasMonitoringRecord, setGasMonitoringRecord] = useState([]);
@ -44,9 +43,6 @@ function View(props) {
}); });
setDelayedMonitoringRecord(supplementaryInfo.filter(item => item.type === "delay")); setDelayedMonitoringRecord(supplementaryInfo.filter(item => item.type === "delay"));
setGasMonitoringRecord(supplementaryInfo.filter(item => item.type === "gas")); setGasMonitoringRecord(supplementaryInfo.filter(item => item.type === "gas"));
const { data: measuresLogs } = await props["eightworkMeasuresLogs"]({ workId: query.workId });
setSafetyMeasures(measuresLogs.filter(item => item.type === 1));
setOtherSafetyMeasures(measuresLogs.filter(item => item.type === 2));
}; };
useEffect(() => { useEffect(() => {
@ -115,13 +111,12 @@ function View(props) {
<td className="title">动火监火人</td> <td className="title">动火监火人</td>
<td colSpan={3}>{info?.info?.workMonitor}</td> <td colSpan={3}>{info?.info?.workMonitor}</td>
</tr> </tr>
{gasMonitoringRecord.length > 0 && (
<tr> <tr>
<td className="title center" colSpan={4}>可燃气体分析运行的生产装置罐区和具有火灾爆炸危险场所</td> <td className="title center" colSpan={4}>可燃气体分析运行的生产装置罐区和具有火灾爆炸危险场所</td>
</tr> </tr>
)}
{ {
gasMonitoringRecord.map(item => ( gasMonitoringRecord.length > 0
? gasMonitoringRecord.map(item => (
<Fragment key={item.id}> <Fragment key={item.id}>
<tr> <tr>
<td className="title">分析时间</td> <td className="title">分析时间</td>
@ -137,53 +132,12 @@ function View(props) {
</tr> </tr>
</Fragment> </Fragment>
)) ))
: <tr><td colSpan={4} className="center">暂无数据</td></tr>
} }
<tr> <tr>
<td className="title center" colSpan={4}>动火要求安全措施安全提示</td> <td className="title center" colSpan={4}>动火要求安全措施安全提示</td>
</tr> </tr>
<tr> <SafetyMeasures colSpan={4} />
<td colSpan={4} style={{ border: "none", padding: 0 }}>
<table>
<tbody>
<tr>
<td className="center title" style={{ width: 80 }}>序号</td>
<td className="center title" style={{ width: "auto" }}>安全措施</td>
<td className="center title" style={{ width: 100 }}>是否涉及</td>
<td className="center title" style={{ width: 100 }}>确认人</td>
</tr>
{safetyMeasures.map((item, index) => (
<tr key={index}>
<td className="center">{index + 1}</td>
<td>{item.content}</td>
<td className="center">符合</td>
<td className="center">
{item.signPath && <Image src={getFileUrl() + item.signPath} width={50} height={50} />}
</td>
</tr>
))}
<tr>
<td className="center">{safetyMeasures.length + 1}</td>
<td colSpan={3}>
{
otherSafetyMeasures.map((item, index) => (
<div key={index} style={{ display: "flex", justifyContent: "space-between" }}>
<div>
<span>其它安全措施</span>
<span>{item.content}</span>
</div>
<div>
<span>编制人</span>
<span>{item.createName}</span>
</div>
</div>
))
}
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr> <tr>
<td className="title">动火单位(部门)负责人意见</td> <td className="title">动火单位(部门)负责人意见</td>
<td className="right"> <td className="right">
@ -256,7 +210,9 @@ function View(props) {
<td className="title center">时间</td> <td className="title center">时间</td>
<td className="title center">签字照片</td> <td className="title center">签字照片</td>
</tr> </tr>
{delayedMonitoringRecord.map((item, index) => ( {
delayedMonitoringRecord.length > 0
? delayedMonitoringRecord.map((item, index) => (
<tr key={index}> <tr key={index}>
<td className="center">{item?.details?.actUserName}</td> <td className="center">{item?.details?.actUserName}</td>
<td className="center">{item?.details?.delayHotTime}</td> <td className="center">{item?.details?.delayHotTime}</td>
@ -265,7 +221,9 @@ function View(props) {
&& <Image src={getFileUrl() + item?.details?.delayHotPhoto} width={50} height={50} />} && <Image src={getFileUrl() + item?.details?.delayHotPhoto} width={50} height={50} />}
</td> </td>
</tr> </tr>
))} ))
: <tr><td colSpan={3} className="center">暂无数据</td></tr>
}
</tbody> </tbody>
</table> </table>
</td> </td>

View File

@ -6,6 +6,9 @@ import { useReactToPrint } from "react-to-print";
import Page from "zy-react-library/components/Page"; import Page from "zy-react-library/components/Page";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import { getFileUrl } from "zy-react-library/utils"; import { getFileUrl } from "zy-react-library/utils";
import DisclaimerSign from "~/components/DisclaimerSign";
import OpinionSign from "~/components/OpinionSign";
import SafetyMeasures from "~/components/SafetyMeasures";
import { NS_EIGHTWORK } from "~/enumerate/namespace"; import { NS_EIGHTWORK } from "~/enumerate/namespace";
import "~/css/index.less"; import "~/css/index.less";
@ -29,15 +32,10 @@ function View(props) {
}); });
const [info, setInfo] = useState({}); const [info, setInfo] = useState({});
const [safetyMeasures, setSafetyMeasures] = useState([]);
const [otherSafetyMeasures, setOtherSafetyMeasures] = useState([]);
const getData = async () => { const getData = async () => {
const { data: basicInfo } = await props["eightworkInfo"]({ id: query.id }); const { data: basicInfo } = await props["eightworkInfo"]({ id: query.id });
setInfo(basicInfo); setInfo(basicInfo);
const { data: measuresLogs } = await props["eightworkMeasuresLogs"]({ workId: query.workId });
setSafetyMeasures(measuresLogs.filter(item => item.type === 1));
setOtherSafetyMeasures(measuresLogs.filter(item => item.type === 2));
}; };
useEffect(() => { useEffect(() => {
@ -150,124 +148,51 @@ function View(props) {
<td className="title">作业实施时间</td> <td className="title">作业实施时间</td>
<td colSpan={3}>{`${info?.info?.workStartTime}${info?.info?.workEndTime}`}</td> <td colSpan={3}>{`${info?.info?.workStartTime}${info?.info?.workEndTime}`}</td>
</tr> </tr>
<tr> <SafetyMeasures colSpan={4} />
<td colSpan={4} style={{ border: "none", padding: 0 }}> <DisclaimerSign
<table> colSpan={2}
<tbody> safetyRemarks={info?.info?.step_18?.remarks}
<tr> safetySignPath={info?.info?.step_18?.signPath}
<td className="center title" style={{ width: 80 }}>序号</td> safetySignTime={info?.info?.step_18?.signTime}
<td className="center title" style={{ width: "auto" }}>安全措施</td> AcceptRemarks={info?.info?.step_19?.remarks}
<td className="center title" style={{ width: 100 }}>是否涉及</td> AcceptSignPath={info?.info?.step_19?.signPath}
<td className="center title" style={{ width: 100 }}>确认人</td> AcceptSignTime={info?.info?.step_19?.signTime}
</tr> />
{safetyMeasures.map((item, index) => ( <OpinionSign
<tr key={index}> title="作业指挥负责人意见"
<td className="center">{index + 1}</td> colSpan={4}
<td>{item.content}</td> remarks={info?.info?.step_21?.remarks}
<td className="center">符合</td> signPath={info?.info?.step_21?.signPath}
<td className="center"> signTime={info?.info?.step_21?.signTime}
{item.signPath && <Image src={getFileUrl() + item.signPath} width={50} height={50} />} />
</td> <OpinionSign
</tr> title="所在单位意见"
))} colSpan={4}
<tr> remarks={info?.info?.step_22?.remarks}
<td className="center">{safetyMeasures.length + 1}</td> signPath={info?.info?.step_22?.signPath}
<td colSpan={3}> signTime={info?.info?.step_22?.signTime}
{ />
otherSafetyMeasures.map((item, index) => ( <OpinionSign
<div key={index} style={{ display: "flex", justifyContent: "space-between" }}> title="审核部门意见"
<div> colSpan={4}
<span>其它安全措施</span> remarks={info?.info?.step_23?.remarks}
<span>{item.content}</span> signPath={info?.info?.step_23?.signPath}
</div> signTime={info?.info?.step_23?.signTime}
<div> />
<span>编制人</span> <OpinionSign
<span>{item.createName}</span> title="审批部门意见"
</div> colSpan={4}
</div> remarks={info?.info?.step_24?.remarks}
)) signPath={info?.info?.step_24?.signPath}
} signTime={info?.info?.step_24?.signTime}
</td> />
</tr> <OpinionSign
</tbody> title="完工验收"
</table> colSpan={4}
</td> remarks={info?.info?.step_25?.remarks}
</tr> signPath={info?.info?.step_25?.signPath}
<tr> signTime={info?.info?.step_25?.signTime}
<td className="title">安全交底人</td> />
<td className="right">
<div>
{info?.info?.step_18?.signPath
&& <Image src={getFileUrl() + info?.info?.step_18?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_18?.signTime}</div>
<div>{info?.info?.step_18?.remarks}</div>
</td>
<td className="title">接受交底人</td>
<td className="right">
<div>
{info?.info?.step_19?.signPath
&& <Image src={getFileUrl() + info?.info?.step_19?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_19?.signTime}</div>
<div>{info?.info?.step_19?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">作业指挥负责人意见</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_21?.signPath
&& <Image src={getFileUrl() + info?.info?.step_21?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_21?.signTime}</div>
<div>{info?.info?.step_21?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">所在单位意见</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_22?.signPath
&& <Image src={getFileUrl() + info?.info?.step_22?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_22?.signTime}</div>
<div>{info?.info?.step_22?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">审核部门意见</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_23?.signPath
&& <Image src={getFileUrl() + info?.info?.step_23?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_23?.signTime}</div>
<div>{info?.info?.step_23?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">审批部门意见</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_24?.signPath
&& <Image src={getFileUrl() + info?.info?.step_24?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_24?.signTime}</div>
<div>{info?.info?.step_24?.remarks}</div>
</td>
</tr>
<tr>
<td className="title">完工验收</td>
<td className="right" colSpan={3}>
<div>
{info?.info?.step_25?.signPath
&& <Image src={getFileUrl() + info?.info?.step_25?.signPath} width={50} height={50} />}
</div>
<div>{info?.info?.step_25?.signTime}</div>
<div>{info?.info?.step_25?.remarks}</div>
</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>