safety-eval-service-frontend/src/enumerate/constant/index.js

637 lines
19 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import pcaCode from "china-division/dist/pca-code.json";
/**
* 全局常量定义
*/
/** 证书状态 */
export const CERT_STATUS_MAP = {
normal: { label: "正常", color: "success" },
expiring: { label: "即将到期", color: "warning" },
expired: { label: "已过期", color: "error" },
};
/** 核验状态 */
export const VERIFY_STATUS_MAP = {
pending: { label: "待确认", color: "warning" },
passed: { label: "确认通过", color: "success" },
rejected: { label: "打回", color: "error" },
};
/** 审核状态 */
export const REVIEW_STATUS_MAP = {
1: { label: "审核通过", color: "success" },
2: { label: "审核中", color: "processing" },
3: { label: "打回", color: "error" },
};
/** 专家核验状态 */
export const EXPERT_STATUS_MAP = {
pending: { label: "待核验", color: "blue" },
arranging: { label: "待安排", color: "warning" },
passed: { label: "已核验", color: "success" },
};
/** 公示状态 */
export const PUBLICITY_STATUS_MAP = {
pending: { label: "待公示", color: "warning" },
published: { label: "已公示", color: "success" },
};
/** 备案状态(通用,含变更审核中、暂存) */
export const FILING_STATUS_MAP = {
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" },
};
export const CHANGE_STATUS_OPTIONS = [
{ label: "审核通过", value: 1 },
{ label: "打回", value: 3 },
{ label: "待审核", value: 4 },
];
/** 资质保持监控状态 */
export const QUAL_MONITOR_STATUS_MAP = {
normal: { label: "正常", color: "success" },
person_rate: { label: "人员比例预警", color: "warning" },
};
/** 资质现场核查状态 */
export const ON_SITE_REVIEW_STATUS_MAP = {
AGENCY_PENDING_CONFIRMATION: { label: "机构待确认", color: "processing" },
AGENCY_CONFIRMED: { label: "机构已确认", color: "blue" },
REVIEW_PASSED: { label: "核查通过", color: "success" },
REVIEW_FAILED: { label: "核查不通过", color: "error" },
};
/** 性别 */
export const GENDER_OPTIONS = [
{ label: "男", value: 1 },
{ label: "女", value: 2 },
];
/** 性别编码(1男2女) → 名称 */
export const GENDER_MAP = {
1: "男",
2: "女",
};
/** 审核结果 */
export const REVIEW_RESULT_OPTIONS = [
{ label: "通过", value: 1 },
{ label: "不通过", value: 3 },
];
/** 专家等级 */
export const EXPERT_LEVEL_MAP = {
1: "一级",
2: "二级",
3: "三级",
};
export const LEGAL_STATUS_STYLE = {
PASS: { icon: "✅", borderColor: "#059669", bg: "#f0fdf4" },
WARN: { icon: "⚠️", borderColor: "#d97706", bg: "#fffbeb" },
NOT_PASS: { icon: "❌", borderColor: "#dc2626", bg: "#fef2f2" },
};
/** 资质保持监控-条件检查项模板 */
export const QUAL_MONITOR_CONDITION_ITEMS = [
{ key: "legalPerson", label: "独立法人资格" },
{ key: "fixedAsset", label: "固定资产" },
{ key: "workplace", label: "工作场所" },
{ key: "equipment", label: "设施设备软件" },
{ key: "staffCount", label: "专职技术人员数量" },
{ key: "staffRatio", label: "人员比例" },
{ key: "leader", label: "负责人配备" },
{ key: "system", label: "制度与过程控制体系" },
{ key: "website", label: "承诺书/网站/报告查询" },
{ key: "credit", label: "三年重大违法失信记录" },
{ key: "area", label: "属地满足情况" },
];
/** 资质保持监控-预警状态筛选选项 */
export const QUAL_MONITOR_STATUS_OPTIONS = [
{ value: "normal", label: "正常" },
{ value: "person_rate", label: "人员比例预警" },
];
/** 资质保持监控-业务范围专业能力配备标准 */
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 名及以上",
},
];
/** 证书类型选项 */
export const CERT_TYPE_OPTIONS = [
{ value: "registered_safety_engineer", label: "注册安全工程师" },
{ value: "evaluator", label: "评价师" },
];
/** 证书类型 value → label 映射 */
export const CERT_TYPE_MAP = {
registered_safety_engineer: "注册安全工程师",
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" },
项目预警: { label: "项目预警", color: "warning" },
};
/** 风险预警中心 — 处理阶段映射 */
export const STAGE_MAP = {
未处理: { label: "未处理", color: "error" },
已发机构: { label: "已发机构", color: "warning" },
待复核: { label: "待复核", color: "processing" },
已闭环: { label: "已闭环", color: "success" },
};
/** 风险预警中心 — 机构端状态映射 */
export const ORG_STATUS_MAP = {
未发送: { label: "未发送", color: "error" },
机构未读: { label: "机构未读", color: "warning" },
已提交材料: { label: "已提交材料", color: "processing" },
处理中: { label: "处理中", color: "processing" },
已提交说明: { label: "已提交说明", color: "processing" },
整改完成: { label: "整改完成", color: "success" },
};
/** 风险预警中心 — 预警子类选项 */
export const RISK_SUBTYPE_OPTIONS = [
{ label: "资质条件保持异常", value: "资质条件保持异常" },
{ label: "人员比例异常", value: "人员比例异常" },
{ label: "属地材料待核验", value: "属地材料待核验" },
{ label: "项目启动超期", value: "项目启动超期" },
{ label: "关键节点超期", value: "关键节点超期" },
{ label: "项目人员异常", value: "项目人员异常" },
{ label: "从业告知异常", value: "从业告知异常" },
{ label: "现场勘查异常", value: "现场勘查异常" },
{ label: "过程控制/归档异常", value: "过程控制/归档异常" },
];
export const district = [
{
code: "500101",
name: "万州区",
},
{
code: "500102",
name: "涪陵区",
},
{
code: "500103",
name: "渝中区",
},
{
code: "500104",
name: "大渡口区",
},
{
code: "500105",
name: "江北区",
},
{
code: "500106",
name: "沙坪坝区",
},
{
code: "500107",
name: "九龙坡区",
},
{
code: "500108",
name: "南岸区",
},
{
code: "500109",
name: "北碚区",
},
{
code: "500110",
name: "綦江区",
},
{
code: "500111",
name: "大足区",
},
{
code: "500112",
name: "渝北区",
},
{
code: "500113",
name: "巴南区",
},
{
code: "500114",
name: "黔江区",
},
{
code: "500115",
name: "长寿区",
},
{
code: "500116",
name: "江津区",
},
{
code: "500117",
name: "合川区",
},
{
code: "500118",
name: "永川区",
},
{
code: "500119",
name: "南川区",
},
{
code: "500120",
name: "璧山区",
},
{
code: "500151",
name: "铜梁区",
},
{
code: "500152",
name: "潼南区",
},
{
code: "500153",
name: "荣昌区",
},
{
code: "500154",
name: "开州区",
},
{
code: "500155",
name: "梁平区",
},
{
code: "500156",
name: "武隆区",
},
];
/** 企业状态1正常经营 2停产整改 3停业 4注销 */
export const ENTERPRISE_STATUS_OPTIONS = [
{ label: "正常经营", value: 1 },
{ label: "停产整改", value: 2 },
{ label: "停业", value: 3 },
{ label: "注销", value: 4 },
];
/** 企业规模LARGE 大型 MEDIUM 中型 SMALL 小型 MICRO 微型 */
export const ENTERPRISE_SCALE_OPTIONS = [
{ label: "大型", value: "LARGE" },
{ label: "中型", value: "MEDIUM" },
{ label: "小型", value: "SMALL" },
{ label: "微型", value: "MICRO" },
];
/** 评价类型选项 */
export const EVAL_TYPE_OPTIONS = [
{ label: "安全预评价", value: "PRE" },
{ label: "安全设施竣工验收评价", value: "ACCEPT" },
{ label: "安全现状评价", value: "STATUS" },
];
export const EVAL_TYPE_MAP = EVAL_TYPE_OPTIONS.reduce((acc, cur) => {
acc[cur.value] = cur.label;
return acc;
}, {});
/** 登记半径选项 */
export const CHECKIN_RADIUS_OPTIONS = [
{ label: "100 米", value: 100 },
{ label: "200 米", value: 200 },
{ label: "300 米", value: 300 },
{ label: "500 米", value: 500 },
];
/** 项目规则 — 资料类别枚举 */
export const MATERIAL_TYPE_OPTIONS = [
{ label: "现场踏勘资料", value: "SITE_SURVEY" },
{ label: "报告资料", value: "REPORT" },
{ label: "整改资料", value: "RECTIFICATION" },
{ label: "其他项目资料", value: "OTHER" },
{ label: "归档", value: "ARCHIVED" },
];
export const MATERIAL_TYPE_MAP = MATERIAL_TYPE_OPTIONS.reduce((acc, cur) => {
acc[cur.value] = cur.label;
return acc;
}, {});
/** 机构端-险预警 — 预警类型映射 */
export const ORG_WARNING_TYPE_MAP = {
not_archived: { color: "warning", text: "未归档" },
report_overdue: { color: "error", text: "报告超期" },
CORPORATE_RECTIFICATION: { color: "processing", text: "企业整改" },
MAJOR_HAZARD: { color: "error", text: "重大隐患" },
};
/** 机构端-险预警 — 预警类型筛选选项 */
export const ORG_WARNING_TYPE_OPTIONS = [
{ label: "未归档", value: "not_archived" },
{ label: "报告超期", value: "report_overdue" },
{ label: "企业整改", value: "CORPORATE_RECTIFICATION" },
{ label: "重大隐患", value: "MAJOR_HAZARD" },
];
/** 机构端-险预警 — 处理状态映射 */
export const ORG_WARNING_HANDLE_STATUS_MAP = {
none: { color: "error", text: "未处理" },
done: { color: "success", text: "已处理" },
};
/** 项目进度 — 进度状态映射 */
export const PROGRESS_STATUS_MAP = {
NORMAL: { color: "success", text: "正常" },
NEAR: { color: "warning", text: "项目临期" },
DELAY: { color: "error", text: "项目延期" },
};
/** 安评业务提醒 — 提醒等级映射 */
export const WARING_STATUS_MAP = {
first_waring: { color: "success", text: "首次预警" },
second_waring: { color: "warning", text: "二次预警" },
emergency_waring: { color: "error", text: "紧急预警" },
overdue_warning: { color: "default", text: "逾期预警" },
end_warning: { color: "default", text: "结束预警" },
non_warn: { color: "default", text: "暂时不预警" },
};
/** 安评业务提醒 — 提醒等级筛选选项 */
export const WARING_STATUS_OPTIONS = [
{ label: "暂时不预警", value: "non_warn" },
{ label: "首次预警", value: "first_waring" },
{ label: "二次预警", value: "second_waring" },
{ label: "紧急预警", value: "emergency_waring" },
{ label: "逾期预警", value: "overdue_warning" },
{ label: "结束预警", value: "end_warning" },
];
export const NODE_LABELS = {
RISK_ANALYSIS: "风险分析",
BUSINESS_CONTRACT: "商务合同",
PROJECT_GROUP: "项目组",
SITE_SURVEY: "现场勘查",
REPORT_PREPARATION: "报告编制",
INTERNAL_REVIEW: "内审",
TECHNICAL_REVIEW: "技术审核",
PROCESS_CONTROL: "过程控制",
ARCHIVE: "项目归档",
};
/** 监管端-安评项目实时监控 - 监管状态映射 */
export const MONITOR_WARING_STATUS_MAP = {
normal: { color: "success", text: "正常" },
PERSONNEL_ABNORMAL: { color: "warning", text: "异常" },
};
/** 监管端-安评项目实时监控 - 监管状态筛选选项 */
export const MONITOR_WARING_STATUS_OPTIONS = [
{ label: "正常", value: "normal" },
{ label: "人员异常", value: "PERSONNEL_ABNORMAL" },
];
/** 监管端-项目踏勘监管 - 打卡状态筛选选项 */
export const CLOCK_IN_STATUS_OPTIONS = [
{ label: "正常", value: "normal" },
{ label: "异常", value: "abnormal" },
];
export const PROJECT_TYPE_OPTIONS = [
{ label: "新建项目", value: "NEW" },
{ label: "续评项目", value: "RENEW" },
{ label: "变更项目", value: "CHANGE" },
];
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: "办理档案交接、编号、分类、装订和入库,并按规定开展报告信息公开。",
},
];
export const ROLE_DEFINITIONS_MAP = ROLE_DEFINITIONS.reduce((acc, cur) => {
acc[cur.value] = cur.name;
return acc;
}, {});
export const NATIONAL_COUNTIES = (() => {
const result = [];
pcaCode.forEach((province) => {
province.children?.forEach((city) => {
city.children?.forEach((county) => {
result.push({
label: `${province.name}/${city.name}/${county.name}`,
value: county.code,
name: county.name,
});
});
});
});
return result;
})();
/** 专业能力枚举 */
export const CAPABILITY_OPTIONS = [
{ label: "安全", value: "SAFETY" },
{ label: "机械", value: "MECHANICAL" },
{ label: "电气", value: "ELECTRICAL" },
{ label: "采矿", value: "MINING" },
{ label: "通风", value: "VENTILATION" },
{ label: "矿建", value: "MINE_CONSTRUCTION" },
{ label: "地质", value: "GEOLOGY" },
{ label: "水工结构", value: "HYDRAULIC_STRUCTURE" },
{ label: "采油", value: "OIL_PRODUCTION" },
{ label: "储运", value: "STORAGE_AND_TRANSPORT" },
{ label: "油气储运", value: "OIL_GAS_STORAGE_TRANSPORT" },
{ label: "工艺设备与控制", value: "PROCESS_EQUIPMENT_CONTROL" },
{ label: "自动化(仪表)", value: "AUTOMATION_INSTRUMENT" },
{ label: "防腐", value: "ANTICORROSION" },
{ label: "化工工艺", value: "CHEMICAL_PROCESS" },
{ label: "化工机械", value: "CHEMICAL_MECHANICAL" },
{ label: "自动化", value: "AUTOMATION" },
{ label: "火炸药", value: "EXPLOSIVES" },
{ label: "爆炸技术", value: "EXPLOSION_TECHNOLOGY" },
{ label: "冶金", value: "METALLURGY" },
{ label: "有色金属", value: "NONFERROUS_METAL" },
{ label: "设备", value: "EQUIPMENT" },
{ label: "仪表", value: "INSTRUMENT" },
];
export const CAPABILITY_MAP = CAPABILITY_OPTIONS.reduce((acc, cur) => {
acc[cur.value] = cur.label;
return acc;
}, {});
/** 专业(职称信息) */
export const PROFESSIONAL_MAJOR_OPTIONS = [
{ label: "安全工程", value: "SAFETY_ENGINEERING" },
{ label: "机械工程", value: "MECHANICAL_ENGINEERING" },
{ label: "化工机械", value: "CHEMICAL_MACHINERY" },
{ label: "化学工程", value: "CHEMICAL_ENGINEERING" },
{ label: "自动化/测控技术", value: "AUTOMATION" },
{ label: "电气工程", value: "ELECTRICAL_ENGINEERING" },
{ label: "采矿工程", value: "MINING_ENGINEERING" },
{ label: "通风工程", value: "VENTILATION_ENGINEERING" },
{ label: "地质工程", value: "GEOLOGICAL_ENGINEERING" },
{ label: "矿建工程", value: "MINE_CONSTRUCTION_ENGINEERING" },
{ label: "石油工程", value: "PETROLEUM_ENGINEERING" },
{ label: "油气储运工程", value: "OIL_GAS_STORAGE_TRANSPORT" },
{ label: "腐蚀与防护", value: "CORROSION_PROTECTION" },
{ label: "冶金工程", value: "METALLURGY_ENGINEERING" },
{ label: "有色金属冶金", value: "NONFERROUS_METALLURGY" },
{ label: "火炸药/爆炸技术", value: "EXPLOSIVES" },
{ label: "土木工程", value: "CIVIL_ENGINEERING" },
];
export const PROFESSIONAL_MAJOR_MAP = PROFESSIONAL_MAJOR_OPTIONS.reduce(
(acc, cur) => ({ ...acc, [cur.value]: cur.label }),
{},
);