| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- /**
- * 统一业务 code → 中文展示入口。
- * 图表/Tag/列表禁止直接把英文枚举抛给用户;未知 code 显示「未知(code)」。
- */
- export type StatusDictType =
- | 'batchStatus'
- | 'flowStage'
- | 'personnelStatus'
- | 'insuranceMatch'
- | 'alertHandleStatus'
- | 'alertType'
- | 'alertLevel'
- | 'specialBizType'
- const BATCH_STATUS: Record<string, string> = {
- DRAFT: '草稿',
- PENDING_TOWN_APPROVE: '待镇经发初审',
- PENDING_INSURANCE_MATCH: '待居保匹配',
- PENDING_STATUS_MAINTAIN: '待状态维护',
- PENDING_LEADER_APPROVE: '待分管领导审批',
- READY_EXPORT: '可出盘',
- EXPORTED: '已出盘',
- RETURNED: '已回盘',
- ARCHIVED: '已归档',
- REJECTED: '已驳回',
- }
- /** 流程阶段(与业务状态语义分离;EXPORTED 在流程上多为「回盘信息确认」) */
- const FLOW_STAGE: Record<string, string> = {
- STAGE1_PERSONNEL_INPUT: '人员新增录入',
- STAGE2_TOWN_PRECHECK: '镇经发中心初审',
- STAGE3_INSURANCE_MATCH: '居保状态匹配',
- STAGE4_MONTHLY_LIST: '生成月补贴清单',
- STAGE5_LEADER_ONLINE_APPROVE: '分管领导审批',
- STAGE6_COMPARE_FILE: '生成对照文件',
- STAGE7_OFFLINE_SIGN_PAY: '待线下发放',
- STAGE8_RETURN_CONFIRM: '回盘信息确认',
- DRAFT: '人员新增录入',
- PENDING_TOWN_APPROVE: '镇经发中心初审',
- PENDING_INSURANCE_MATCH: '居保状态匹配',
- PENDING_STATUS_MAINTAIN: '比对结果已生成',
- PENDING_LEADER_APPROVE: '分管领导审批',
- READY_EXPORT: '待线下发放',
- EXPORTED: '回盘信息确认',
- RETURNED: '已回盘确认',
- ARCHIVED: '已归档',
- REJECTED: '退回修改',
- }
- const PERSONNEL_STATUS: Record<string, string> = {
- DRAFT: '草稿',
- PENDING_TOWN_APPROVE: '待镇初审',
- PENDING_INSURANCE_MATCH: '待居保匹配',
- NORMAL: '正常在库',
- PAUSED: '暂停',
- STOPPED: '停止',
- FUNERAL: '死亡丧葬',
- ABNORMAL: '异常待处理',
- ARCHIVED: '已归档',
- }
- const INSURANCE_MATCH: Record<string, string> = {
- PENDING: '未匹配',
- SUCCESS: '匹配通过',
- LOSE_ELIGIBILITY: '丧失资格',
- FAIL: '匹配失败',
- MANUAL_PASS: '匹配通过',
- }
- const ALERT_HANDLE: Record<string, string> = {
- PENDING: '待处理',
- PROCESSING: '处理中',
- CLOSED: '已关闭',
- }
- const ALERT_TYPE: Record<string, string> = {
- BANK_CARD_ABNORMAL: '银行卡异常',
- NAME_MISMATCH: '姓名不一致',
- INSURANCE_MATCH_FAIL: '居保匹配失败',
- AMOUNT_ABNORMAL: '金额异常',
- DEATH_STATUS: '死亡停发预警',
- MATERIAL_PENDING: '材料待补',
- RETURN_FAIL: '回盘失败',
- LAND_MATCH_FAIL: '土地匹配不符合',
- 民政死亡比对: '死亡停发预警',
- 回盘发放失败: '回盘失败',
- }
- const ALERT_LEVEL: Record<string, string> = {
- HIGH: '高',
- MEDIUM: '中',
- LOW: '低',
- }
- const SPECIAL_BIZ: Record<string, string> = {
- FUNERAL: '丧葬补贴',
- PAUSE: '暂停发放',
- STOP: '停止发放',
- RESUME: '恢复发放',
- STANDARD_ADJUST: '调标差额补发',
- SUPPLEMENT: '纳入下月补发',
- REFUND: '多发退款',
- HEIR_UPDATE: '继承人信息变更',
- /** 流程留痕 bizType(非特殊业务单,但时间线会展示) */
- INSURANCE_MATCH: '居保匹配',
- PERSONNEL_STATUS: '人员状态变更',
- }
- const DICTS: Record<StatusDictType, Record<string, string>> = {
- batchStatus: BATCH_STATUS,
- flowStage: FLOW_STAGE,
- personnelStatus: PERSONNEL_STATUS,
- insuranceMatch: INSURANCE_MATCH,
- alertHandleStatus: ALERT_HANDLE,
- alertType: ALERT_TYPE,
- alertLevel: ALERT_LEVEL,
- specialBizType: SPECIAL_BIZ,
- }
- /** 是否像未翻译的英文枚举 code */
- function looksLikeCode(s: string) {
- return /^[A-Z][A-Z0-9_]*$/.test(s)
- }
- /** 命中字典或已是中文则返回;未知英文 code 返回 null */
- export function tryLabelOf(dictType: StatusDictType, code?: string | null): string | null {
- if (code == null || code === '') return null
- const raw = String(code).trim()
- const table = DICTS[dictType]
- if (table[raw]) return table[raw]
- const upper = raw.toUpperCase()
- if (table[upper]) return table[upper]
- if (!looksLikeCode(raw)) return raw
- return null
- }
- /**
- * @param dictType 字典册
- * @param code 后端枚举或已是中文的文案
- */
- export function labelOf(dictType: StatusDictType, code?: string | null): string {
- if (code == null || code === '') return ''
- const hit = tryLabelOf(dictType, code)
- if (hit != null) return hit
- const raw = String(code).trim()
- if (import.meta.env.DEV) {
- // eslint-disable-next-line no-console
- console.warn(`[statusLabels] 未知 ${dictType} code:`, raw)
- }
- return `未知(${raw})`
- }
- export function batchStatusLabel(code?: string | null) {
- return labelOf('batchStatus', code)
- }
- export function flowStageLabelOf(code?: string | null) {
- return labelOf('flowStage', code)
- }
- export function personnelStatusLabel(code?: string | null) {
- return labelOf('personnelStatus', code)
- }
|