import React, { useEffect, useState } from "react"; import { Button, Form, Select, Table, Tag, Tooltip } from "antd"; import PageLayout from "@cqsjjb/jjb-react-admin-component/PageLayout"; import SearchForm from "~/components/SearchForm"; import TableAction from "@cqsjjb/jjb-react-admin-component/TableAction"; import ControlWrapper from "@cqsjjb/jjb-react-admin-component/ControlWrapper"; import { AntdTableFuncControl } from "@cqsjjb/jjb-common-decorator/antd"; import { tools } from "@cqsjjb/jjb-common-lib"; import { Connect } from "@cqsjjb/jjb-dva-runtime"; import { NS_QUAL_REVIEW } from "~/enumerate/namespace"; import { QUALIFICATION_INDUSTRY_OPTIONS_MAP } from "~/enumerate/enterpriseOptions"; import { REVIEW_BUSINESS_SCOPE_OPTIONS, REVIEW_RESULT_OPTIONS, REVIEW_STATUS_CLASS, REVIEW_UNIT_TYPE_OPTIONS, } from "../reviewPageQuery"; import "../QualReview/index.less"; const { router } = tools; /** * 专家资料核验(原型 mod-qual-expert) * - 搜索:机构名称 / 机构类型 / 业务范围 / 确认状态 * - 操作:查看(复用 FilingDetail)、核验(进入审核表单页 QualReviewForm?mode=expert, * 与原型 openExpertReviewForm() 打开 mod-qual-review-form 一致,页面内「审核操作」打开专家核验弹窗) */ const ExpertVerification = (props) => { const [form] = Form.useForm(); const { qualReview, queryReviewList } = props; const { qualReviewList, qualReviewTotal, qualReviewLoading } = qualReview || {}; const loadList = () => { queryReviewList({ ...router.query, supervision: true, applyTypeCode: 1, }); }; const handleSearch = () => { loadList(); }; const handleReset = (values) => { router.query = { ...router.query, ...values, current: 1, size: 10, }; handleSearch(); }; useEffect(() => { form.setFieldsValue(router.query); loadList(); }, []); // 2026-08-14 修复:确认状态列与搜索列对齐(基于 filingStatusCode:2待确认/1确认通过/3打回) const renderConfirmStatus = (record) => { const status = Number(record.filingStatusCode); const CONF = { 1: { label: "确认通过", color: "success" }, 2: { label: "待确认", color: "warning" }, 3: { label: "打回", color: "error" }, }; const config = CONF[status]; return config ? ( {config.label} ) : ( "--" ); }; // 2026-08-14 调整:专家核验列——优先展示 expert_result(结果),鼠标悬浮 Tooltip 展示 expert_opinion(意见) // 若结果为空但有意见,则展示意见内容。 const renderExpertCheck = (record) => { const item = REVIEW_RESULT_OPTIONS.find((r) => r.value === Number(record.expertResult)); const opinion = record.expertOpinion; // 结果与意见均无 → 显示 "-" if (!item && !opinion) return "-"; const content = item ? ( {item.label} ) : ( 待核验 ); // 有意见时用 Tooltip 悬浮展示完整意见 return opinion ? ( {content} ) : content; }; const columns = [ { title: "序号", width: 60, fixed: "left", render: (_, __, index) => index + 1, }, { title: "机构名称", dataIndex: "filingUnitName", width: 220, ellipsis: true }, { title: "机构类型", dataIndex: "filingUnitTypeName", width: 100 }, { title: "证书编号", dataIndex: "qualCertNo", width: 140, ellipsis: true }, { title: "安全评价业务范围", dataIndex: "businessScope", width: 180, ellipsis: true, render: (_, record) => { if (Array.isArray(record.businessScope)) { return record.businessScope .map((item) => QUALIFICATION_INDUSTRY_OPTIONS_MAP[item] || item) .join("、"); } return record.businessScope || "-"; }, }, // 2026-08-14 调整:专家核验(优先展示 expertResult,悬浮 Tooltip 展示 expertOpinion) { title: "专家核验", dataIndex: "expertResult", width: 120, render: (_, record) => renderExpertCheck(record), }, { title: "确认状态", dataIndex: "filingStatusCode", width: 100, render: (_, record) => renderConfirmStatus(record), }, { title: "操作", width: 140, fixed: "right", render: (_, record) => ( {/* 仅待确认状态可操作 */} {Number(record.filingStatusCode) === 2 && ( )} ), }, ]; return ( , , , 待确认 确认通过 打回 , ]} onReset={handleReset} onFinish={(values) => { router.query = { ...router.query, ...values, current: 1, size: 10, }; handleSearch(); }} />
{qualReviewTotal || 0} 条记录
`共 ${total} 条`, current: router.query.current || 1, pageSize: router.query.size || 10, onChange: (page, pageSize) => { router.query = { ...router.query, current: page, size: pageSize, }; handleSearch(); }, }} /> ); }; export default Connect( [NS_QUAL_REVIEW], true, )(AntdTableFuncControl(ExpertVerification));