import { LEDGER_TYPE_LABELS, ORDER_STATUS_LABELS, ORDER_STATUS_OPERATOR_LABELS, } from './constants'; import { HQ_OPERATION_ACTION_LABELS } from './hq-log'; import { USER_LOG_CATEGORY_LABELS } from './user-log'; import { PARTNER_LOG_CATEGORY_LABELS, HQ_ADMIN_ROLES, resolvePartnerLogCategory, resolveStoreLogCategory, resolveUserLogCategory, STORE_LOG_CATEGORY_LABELS, WECOM_BOT_PERMISSION_LABELS, } from '@dukang/shared-types'; export function zhLabel(dict: Record, value?: string | null, empty = '—'): string { if (value == null || value === '') return empty; return dict[value] ?? value; } export const CLIENT_APP_LABELS: Record = { USER_MINI: 'C 端小程序', USER_H5: 'C 端 H5', PARTNER_MINI: '合伙人小程序', PARTNER_H5: '合伙人 H5', HQ_MINI: 'HQ 小程序', HQ_WEB: 'HQ 后台', SHOP_H5: '门店 H5', }; export const REF_TYPE_LABELS: Record = { ORDER: '订单', USER: '用户', STORE: '门店', PARTNER: '合伙人', CITY: '城市', PRODUCT: '商品', COUPON: '权益券', TICKET: '工单', SUPPORT_TICKET: '技术支持工单', INVOICE: '发票', PROMO: '推广码', PROMO_CODE: '推广码', HQ: '总部', HQ_ACCOUNT: 'HQ 账号', STORE_ACCOUNT: '门店账号', PARTNER_ACCOUNT: '合伙人账号', PAYOUT: '打款', WITHDRAWAL: '提现', BILL: '账单', DELIVERY: '配送单', REDEEM: '核销', WAREHOUSE: '仓库', PACKAGE: '套餐', }; export const DOMAIN_EVENT_TYPE_LABELS: Record = { ORDER_STATUS: '订单状态', BENEFIT_LEDGER: '权益流水', STORE_AUDIT: '门店审核', TICKET_COLLAB: '工单协作', PROMO_TOUCH: '推广触达', HQ_OPERATION: 'HQ 操作', }; export const PARAM_DESC_LABELS: Record = { from_status: '原状态', to_status: '目标状态', operator: '操作人', ledger_type: '流水类型', coupon_id: '权益券 ID', action: '行为', target_type: '对象类型', target_id: '对象 ID', }; export const USER_LOG_EVENT_LABELS: Record = { login_success: '登录成功', sms_login: '短信登录', sms_send: '发送验证码', sms_verify_fail: '验证码校验失败', session_start: '会话开始', home_view: '浏览首页', product_list_view: '浏览商品列表', product_click: '点击商品', product_detail_view: '浏览商品详情', order_confirm_view: '浏览确认订单', order_submit: '提交订单', order_list_view: '浏览订单列表', order_detail_view: '浏览订单详情', order_cancel: '取消订单', pay_page_view: '进入支付页', pay_success: '支付成功', pay_fail: '支付失败', wechat_login: '微信登录', wechat_phone: '微信授权手机号', wechat_phone_login: '微信手机号登录', wechat_location: '微信定位', wechat_album: '微信选图', wechat_bind: '绑定微信', store_list_view: '浏览门店列表', store_detail_view: '浏览门店详情', benefit_page_view: '浏览权益页', benefit_detail_view: '浏览权益详情', benefit_redeem_start: '开始核销', benefit_redeem_success: '核销成功', redeem_code_view: '查看核销码', redeem_success_view: '核销成功页', profile_update: '修改资料', bind_phone: '绑定手机号', address_list_view: '浏览地址列表', address_edit: '编辑地址', promo_touch: '推广触达', promo_share: '分享推广', cs_contact: '联系客服', after_sale_list_view: '浏览售后列表', after_sale_apply: '申请售后', client_error: '前端异常', }; export const STORE_LOG_EVENT_LABELS: Record = { store_sms_send: '发送验证码', store_sms_login: '短信登录', store_sms_verify_fail: '验证码校验失败', store_login_success: '登录成功', store_select: '选择门店', store_wechat_login: '微信登录', store_wechat_bind: '绑定微信', store_home_view: '浏览首页', store_redeem_entry_view: '进入核销页', store_redeem_confirm_view: '核销确认页', store_phone_redeem_view: '手机号核销页', store_records_view: '浏览核销记录', store_withdraw_view: '浏览提现页', store_packages_view: '浏览套餐页', store_mine_view: '浏览我的', store_staff_view: '浏览子账号', store_redeem_preview: '核销预览', store_redeem_confirm: '确认核销', store_redeem_confirm_fail: '核销失败', store_redeem_weaknet_threshold: '弱网阈值', store_redeem_pending_submit: '提交挂起核销', store_redeem_pending_complete: '完成挂起核销', store_redeem_pending_reject: '驳回挂起核销', store_redeem_phone_lookup_sms: '手机号核销发码', store_redeem_phone_balance: '查询用户权益余额', store_redeem_phone_prepare: '手机号核销准备', store_redeem_scan_start: '扫码核销开始', store_payout_created: '生成打款单', store_payout_paid: '打款完成', store_withdraw_applied: '申请提现', store_withdraw_paid: '提现已打款', store_status_change: '变更营业状态', store_staff_create: '新增子账号', store_staff_update: '编辑子账号', store_staff_delete: '删除子账号', store_staff_permission_update: '更新子账号权限', store_package_apply: '申请套餐', store_package_audit_view: '查看套餐审核', }; export const PARTNER_LOG_EVENT_LABELS: Record = { partner_sms_send: '发送验证码', partner_sms_login: '短信登录', partner_sms_verify_fail: '验证码校验失败', partner_login_success: '登录成功', partner_wechat_login: '微信登录', partner_wechat_bind: '绑定微信', partner_home_view: '浏览首页', partner_store_list_view: '浏览门店列表', partner_store_detail_view: '浏览门店详情', partner_store_create_view: '进入录店页', partner_order_list_view: '浏览订单列表', partner_order_detail_view: '浏览订单详情', partner_proxy_order_view: '进入代下单页', partner_bills_view: '浏览账单列表', partner_bill_detail_view: '浏览账单详情', partner_staff_list_view: '浏览子账号', partner_leaderboard_view: '浏览排行榜', partner_weekly_report_view: '浏览周报', partner_staff_create: '新增子账号', partner_staff_sms_send: '子账号发验证码', partner_staff_sms_verify_fail: '子账号验证码失败', partner_staff_update: '编辑子账号', partner_staff_delete: '删除子账号', partner_staff_permission_update: '更新子账号权限', partner_store_create: '录入门店', partner_store_status_change: '变更门店状态', partner_store_audit_approved: '门店审核通过', partner_store_audit_rejected: '门店审核驳回', partner_order_ship: '订单发货', partner_delivery_advance: '推进配送', partner_proxy_order_create: '代下单', partner_bill_view: '查看账单', partner_bill_confirm: '确认账单', partner_warehouse_view: '浏览仓库', partner_warehouse_update: '更新仓库', }; export const EVENT_NAME_LABELS: Record = { ...USER_LOG_EVENT_LABELS, ...STORE_LOG_EVENT_LABELS, ...PARTNER_LOG_EVENT_LABELS, }; export const THIRD_PARTY_PROVIDER_LABELS: Record = { WECHAT_AUTH: '微信授权', WECHAT_PAY: '微信支付', WECHAT_REFUND: '微信退款', WECHAT_MAP: '微信/腾讯地图', ALIYUN_OSS: '阿里云 OSS', ALIYUN_SMS: '阿里云短信', MOCK_SMS: 'Mock 短信', SMS: '短信', XFX: '小飞侠', LOGISTICS: '物流快递', MANUAL: '手动', }; export const THIRD_PARTY_STATUS_LABELS: Record = { SUCCESS: '成功', FAILED: '失败', PENDING: '处理中', }; export const THIRD_PARTY_SCENE_LABELS: Record = { LOGIN: '登录', USERINFO: '用户信息', JSSDK_CONFIG: 'JSSDK 配置', BIND_PHONE: '绑定手机号', GET_LOCATION: '获取定位', CHOOSE_IMAGE: '选择图片', ORDER_PAY: '订单支付', ORDER_REFUND: '订单退款', UPLOAD_SHIPPING: '上传发货信息', TRADE_MANAGE_PUSH: '交易结算推送', ORDER_DISPATCH: '配送下单', ORDER_DISPATCH_HOLD: '配送暂不下发', TRACK_CALLBACK: '物流回调', UPLOAD_TOKEN: '上传凭证', UPLOAD_PUT_OBJECT: '上传文件', GEOCODE: '地理编码', REVERSE_GEOCODE: '逆地理编码', }; export const WECOM_BOT_ACTION_LABELS: Record = { ...WECOM_BOT_PERMISSION_LABELS, 'user.read_sms.start': '查询用户·发送验证码', 'user.read_sms.verify': '查询用户·校验验证码', }; export const GENERIC_STATUS_LABELS: Record = { ...ORDER_STATUS_LABELS, ...LEDGER_TYPE_LABELS, ...THIRD_PARTY_STATUS_LABELS, PENDING: '待处理', APPROVED: '已通过', REJECTED: '已驳回', ACTIVE: '正常', DISABLED: '停用', SUCCESS: '成功', FAILED: '失败', OPEN: '营业中', PAUSED: '已暂停', CLOSED: '已关闭', }; export const HQ_ROLE_LABELS: Record = Object.fromEntries( HQ_ADMIN_ROLES.map((r) => [r.value, r.label]), ); const CODE_ZH: Record = { ...CLIENT_APP_LABELS, ...REF_TYPE_LABELS, ...DOMAIN_EVENT_TYPE_LABELS, ...EVENT_NAME_LABELS, ...ORDER_STATUS_LABELS, ...ORDER_STATUS_OPERATOR_LABELS, ...LEDGER_TYPE_LABELS, ...HQ_OPERATION_ACTION_LABELS, ...HQ_ROLE_LABELS, ...THIRD_PARTY_PROVIDER_LABELS, ...THIRD_PARTY_STATUS_LABELS, ...THIRD_PARTY_SCENE_LABELS, ...WECOM_BOT_ACTION_LABELS, ...GENERIC_STATUS_LABELS, ...PARAM_DESC_LABELS, }; export function zhCode(value?: string | null, empty = '—'): string { if (value == null || value === '') return empty; return CODE_ZH[value] ?? value; } export function eventNameLabel(value?: string | null): string { return zhLabel(EVENT_NAME_LABELS, value); } export function clientAppLabel(value?: string | null): string { return zhLabel(CLIENT_APP_LABELS, value); } export function formatRef(refType?: string | null, refId?: string | null): string { if (!refType && !refId) return '—'; const type = zhLabel(REF_TYPE_LABELS, refType, refType || ''); return refId ? `${type} #${refId}` : type; } export function userEventCategoryLabel(eventName: string, category?: string | null): string { const key = category || resolveUserLogCategory(eventName); if (key && USER_LOG_CATEGORY_LABELS[key]) return USER_LOG_CATEGORY_LABELS[key]; return '其他'; } export function storeEventCategoryLabel(eventName: string, category?: string | null): string { const key = category || resolveStoreLogCategory(eventName); const labels = STORE_LOG_CATEGORY_LABELS as Record; if (key && labels[key]) return labels[key]; return '其他'; } export function partnerEventCategoryLabel(eventName: string, category?: string | null): string { const key = category || resolvePartnerLogCategory(eventName); const labels = PARTNER_LOG_CATEGORY_LABELS as Record; if (key && labels[key]) return labels[key]; return '其他'; } export function domainParamFieldLabel(desc?: string | null, fallbackIndex?: 1 | 2 | 3): string { if (desc && PARAM_DESC_LABELS[desc]) return PARAM_DESC_LABELS[desc]; if (fallbackIndex) return `参数${fallbackIndex}`; return '参数'; } export function zhRemark(value?: string | null): string { if (!value) return '—'; return value .replace(/partnerAccountId=/g, '合伙人账号=') .replace(/hqAccountId=/g, 'HQ账号=') .replace(/deliveryMode=/g, '履约方式=') .replace(/\bmode=/g, '履约方式=') .replace(/customer=/g, '客户=') .replace(/\bON_SITE_PICKUP\b/g, '现场提货') .replace(/\bCROSS_CITY\b/g, '跨城') .replace(/\bLOCAL\b/g, '同城'); } export function domainParamValue(desc?: string | null, value?: string | null): string { if (value == null || value === '') return '—'; if (desc === 'from_status' || desc === 'to_status') return zhLabel(ORDER_STATUS_LABELS, value); if (desc === 'operator') return zhLabel(ORDER_STATUS_OPERATOR_LABELS, value); if (desc === 'ledger_type') return zhLabel(LEDGER_TYPE_LABELS, value); if (desc === 'action') return zhLabel(HQ_OPERATION_ACTION_LABELS, value); if (desc === 'target_type') return zhLabel(REF_TYPE_LABELS, value); return zhCode(value); }