import React, { useState, useEffect } from "react"; import { Button, Card, Table, Select, Input, Flex, Typography, message, Collapse, } from "antd"; import { CheckCircleFilled } from "@ant-design/icons"; import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { NS_SAFETY_EVAL_BUSINESS } from "~/enumerate/namespace"; import { tools } from "@cqsjjb/jjb-common-lib"; const { TextArea } = Input; const { router } = tools; const ControlContent = ({ readOnly, ...props }) => { const projectId = router.query?.id; const { processControlDetail } = props.safetyEvalBusiness || {}; const { processControl, controllers, reviewItems } = processControlDetail || {}; const [selectPeople, setSelectPeople] = useState(null); // 当前步骤:1-过程控制审核 2-机构负责人签发 const [step, setStep] = useState(1); // 过程控制审核 const [rows, setRows] = useState([]); // 机构负责人签发 const [approvalOpinion, setApprovalOpinion] = useState(""); const fetchDetail = () => { props.evalProcessControlDetail({ projectId }).then((res) => { if (res?.success) { if (res?.data?.signTaskPersonCo) { setSelectPeople({ value: res?.data?.signTaskPersonCo?.signerPersonnelId, label: res?.data?.signTaskPersonCo?.signerName, }); } } }); }; useEffect(() => { if (projectId) { fetchDetail(); } }, [projectId]); useEffect(() => { if (reviewItems) { setRows( reviewItems.map((item) => ({ ...item, _key: item.id || item.reviewDimensionCode, })), ); } if (processControl?.opinionContent) { setApprovalOpinion(processControl.opinionContent); } }, [processControlDetail]); const updateRow = (index, field, value) => { const next = [...rows]; next[index] = { ...next[index], [field]: value }; setRows(next); }; const isDispatched = processControl?.reviewerSignatureTaskStatus !== "non_dispatched"; // 过程控制签字提交(confirm) const handleConfirm = async (resultCode) => { if (!projectId) return; if (!rows.every((r) => r.reviewConclusion)) { message.error("请填写所有核查项的结果"); return; } const payload = { id: processControl?.id, projectId, resultCode, opinionContent: approvalOpinion, reviewItems: rows.map((r) => ({ bizType: "eval_process_control", bizId: processControl?.id, reviewDimensionCode: r.reviewDimensionCode, reviewDimensionName: r.reviewDimensionName, reviewFocus: r.reviewFocus, reviewConclusion: r.reviewConclusion, reviewOpinion: r.reviewOpinion, })), }; const res = await props.evalProcessControlConfirm(payload); if (res?.success !== false) { message.success( resultCode === "passed" ? "已提交通过审核" : "已提交退回修改", ); fetchDetail(); } }; // 下发签字任务(assign) const handleAssign = async () => { if (!projectId) return; const res = await props.evalProcessControlAssign({ projectId, signTaskPersonCmd: { signerPersonnelId: selectPeople?.value, signerName: selectPeople?.label, }, opinionContent: approvalOpinion, }); if (res?.success !== false) { message.success("已下发签字任务"); fetchDetail(); } }; const reviewColumns = [ { title: "程序审核项", dataIndex: "reviewDimensionName", width: 120 }, { title: "核查内容", dataIndex: "reviewFocus", width: 200 }, { title: "结果", dataIndex: "reviewConclusion", width: 150, render: (val, _, idx) => ( ), }, { title: "意见", dataIndex: "reviewOpinion", render: (val, _, idx) => ( updateRow(idx, "reviewOpinion", e.target.value)} /> ), }, ]; const STEP_ITEMS = [ { key: 1, label: "过程控制审核" }, { key: 2, label: "机构负责人签发" }, ]; return (