// 会员模块的枚举与格式化。 // // 这些枚举与后端「直接存值」的约定一一对应(见 hugray-server/sql/hugray_account_user_ext_20261012.sql // 与 hugray_account_city_20261012.sql),刻意不建 sys_dict_type。 // 列表页与详情页共用此处定义,避免两处各写一份后改一处漏一处。 // 系统等级,从低到高 export const LEVELS = ['C', 'L1', 'L2', 'L3', 'L4'] // 主体类型 export const SUBJECT_TYPES = [ { value: '1', label: '个人' }, { value: '2', label: '个体工商户' }, { value: '3', label: '企业' } ] // 认证状态 export const AUTH_STATUS = [ { value: '0', label: '未认证' }, { value: '1', label: '审核中' }, { value: '2', label: '已认证' }, { value: '3', label: '认证失败' } ] // 认证申请审核状态(account_certification_apply.audit_status) // 注意与上面的 AUTH_STATUS 区分:那个是会员的整体认证状态,这个是单次申请的审核结果。 export const AUDIT_STATUS = [ { value: '0', label: '待审核' }, { value: '1', label: '已通过' }, { value: '2', label: '已驳回' } ] // 账户状态(沿用 account_user.status,已由 2 值扩为 4 值, // 故不能复用只有 0/1 的 sys_normal_disable 字典) export const ACCOUNT_STATUS = [ { value: '0', label: '正常' }, { value: '1', label: '禁用' }, { value: '2', label: '注销中' }, { value: '3', label: '已注销' } ] // 启用状态(0正常 1禁用)。 // 城市 account_city 与城市公司档案 account_city_company 的 status 用的就是这一对。 // 与 ACCOUNT_STATUS 的前两项取值相同但不从它切片派生:两者语义独立, // 账户状态将来再扩值时不该顺带改动城市/档案的选项。 export const ENABLE_STATUS = [ { value: '0', label: '正常' }, { value: '1', label: '禁用' } ] // 性别沿用原生字典 sys_user_sex export const SEX = [ { value: '0', label: '男' }, { value: '1', label: '女' }, { value: '2', label: '未知' } ] // 从 [{value,label}] 取展示文案,取不到统一显示 - export function labelOf(options, value) { const hit = options.find(item => item.value === value) return hit ? hit.label : '-' } export function levelTagType(level) { return { C: 'info', L1: 'info', L2: 'success', L3: 'warning', L4: 'danger' }[level] || 'info' } export function authTagType(status) { return { 0: 'info', 1: 'warning', 2: 'success', 3: 'danger' }[status] || 'info' } export function statusTagType(status) { return { 0: 'success', 1: 'danger', 2: 'warning', 3: 'info' }[status] || 'info' } export function auditTagType(status) { return { 0: 'warning', 1: 'success', 2: 'danger' }[status] || 'info' } // 仅「正常」视为可用,注销中/已注销也走禁用方向 export function isEnabled(status) { return status === '0' } // 只有「正常」与「禁用」两态能互相切换。注销中/已注销由注销审核流程驱动, // 列表页不给入口——否则随手一点就能把已注销的会员放回可用状态,等于绕过审核。 export function canToggleStatus(status) { return status === '0' || status === '1' } // 金额千分位,保留两位小数;后端返回的是字符串形式的 decimal export function formatAmount(value) { if (value === null || value === undefined || value === '') { return '0.00' } const num = Number(value) if (Number.isNaN(num)) { return String(value) } return num.toLocaleString('zh-CN', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) } export function isNegative(value) { return Number(value) < 0 }