diff --git a/src/api/qualReview/index.js b/src/api/qualReview/index.js index 62b0249..479b26b 100644 --- a/src/api/qualReview/index.js +++ b/src/api/qualReview/index.js @@ -80,7 +80,12 @@ export const queryQualMonitorCondition = declareRequest( export const queryQualMonitoringPageStatistics = declareRequest( "qualReviewLoading", "Get > /safetyEval/qual-filing/qualificationMonitoringPageStatistics", - "monitorStats: {} | res.data || {}", + 'monitorStats: {} | res.data || {}', +); + +export const queryQualFilingCheckItem = declareRequest( + "qualFilingCheckItemLoading", + "Get > /safetyEval/qual-filing/check-item", ); // ─── 资质现场核查 ─── diff --git a/src/pages/Container/MonitorManage/EvalProjectMonitor/Detail/index.js b/src/pages/Container/MonitorManage/EvalProjectMonitor/Detail/index.js index e2647d9..01a007f 100644 --- a/src/pages/Container/MonitorManage/EvalProjectMonitor/Detail/index.js +++ b/src/pages/Container/MonitorManage/EvalProjectMonitor/Detail/index.js @@ -19,6 +19,7 @@ import { NS_SAFETY_EVAL_BUSINESS } from "~/enumerate/namespace"; import { tools } from "@cqsjjb/jjb-common-lib"; import { EVAL_TYPE_MAP, ROLE_DEFINITIONS_MAP } from "~/enumerate/constant"; import { PROJECT_TYPE_MAP } from "~/enumerate/constant"; +import WpsEditor from "~/pages/Container/WpsEditor"; import "./index.less"; const { router } = tools; @@ -351,6 +352,7 @@ const EvalProjectMonitorDetail = (props) => { evalSurveyList, evalSurveyPage, evalProjectDetail, + queryMyOrCreateDoc, } = props; const { contractLoading, @@ -358,6 +360,7 @@ const EvalProjectMonitorDetail = (props) => { evalSurveyListLoading, evalSurveyPageLoading, evalProjectDetailData, + wpsDoc, } = safetyEvalBusiness || {}; const [contractData, setContractData] = useState(null); @@ -365,6 +368,7 @@ const EvalProjectMonitorDetail = (props) => { const [surveyPersonnel, setSurveyPersonnel] = useState([]); const [surveyAttachments, setSurveyAttachments] = useState({}); const [activeKey, setActiveKey] = useState("BUSINESS_CONTRACT"); + const [wpsVisible, setWpsVisible] = useState(false); const fetchContract = async () => { if (!projectId) return; @@ -403,6 +407,7 @@ const EvalProjectMonitorDetail = (props) => { useEffect(() => { if (projectId) { evalProjectDetail({ id: projectId }); + queryMyOrCreateDoc({ docxUrl: "", projectId }); } fetchContract(); fetchTeam(); @@ -463,7 +468,13 @@ const EvalProjectMonitorDetail = (props) => { {projectInfo} { + if (key === "REPORT_PREPARATION") { + setWpsVisible(true); + return; + } + setActiveKey(key); + }} items={[ { key: "BUSINESS_CONTRACT", @@ -489,8 +500,20 @@ const EvalProjectMonitorDetail = (props) => { /> ), }, + { + key: "REPORT_PREPARATION", + label: renderTabLabel("报告编制", "REPORT_PREPARATION"), + children: null, + }, ]} /> + {wpsVisible && ( + setWpsVisible(false)} + fileId={wpsDoc?.fileId} + readOnly + /> + )} ); }; diff --git a/src/pages/Container/MonitorManage/QualMonitor/index.js b/src/pages/Container/MonitorManage/QualMonitor/index.js index 7965d60..f0af144 100644 --- a/src/pages/Container/MonitorManage/QualMonitor/index.js +++ b/src/pages/Container/MonitorManage/QualMonitor/index.js @@ -14,7 +14,6 @@ import { } from "~/enumerate/enterpriseOptions"; import { QUAL_MONITOR_STATUS_MAP, - QUAL_MONITOR_CONDITION_ITEMS, QUAL_MONITOR_STATUS_OPTIONS, QUAL_MONITOR_STANDARD_ROWS, } from "~/enumerate/constant"; @@ -113,11 +112,12 @@ const QualMonitor = (props) => { const [form] = Form.useForm(); const [detailVisible, setDetailVisible] = useState(false); const [detailRecord, setDetailRecord] = useState(null); + const [checkItems, setCheckItems] = useState([]); const [standardVisible, setStandardVisible] = useState(false); const [data, setData] = useState([]); - const { qualReview, queryQualMonitorPage, queryQualMonitorCondition, queryQualMonitoringPageStatistics } = props; - const { qualMonitorList, qualMonitorTotal, qualReviewLoading, monitorStats = {} } = + const { qualReview, queryQualMonitorPage, queryQualMonitorCondition, queryQualMonitoringPageStatistics, queryQualFilingCheckItem } = props; + const { qualMonitorList, qualMonitorTotal, qualReviewLoading, qualFilingCheckItemLoading, monitorStats = {} } = qualReview || {}; const stats = { @@ -157,21 +157,21 @@ const QualMonitor = (props) => { queryQualMonitoringPageStatistics(); }, []); - const openDetail = (record) => { - setDetailRecord({ - ...record, - conditionDetails: buildConditionDetails(record), - }); + const openDetail = async (record) => { + setDetailRecord(record); setDetailVisible(true); + setCheckItems([]); + const res = await queryQualFilingCheckItem({ id: record.id }); + if (res?.success !== false) { + setCheckItems(res?.data || []); + } }; - const resultTag = (result) => { - if (result === "通过") return 通过; - if (result === "预警" || result === "需核验") - return {result}; - if (result === "不通过" || result === "部分异常") - return {result}; - return {result}; + const resultTag = (status) => { + if (status === "PASS") return 通过; + if (status === "WARN") return 预警; + if (status === "NOT_PASS") return 不通过; + return {status}; }; const columns = [ @@ -423,33 +423,29 @@ const QualMonitor = (props) => { 每项展示监管字段、当前值、结论和来源。 ( {text} ), }, ]} - dataSource={QUAL_MONITOR_CONDITION_ITEMS.map((item) => { - const detail = detailRecord.conditionDetails[item.key]; - return detail - ? { key: item.key, label: item.label, ...detail } - : null; - }).filter(Boolean)} + dataSource={checkItems} /> )} diff --git a/src/pages/Container/WpsEditor/index.js b/src/pages/Container/WpsEditor/index.js index 8661e4c..96a8d65 100644 --- a/src/pages/Container/WpsEditor/index.js +++ b/src/pages/Container/WpsEditor/index.js @@ -21,7 +21,7 @@ import "./index.less"; const { router } = tools; const App = (props) => { - const { onCancel, safetyEvalBusiness } = props; + const { onCancel, safetyEvalBusiness, readOnly } = props; const { createDocLoading } = safetyEvalBusiness; const [expandedMap, setExpandedMap] = useState({}); const [fileId, setFileId] = useState(props.fileId); @@ -90,7 +90,7 @@ const App = (props) => { mount: document.getElementById("app-sbsb"), fileId: fileId, token: sessionStorage.getItem("token"), - + ...(readOnly ? { commonOptions: { isBrowserViewMode: true } } : {}), }); await instance.ready(); sdkRef.current = instance; @@ -116,7 +116,7 @@ const App = (props) => { } extra={ - + {!readOnly && }