From 30d891bae3fe679f908f7dc2b3a481ce7246080d Mon Sep 17 00:00:00 2001 From: luotaiqian <1147642922@qq.com> Date: Fri, 24 Jul 2026 17:09:48 +0800 Subject: [PATCH] on-site confirm --- src/enumerate/constant/index.js | 20 +++++++++++++ .../PersonnelInfo/Certificate/index.js | 29 +++++++++++++++++-- 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/src/enumerate/constant/index.js b/src/enumerate/constant/index.js index db488f4..39981e0 100644 --- a/src/enumerate/constant/index.js +++ b/src/enumerate/constant/index.js @@ -137,6 +137,26 @@ export const CERT_TYPE_MAP = { evaluator: "评价师", }; +/** 证书等级选项(按证书类型区分标签,后端枚举 SENIOR/MIDDLE/JUNIOR) */ +export const CERT_LEVEL_OPTIONS_BY_TYPE = { + registered_safety_engineer: [ + { label: "初级", value: "JUNIOR" }, + { label: "中级", value: "MIDDLE" }, + { label: "高级", value: "SENIOR" }, + ], + evaluator: [ + { label: "一级", value: "SENIOR" }, + { label: "二级", value: "MIDDLE" }, + { label: "三级", value: "JUNIOR" }, + ], +}; + +/** 证书等级 value → label 映射(按证书类型区分标签) */ +export const CERT_LEVEL_LABEL_BY_TYPE = { + registered_safety_engineer: { SENIOR: "高级", MIDDLE: "中级", JUNIOR: "初级" }, + evaluator: { SENIOR: "一级", MIDDLE: "二级", JUNIOR: "三级" }, +}; + /** 风险预警中心 — 预警大类映射 */ export const RISK_TYPE_MAP = { 资质预警: { label: "资质预警", color: "error" }, diff --git a/src/pages/Container/EnterpriseInfo/PersonnelInfo/Certificate/index.js b/src/pages/Container/EnterpriseInfo/PersonnelInfo/Certificate/index.js index 587e0c3..b6751ab 100644 --- a/src/pages/Container/EnterpriseInfo/PersonnelInfo/Certificate/index.js +++ b/src/pages/Container/EnterpriseInfo/PersonnelInfo/Certificate/index.js @@ -23,7 +23,12 @@ import { NS_STAFF_CERTIFICATE } from "~/enumerate/namespace"; import CertPreviewImg from "~/components/CertPreviewImg"; import AttachmentUpload from "~/components/AttachmentUpload"; import { dateRangeRule } from "~/utils/validators"; -import { CERT_TYPE_OPTIONS, CERT_TYPE_MAP } from "~/enumerate/constant"; +import { + CERT_TYPE_OPTIONS, + CERT_TYPE_MAP, + CERT_LEVEL_OPTIONS_BY_TYPE, + CERT_LEVEL_LABEL_BY_TYPE, +} from "~/enumerate/constant"; import { QUALIFICATION_INDUSTRY_OPTIONS, QUALIFICATION_INDUSTRY_OPTIONS_MAP } from "~/enumerate/enterpriseOptions"; const { router } = tools; @@ -268,6 +273,8 @@ function CertModal({ const [uploadFileList, setUploadFileList] = useState([]); const [professionalCapabilityOptions, setProfessionalCapabilityOptions] = useState([]); + const certTypeCode = Form.useWatch("certTypeCode", form); + const certLevelOptions = CERT_LEVEL_OPTIONS_BY_TYPE[certTypeCode] || []; const loadProfessionalCapabilities = async (industryCode) => { if (!industryCode) { @@ -468,7 +475,22 @@ function CertModal({ label="证书类型" rules={[{ required: true, message: "请选择证书类型" }]} > - form.setFieldValue("cert_level", undefined)} + /> + + +