58a8b47532
Co-authored-by: Cursor <cursoragent@cursor.com>
359 lines
12 KiB
TypeScript
359 lines
12 KiB
TypeScript
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<string, string>, value?: string | null, empty = '—'): string {
|
|
if (value == null || value === '') return empty;
|
|
return dict[value] ?? value;
|
|
}
|
|
|
|
export const CLIENT_APP_LABELS: Record<string, string> = {
|
|
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<string, string> = {
|
|
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<string, string> = {
|
|
ORDER_STATUS: '订单状态',
|
|
BENEFIT_LEDGER: '权益流水',
|
|
STORE_AUDIT: '门店审核',
|
|
TICKET_COLLAB: '工单协作',
|
|
PROMO_TOUCH: '推广触达',
|
|
HQ_OPERATION: 'HQ 操作',
|
|
};
|
|
|
|
export const PARAM_DESC_LABELS: Record<string, string> = {
|
|
from_status: '原状态',
|
|
to_status: '目标状态',
|
|
operator: '操作人',
|
|
ledger_type: '流水类型',
|
|
coupon_id: '权益券 ID',
|
|
action: '行为',
|
|
target_type: '对象类型',
|
|
target_id: '对象 ID',
|
|
};
|
|
|
|
export const USER_LOG_EVENT_LABELS: Record<string, string> = {
|
|
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<string, string> = {
|
|
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<string, string> = {
|
|
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<string, string> = {
|
|
...USER_LOG_EVENT_LABELS,
|
|
...STORE_LOG_EVENT_LABELS,
|
|
...PARTNER_LOG_EVENT_LABELS,
|
|
};
|
|
|
|
export const THIRD_PARTY_PROVIDER_LABELS: Record<string, string> = {
|
|
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<string, string> = {
|
|
SUCCESS: '成功',
|
|
FAILED: '失败',
|
|
PENDING: '处理中',
|
|
};
|
|
|
|
export const THIRD_PARTY_SCENE_LABELS: Record<string, string> = {
|
|
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<string, string> = {
|
|
...WECOM_BOT_PERMISSION_LABELS,
|
|
'user.read_sms.start': '查询用户·发送验证码',
|
|
'user.read_sms.verify': '查询用户·校验验证码',
|
|
};
|
|
|
|
export const GENERIC_STATUS_LABELS: Record<string, string> = {
|
|
...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<string, string> = Object.fromEntries(
|
|
HQ_ADMIN_ROLES.map((r) => [r.value, r.label]),
|
|
);
|
|
|
|
const CODE_ZH: Record<string, string> = {
|
|
...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<string, string>;
|
|
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<string, string>;
|
|
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);
|
|
}
|