const auditEventLabels: Record = { TENANT_REGISTER: '客户注册', TENANT_REVIEW: '客户入驻审核', PLATFORM_TENANT_UPDATE: '编辑客户档案', PLATFORM_TENANT_STATUS_CHANGE: '启停客户', PLATFORM_TENANT_SUBMIT_REVIEW: '提交客户审核', TENANT_PROFILE_UPDATE: '编辑企业资料', PLATFORM_CUSTOMER_ARCHIVE: '归档客户', PLATFORM_CUSTOMER_OWNER_PASSWORD_RESET: '重置企业管理员密码', PLATFORM_CUSTOMER_IMPERSONATION_TICKET_CREATE: '创建客户代登录授权', TENANT_ADDRESS_CREATE: '新增客户地址', TENANT_QUALIFICATION_UPLOAD: '上传企业资质', PLATFORM_TENANT_QUALIFICATION_UPLOAD: '平台上传企业资质', TENANT_REQUIRED_QUALIFICATION_PACKAGE_UPLOAD: '上传必填资质包', PLATFORM_REQUIRED_QUALIFICATION_PACKAGE_UPLOAD: '平台上传必填资质包', INBOUND_MEASURE_APPROVE: '入库测量审核通过', INBOUND_MEASURE_REJECT: '驳回入库测量', INBOUND_MEASURE_EXCEPTION_RELEASE: '解除测量异常', INBOUND_CARTON_SCAN: '扫描入库箱码', INBOUND_CARTON_MANUAL_ENTRY: '手工录入箱码', INBOUND_CARTON_MEASUREMENT_COUNT_CONFIRM: '确认测量箱数', INBOUND_MEASUREMENT_DRAFT_SAVE: '保存入库测量草稿', INBOUND_MEASUREMENT_SUBMIT: '提交入库测量审核', INBOUND_WEIGHT_IMAGE_DELETE: '删除称重图片', INBOUND_WEIGHT_OCR_RECORD: '登记称重图片 OCR 原值', INBOUND_WEIGHT_OCR_CORRECT: '修正 OCR 重量', INBOUND_WEIGHT_OCR_CONFIRM: '确认 OCR 重量', INBOUND_SMART_SPLIT: '执行智能分柜', INBOUND_START_PICKING: '开始拣货', INBOUND_COMPLETE_PICKING: '完成拣货', INBOUND_COMPLETE_LOADING: '完成装柜', INBOUND_LOADING_EVIDENCE_UPSERT: '保存装柜证据', INBOUND_LOADING_EVIDENCE_VOID: '作废装柜证据', ORDER_CREATE: '创建运单', ORDER_UPDATE: '编辑运单', ORDER_SUBMIT: '提交运单', ORDER_APPROVE: '审核通过运单', ORDER_REJECT: '驳回运单', ORDER_CANCEL: '取消运单', ORDER_ACCEPT: '受理运单', ORDER_START: '开始处理运单', ORDER_COMPLETE: '完成运单', OCEAN_BOOKING_CREATE: '创建海运订舱', OCEAN_BOOKING_RELEASE: '确认放舱', OCEAN_BOOKING_CANCEL: '取消海运订舱', CONTAINER_CREATE: '创建柜次', CONTAINER_UPDATE: '编辑柜次', CONTAINER_TRANSPORT_UPDATE: '更新柜次运输信息', OUTBOUND_CONFIRM_DISPATCH: '确认国内出仓', OUTBOUND_REVERSE_DISPATCH: '撤销国内出仓', PDA_COMPLETE_LOADING: 'PDA 完成装柜', } const serviceLabels: Record = { 'iam-service': '客户与权限服务', 'auth-service': '认证服务', 'order-service': '订单服务', 'firstleg-service': '头程履约服务', 'finance-service': '财务服务', 'warehouse-service': '仓储服务', 'file-service': '文件服务', 'audit-service': '审计服务', 'integration-service': '外部集成服务', 'event-bridge-service': '事件桥接服务', gateway: '网关服务', } const resourceLabels: Record = { TENANT: '客户', CUSTOMER: '客户', FIRST_LEG_ORDER: '头程运单', INBOUND: '入库单', INBOUND_MEASUREMENT: '入库测量', CONTAINER: '柜次', OCEAN_BOOKING: '海运订舱', LOADING_PLAN: '装柜计划', OUTBOUND_DISPATCH: '国内出仓', QUALIFICATION: '企业资质', MEMBER: '企业成员', } const eventTokenLabels: Record = { TENANT: '客户', CUSTOMER: '客户', ORDER: '运单', FIRSTLEG: '头程履约', INBOUND: '入库', MEASURE: '测量', MEASUREMENT: '测量', WEIGHT: '重量', OCR: 'OCR', CARTON: '箱码', CONTAINER: '柜次', OCEAN: '海运', BOOKING: '订舱', OUTBOUND: '出仓', LOADING: '装柜', CREATE: '创建', UPDATE: '更新', SUBMIT: '提交', APPROVE: '审核通过', REJECT: '驳回', CANCEL: '取消', CONFIRM: '确认', COMPLETE: '完成', START: '开始', SAVE: '保存', DELETE: '删除', UPLOAD: '上传', ATTACH: '关联', RELEASE: '放行', RECORD: '记录', CORRECT: '修正', DRAFT: '草稿', SCAN: '扫描', MANUAL: '手工', ENTRY: '录入', } export function auditEventLabel(value?: string | null) { const code = value?.trim() if (!code) return '—' if (auditEventLabels[code]) return auditEventLabels[code] const translated = code.split('_').map((token) => eventTokenLabels[token]).filter(Boolean).join('') return translated || '其他业务操作' } export function auditDescriptionLabel(value?: string | null) { const text = value?.trim() if (!text) return '—' const chinesePart = text.split(/\s*\/\s*/).find((part) => /[\u3400-\u9fff]/.test(part)) return chinesePart?.trim() || text } export function auditServiceLabel(value?: string | null) { const code = value?.trim() if (!code) return '—' return serviceLabels[code] ?? code.replace(/-service$/i, '服务') } export function auditResourceLabel(value?: string | null) { const code = value?.trim() if (!code) return '—' return resourceLabels[code] ?? code } export function auditOperatorLabel(value?: string | null) { const code = value?.trim() if (!code) return '—' return code === 'platform_admin' ? '平台管理员' : code } export function auditHttpMethodLabel(value?: string | null) { const code = value?.trim().toUpperCase() if (!code) return '—' return ({ GET: '查询', POST: '提交', PUT: '更新', PATCH: '变更', DELETE: '删除' } as Record)[code] ?? code }