From 64eac8a5445a4cc748a42e73160d63871628e50d Mon Sep 17 00:00:00 2001 From: tangjie <122778500@qq.com> Date: Wed, 12 Aug 2026 11:07:14 +0800 Subject: [PATCH] fix --- src/enumerate/constant/index.js | 164 +++++++++++++----- .../ExpertVerification/index.js | 11 +- .../QualificationReview/QualChange/index.js | 36 +--- .../QualificationReview/QualConfirm/index.js | 75 ++++---- .../QualificationReview/QualReview/index.js | 58 ++----- .../QualReviewForm/ReviewModal.js | 59 +++++-- .../QualificationReview/reviewPageQuery.js | 29 ---- 7 files changed, 222 insertions(+), 210 deletions(-) diff --git a/src/enumerate/constant/index.js b/src/enumerate/constant/index.js index a09ef95..334466b 100644 --- a/src/enumerate/constant/index.js +++ b/src/enumerate/constant/index.js @@ -19,7 +19,7 @@ export const VERIFY_STATUS_MAP = { /** 审核状态 */ export const REVIEW_STATUS_MAP = { - 1: { label: "已审核", color: "success" }, + 1: { label: "审核通过", color: "success" }, 2: { label: "审核中", color: "processing" }, 3: { label: "打回", color: "error" }, }; @@ -39,26 +39,24 @@ export const PUBLICITY_STATUS_MAP = { /** 备案状态(通用,含变更审核中、暂存) */ export const FILING_STATUS_MAP = { - 1: { label: "已备案", color: "success" }, - 2: { label: "审核中", color: "processing" }, - 3: { label: "已打回", color: "error" }, + 1: { label: "确认通过", color: "success" }, + 2: { label: "待确认", color: "processing" }, + 3: { label: "打回", color: "error" }, 4: { label: "变更审核中", color: "processing" }, 5: { label: "暂存", color: "default" }, }; export const FILING_STATUS_MAP_CHANGE = { - 1: { label: "已备案", color: "success" }, - - 3: { label: "已打回", color: "error" }, - 4: { label: "变更审核中", color: "processing" }, + 1: { label: "审核通过", color: "success" }, + 3: { label: "打回", color: "error" }, + 4: { label: "待审核", color: "processing" }, }; -/** 变更状态 */ -export const CHANGE_STATUS_MAP = { - stuck: { label: "停滞中", color: "error" }, - pending: { label: "待审核", color: "warning" }, - approved: { label: "已审核", color: "success" }, -}; +export const CHANGE_STATUS_OPTIONS = [ + { label: "审核通过", value: 1 }, + { label: "打回", value: 3 }, + { label: "待审核", value: 4 }, +]; /** 资质保持监控状态 */ export const QUAL_MONITOR_STATUS_MAP = { @@ -128,14 +126,38 @@ export const QUAL_MONITOR_STATUS_OPTIONS = [ /** 资质保持监控-业务范围专业能力配备标准 */ export const QUAL_MONITOR_STANDARD_ROWS = [ - { scope: "煤炭开采业", standard: "安全、机械、电气、采矿、通风、地质、矿建各 1 名及以上" }, - { scope: "金属、非金属矿及其他矿采选业", standard: "安全、机械、电气、采矿、通风、地质、水工结构各 1 名及以上" }, - { scope: "陆地石油和天然气开采业", standard: "安全、机械、电气、采油、储运各 1 名及以上" }, - { scope: "陆上油气管道运输业", standard: "油气储运 2 名及以上,设备、仪表、电气、防腐、安全各 1 名及以上" }, - { scope: "石油加工业,化学原料、化学品及医药制造业", standard: "化工工艺、化工机械、仪表自动化、电气、安全各 2 名及以上" }, - { scope: "烟花爆竹制造业和仓储业", standard: "火炸药(爆炸技术)、机械、电气、安全各 1 名及以上" }, - { scope: "金属冶炼", standard: "安全、机械、电气、冶金、有色金属各 1 名及以上" }, - { scope: "民用爆炸物品行业", standard: "火炸药(爆炸技术)10 名,机械、电气、安全各 2 名及以上" }, + { + scope: "煤炭开采业", + standard: "安全、机械、电气、采矿、通风、地质、矿建各 1 名及以上", + }, + { + scope: "金属、非金属矿及其他矿采选业", + standard: "安全、机械、电气、采矿、通风、地质、水工结构各 1 名及以上", + }, + { + scope: "陆地石油和天然气开采业", + standard: "安全、机械、电气、采油、储运各 1 名及以上", + }, + { + scope: "陆上油气管道运输业", + standard: "油气储运 2 名及以上,设备、仪表、电气、防腐、安全各 1 名及以上", + }, + { + scope: "石油加工业,化学原料、化学品及医药制造业", + standard: "化工工艺、化工机械、仪表自动化、电气、安全各 2 名及以上", + }, + { + scope: "烟花爆竹制造业和仓储业", + standard: "火炸药(爆炸技术)、机械、电气、安全各 1 名及以上", + }, + { + scope: "金属冶炼", + standard: "安全、机械、电气、冶金、有色金属各 1 名及以上", + }, + { + scope: "民用爆炸物品行业", + standard: "火炸药(爆炸技术)10 名,机械、电气、安全各 2 名及以上", + }, ]; /** 证书类型选项 */ @@ -166,7 +188,11 @@ export const CERT_LEVEL_OPTIONS_BY_TYPE = { /** 证书等级 value → label 映射(按证书类型区分标签) */ export const CERT_LEVEL_LABEL_BY_TYPE = { - registered_safety_engineer: { SENIOR: "高级", MIDDLE: "中级", JUNIOR: "初级" }, + registered_safety_engineer: { + SENIOR: "高级", + MIDDLE: "中级", + JUNIOR: "初级", + }, evaluator: { SENIOR: "一级", MIDDLE: "二级", JUNIOR: "三级" }, }; @@ -440,24 +466,86 @@ export const PROJECT_TYPE_OPTIONS = [ { label: "变更项目", value: "CHANGE" }, ]; -export const PROJECT_TYPE_MAP= PROJECT_TYPE_OPTIONS.reduce((acc, cur) => { +export const PROJECT_TYPE_MAP = PROJECT_TYPE_OPTIONS.reduce((acc, cur) => { acc[cur.value] = cur.label; return acc; }, {}); - export const ROLE_DEFINITIONS = [ - { value: "MARKETING_BUSINESS_REP", name: "市场部业务员", unique: false, summary: "获取项目基础信息,形成风险分析记录;风险通过后签订合同并下达任务通知单。" }, - { value: "TECHNICAL_LEAD", name: "技术负责人", unique: false, summary: "评估人员专业匹配与技术可行性,审核检查表并开展评价报告技术审核。" }, - { value: "PROCESS_CONTROL_LEAD", name: "过程控制负责人", unique: true, summary: "核查利益冲突、资质范围和人员配置,负责受控管理、程序合规审核及归档前校验。" }, - { value: "FINANCE_STAFF", name: "财务人员", unique: false, summary: "核算人工、费用、税金和利润等全成本,评估项目经济性及合同金额合理性。" }, - { value: "EVALUATION_AGENCY_HEAD", name: "评价机构负责人", unique: false, summary: "综合多方意见决定是否承接项目,并在全部审核通过后终审签发评价报告。" }, - { value: "EVALUATION_DEPT_MANAGER", name: "评价部经理", unique: false, summary: "签发项目组任命文件,审核组长资格、行业经验及成员专业配置。" }, - { value: "PROJECT_LEAD", name: "项目负责人(项目组组长)", unique: true, summary: "制定实施计划并组织启动、初勘、检查表、现场勘查、整改复查及报告编制。" }, - { value: "PROJECT_TEAM_MEMBERS", name: "项目组各专业组员", unique: false, summary: "按专业分工开展资料收集、检查表编制、现场检查、危险辨识和评价报告专业内容编写。" }, - { value: "INTERNAL_AUDITOR", name: "内审人", unique: false, summary: "审核报告初稿及修改结果,重点核查依据、危险辨识、单元划分、评价方法和结论。" }, - { value: "REPORT_COMPILER", name: "报告编制人", unique: false, summary: "整合各专业内容形成报告初稿,根据各级审核意见修改并整理全过程档案。" }, - { value: "ARCHIVES_ADMIN", name: "档案管理员", unique: false, summary: "办理档案交接、编号、分类、装订和入库,并按规定开展报告信息公开。" }, + { + value: "MARKETING_BUSINESS_REP", + name: "市场部业务员", + unique: false, + summary: + "获取项目基础信息,形成风险分析记录;风险通过后签订合同并下达任务通知单。", + }, + { + value: "TECHNICAL_LEAD", + name: "技术负责人", + unique: false, + summary: "评估人员专业匹配与技术可行性,审核检查表并开展评价报告技术审核。", + }, + { + value: "PROCESS_CONTROL_LEAD", + name: "过程控制负责人", + unique: true, + summary: + "核查利益冲突、资质范围和人员配置,负责受控管理、程序合规审核及归档前校验。", + }, + { + value: "FINANCE_STAFF", + name: "财务人员", + unique: false, + summary: + "核算人工、费用、税金和利润等全成本,评估项目经济性及合同金额合理性。", + }, + { + value: "EVALUATION_AGENCY_HEAD", + name: "评价机构负责人", + unique: false, + summary: + "综合多方意见决定是否承接项目,并在全部审核通过后终审签发评价报告。", + }, + { + value: "EVALUATION_DEPT_MANAGER", + name: "评价部经理", + unique: false, + summary: "签发项目组任命文件,审核组长资格、行业经验及成员专业配置。", + }, + { + value: "PROJECT_LEAD", + name: "项目负责人(项目组组长)", + unique: true, + summary: + "制定实施计划并组织启动、初勘、检查表、现场勘查、整改复查及报告编制。", + }, + { + value: "PROJECT_TEAM_MEMBERS", + name: "项目组各专业组员", + unique: false, + summary: + "按专业分工开展资料收集、检查表编制、现场检查、危险辨识和评价报告专业内容编写。", + }, + { + value: "INTERNAL_AUDITOR", + name: "内审人", + unique: false, + summary: + "审核报告初稿及修改结果,重点核查依据、危险辨识、单元划分、评价方法和结论。", + }, + { + value: "REPORT_COMPILER", + name: "报告编制人", + unique: false, + summary: + "整合各专业内容形成报告初稿,根据各级审核意见修改并整理全过程档案。", + }, + { + value: "ARCHIVES_ADMIN", + name: "档案管理员", + unique: false, + summary: "办理档案交接、编号、分类、装订和入库,并按规定开展报告信息公开。", + }, ]; export const ROLE_DEFINITIONS_MAP = ROLE_DEFINITIONS.reduce((acc, cur) => { @@ -465,11 +553,9 @@ export const ROLE_DEFINITIONS_MAP = ROLE_DEFINITIONS.reduce((acc, cur) => { return acc; }, {}); - export const NATIONAL_COUNTIES = (() => { const result = []; pcaCode.forEach((province) => { - province.children?.forEach((city) => { city.children?.forEach((county) => { result.push({ @@ -539,5 +625,3 @@ export const PROFESSIONAL_MAJOR_MAP = PROFESSIONAL_MAJOR_OPTIONS.reduce( (acc, cur) => ({ ...acc, [cur.value]: cur.label }), {}, ); - - diff --git a/src/pages/Container/QualificationReview/ExpertVerification/index.js b/src/pages/Container/QualificationReview/ExpertVerification/index.js index 522fd1c..19711e8 100644 --- a/src/pages/Container/QualificationReview/ExpertVerification/index.js +++ b/src/pages/Container/QualificationReview/ExpertVerification/index.js @@ -15,7 +15,6 @@ import { REVIEW_BUSINESS_SCOPE_OPTIONS, REVIEW_STATUS_CLASS, REVIEW_UNIT_TYPE_OPTIONS, - toQualReviewPageQuery, } from "../reviewPageQuery"; import "../QualReview/index.less"; @@ -34,7 +33,7 @@ const ExpertVerification = (props) => { const loadList = () => { queryReviewList({ - ...toQualReviewPageQuery(router.query), + ...router.query, supervision: true, applyTypeCode: 1, }); @@ -173,16 +172,16 @@ const ExpertVerification = (props) => { options={REVIEW_BUSINESS_SCOPE_OPTIONS} /> , - + - 待确认 - 确认通过 - 打回 + 待确认 + 确认通过 + 打回 , ]} diff --git a/src/pages/Container/QualificationReview/QualChange/index.js b/src/pages/Container/QualificationReview/QualChange/index.js index 45a2903..39f405e 100644 --- a/src/pages/Container/QualificationReview/QualChange/index.js +++ b/src/pages/Container/QualificationReview/QualChange/index.js @@ -7,36 +7,15 @@ 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 { FILING_STATUS_MAP_CHANGE, CHANGE_STATUS_OPTIONS } from "~/enumerate/constant"; import { NS_QUAL_REVIEW } from "~/enumerate/namespace"; import { QUALIFICATION_INDUSTRY_OPTIONS_MAP } from "~/enumerate/enterpriseOptions"; -import { REVIEW_BUSINESS_SCOPE_OPTIONS, REVIEW_STATUS_CLASS } from "../reviewPageQuery"; +import { REVIEW_BUSINESS_SCOPE_OPTIONS } from "../reviewPageQuery"; import "../QualReview/index.less"; const { router } = tools; -/** 变更状态筛选(原型:停滞中/待审核/已审核;对应备案状态码 3 已打回/4 变更审核中/1 已备案) */ -const CHANGE_STATUS_OPTIONS = [ - { label: "待审核", value: 4 }, - { label: "停滞中", value: 3 }, - { label: "已审核", value: 1 }, -]; -/** 变更状态配色(对齐原型 tag-warning/danger/success) */ -function changeStatusColor(name) { - if (/待审核|审核中|变更审核中/.test(name || "")) return "warning"; - if (/已打回|停滞|退回/.test(name || "")) return "error"; - if (/已审核|已备案|通过/.test(name || "")) return "success"; - return "default"; -} - -/** - * 备案变更管理(原型 mod-qual-change) - * - 搜索:机构名称 / 备案编号 / 安全评价业务范围 / 变更状态 - * - 列:复选框、序号、机构名称、机构类型、备案编号、业务范围、变更项、变更状态、操作(查看 / 审核) - * - 查看/审核与资质初审备案一致:查看 → FilingDetail?mode=change,审核 → QualReviewForm?mode=change - * - 变更项:后端列表 CO 未聚合(明细在 qual_filing_change_detail.change_item_name),真实接口暂显示 "-" - * - Mock 演示默认开启:所有行展示 查看 + 审核 按钮 - */ const QualChange = (props) => { const [form] = Form.useForm(); const { qualReview, queryQualChangePage } = props; @@ -105,14 +84,9 @@ const QualChange = (props) => { title: "变更状态", dataIndex: "filingStatusCode", width: 110, - render: (_, record) => { - const name = record.filingStatusName || record.statusName; - const color = changeStatusColor(name); - return name ? ( - {name} - ) : ( - "--" - ); + render: (code) => { + const config = FILING_STATUS_MAP_CHANGE[code]; + return config ? {config.label} : "--"; }, }, { diff --git a/src/pages/Container/QualificationReview/QualConfirm/index.js b/src/pages/Container/QualificationReview/QualConfirm/index.js index 4edfe2e..4092e39 100644 --- a/src/pages/Container/QualificationReview/QualConfirm/index.js +++ b/src/pages/Container/QualificationReview/QualConfirm/index.js @@ -8,34 +8,25 @@ 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 { VERIFY_STATUS_MAP } from "~/enumerate/constant"; +import { VERIFY_STATUS_MAP, FILING_STATUS_MAP } from "~/enumerate/constant"; import { QUALIFICATION_INDUSTRY_OPTIONS_MAP } from "~/enumerate/enterpriseOptions"; import { - FILING_CODE_TO_CONFIRM, REVIEW_BUSINESS_SCOPE_OPTIONS, - REVIEW_STATUS_CLASS, REVIEW_UNIT_TYPE_OPTIONS, - toQualReviewPageQuery, } from "../reviewPageQuery"; import "../QualReview/index.less"; const { router } = tools; -/** - * 资质备案确认(原型 mod-qual-confirm) - * - 搜索:机构名称 / 机构类型 / 业务范围 / 确认状态 - * - 列表:复选框、序号、机构名称、机构类型、证书编号、业务范围、确认状态、操作(查看 / 确认) - * - 查看复用 FilingDetail(六项备案内容);确认进入 QualConfirmForm(复用 FilingTabs) - * - Mock 演示默认开启:所有行展示 查看 + 确认 按钮,便于与原型对比 - */ const QualConfirm = (props) => { const [form] = Form.useForm(); const { qualReview, queryReviewList } = props; - const { qualReviewList, qualReviewTotal, qualReviewLoading } = qualReview || {}; + const { qualReviewList, qualReviewTotal, qualReviewLoading } = + qualReview || {}; const loadList = () => { queryReviewList({ - ...toQualReviewPageQuery(router.query), + ...router.query, supervision: true, applyTypeCode: 3, }); @@ -60,29 +51,6 @@ const QualConfirm = (props) => { loadList(); }, []); - const renderConfirmStatus = (record) => { - const name = record.filingStatusName || record.statusName; - if (name) { - const color = /待确认|待核验/.test(name) - ? "warning" - : /确认通过|已审核|通过/.test(name) - ? "success" - : /打回|退回/.test(name) - ? "error" - : "default"; - return {name}; - } - const status = FILING_CODE_TO_CONFIRM[Number(record.filingStatusCode)]; - const config = VERIFY_STATUS_MAP[status]; - return config ? ( - - {config.label} - - ) : ( - "--" - ); - }; - const columns = [ { title: "序号", @@ -90,7 +58,12 @@ const QualConfirm = (props) => { fixed: "left", render: (_, __, index) => index + 1, }, - { title: "机构名称", dataIndex: "filingUnitName", width: 220, ellipsis: true }, + { + title: "机构名称", + dataIndex: "filingUnitName", + width: 220, + ellipsis: true, + }, { title: "机构类型", dataIndex: "filingUnitTypeName", width: 100 }, { title: "证书编号", dataIndex: "filingNo", width: 140, ellipsis: true }, { @@ -111,7 +84,10 @@ const QualConfirm = (props) => { title: "确认状态", dataIndex: "filingStatusCode", width: 100, - render: (_, record) => renderConfirmStatus(record), + render: (status) => { + const config = FILING_STATUS_MAP[status]; + return config ? {config.label} : "--"; + }, }, { title: "操作", @@ -131,7 +107,9 @@ const QualConfirm = (props) => { @@ -150,7 +128,11 @@ const QualConfirm = (props) => { loading={qualReviewLoading} formLine={[ - + , { options={REVIEW_BUSINESS_SCOPE_OPTIONS} /> , - + - 待确认 - 确认通过 - 打回 + 确认通过 + 待确认 + 打回 , ]} @@ -233,4 +215,7 @@ const QualConfirm = (props) => { ); }; -export default Connect([NS_QUAL_REVIEW], true)(AntdTableFuncControl(QualConfirm)); +export default Connect( + [NS_QUAL_REVIEW], + true, +)(AntdTableFuncControl(QualConfirm)); diff --git a/src/pages/Container/QualificationReview/QualReview/index.js b/src/pages/Container/QualificationReview/QualReview/index.js index 0c9acba..3b1e6a3 100644 --- a/src/pages/Container/QualificationReview/QualReview/index.js +++ b/src/pages/Container/QualificationReview/QualReview/index.js @@ -9,24 +9,17 @@ 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 { EXPERT_STATUS_MAP } from "~/enumerate/constant"; +import { EXPERT_STATUS_MAP, REVIEW_STATUS_MAP } from "~/enumerate/constant"; import { REVIEW_BUSINESS_SCOPE_OPTIONS, - REVIEW_LIST_STATUS_MAP, REVIEW_STATUS_CLASS, REVIEW_UNIT_TYPE_OPTIONS, - toQualReviewPageQuery, } from "../reviewPageQuery"; import "./index.less"; const { router } = tools; -/** - * 资质备案初审(原型 mod-qual-review) - * - 搜索区:机构名称 / 机构类型 / 安全评价业务范围 / 是否专家核验 / 审核状态 - * - 表格列:复选框、序号、机构名称、机构类型、证书编号、业务范围、专家核验、审核状态、操作 - * - 操作:查看(详情)、审核(非已审核状态) - */ + const QualReview = (props) => { const [form] = Form.useForm(); const { qualReview, queryReviewList } = props; @@ -37,7 +30,7 @@ const QualReview = (props) => { */ const loadList = () => { queryReviewList({ - ...toQualReviewPageQuery(router.query), + ...router.query, supervision: true, applyTypeCode: 1, }); @@ -62,38 +55,11 @@ const QualReview = (props) => { loadList(); }, []); - /** 审核状态渲染:优先后端文案,缺失时按状态编码推断 */ - const renderStatus = (record) => { - const name = record.filingStatusName || record.statusName; - if (name) { - const code = Number(record.filingStatusCode); - const fallback = REVIEW_LIST_STATUS_MAP[code] || {}; - const color = /待审核|待核验/.test(name) - ? "warning" - : /审核中/.test(name) - ? "processing" - : /打回|退回/.test(name) - ? "error" - : /已审核|通过|已备案/.test(name) - ? "success" - : fallback.color || "default"; - return ( - {name} - ); - } - const config = REVIEW_LIST_STATUS_MAP[Number(record.filingStatusCode)]; - return config ? ( - - {config.label} - - ) : ( - "--" - ); - }; + const renderExpertStatus = (record) => { if (!record.needExpertCheck) { - return ; + return "-"; } const config = EXPERT_STATUS_MAP[record.expertStatus]; return config ? ( @@ -101,7 +67,7 @@ const QualReview = (props) => { {config.label} ) : ( - "--" + "-" ); }; @@ -139,7 +105,10 @@ const QualReview = (props) => { title: "审核状态", dataIndex: "filingStatusCode", width: 100, - render: (_, record) => renderStatus(record), + render: (_, {filingStatusCode}) => { + const config = REVIEW_STATUS_MAP[filingStatusCode]; + return config ? {config.label} : '--'; + }, }, { title: "操作", @@ -154,7 +123,6 @@ const QualReview = (props) => { > 查看 - {/* 仅已审核状态不可审核 */} {Number(record.filingStatusCode) !== 1 && ( - } @@ -130,7 +138,13 @@ const ReviewModal = (props) => { marginBottom: "1rem", }} > -
+
📊 评价分析
{ >
已核验材料
-
+
{totalChecked}
符合
-
+
{legalPassCount}
不符合
-
+
{legalFailCount}
风险提醒
-
+
{legalWarnCount}
-
+ { name="reviewOpinion" rules={[{ required: true, message: "请输入综合审核意见" }]} > -