优化前端认证与类型管理

This commit is contained in:
yml
2026-05-25 01:59:59 +08:00
parent eafa6f96b2
commit 2cfd3d9422
28 changed files with 435 additions and 280 deletions
+43 -24
View File
@@ -1,4 +1,19 @@
const listingStatusMap: Record<string, string> = {
import type {
BalanceType,
DisputeStatus,
HandoffStatus,
LedgerDirection,
ListingReviewStatus,
ListingStatus,
OrderStatus,
RealnameStatusValue,
RiskStatus,
SettlementStatus,
UserStatus,
WalletStatus,
} from '@/types/status'
const listingStatusMap: Record<ListingStatus, string> = {
draft: '草稿',
published: '已上架',
rented: '租用中',
@@ -6,14 +21,14 @@ const listingStatusMap: Record<string, string> = {
abnormal: '异常',
}
const listingReviewStatusMap: Record<string, string> = {
const listingReviewStatusMap: Record<ListingReviewStatus, string> = {
none: '未提交',
pending: '待审核',
approved: '已通过',
rejected: '已拒绝',
}
const orderStatusMap: Record<string, string> = {
const orderStatusMap: Record<OrderStatus, string> = {
pending_confirm: '待确认',
pending_payment: '待支付',
pending_handoff: '待交接',
@@ -30,7 +45,7 @@ const orderStatusMap: Record<string, string> = {
abnormal: '异常',
}
const handoffStatusMap: Record<string, string> = {
const handoffStatusMap: Record<HandoffStatus, string> = {
pending_owner: '待号主交接',
pending_renter_confirm: '待租客确认',
received: '已确认收号',
@@ -50,7 +65,7 @@ const handoffStatusMap: Record<string, string> = {
arbitrated: '已仲裁',
}
const settlementStatusMap: Record<string, string> = {
const settlementStatusMap: Record<SettlementStatus, string> = {
unsettled: '未结算',
pending: '待结算',
frozen: '冻结中',
@@ -62,95 +77,99 @@ const settlementStatusMap: Record<string, string> = {
arbitrated: '已仲裁',
}
const realnameStatusMap: Record<string, string> = {
const realnameStatusMap: Partial<Record<RealnameStatusValue, string>> = {
unverified: '未认证',
pending: '认证中',
verified: '已认证',
rejected: '认证失败',
}
const userStatusMap: Record<string, string> = {
const userStatusMap: Record<UserStatus, string> = {
active: '正常',
frozen: '已冻结',
disabled: '已禁用',
}
const riskStatusMap: Record<string, string> = {
const riskStatusMap: Record<RiskStatus, string> = {
normal: '正常',
watch: '观察',
restricted: '受限',
blocked: '已拦截',
}
const disputeStatusMap: Record<string, string> = {
const disputeStatusMap: Record<DisputeStatus, string> = {
open: '待处理',
processing: '处理中',
resolved: '已处理',
closed: '已关闭',
}
const walletStatusMap: Record<string, string> = {
const walletStatusMap: Record<WalletStatus, string> = {
active: '正常',
frozen: '已冻结',
disabled: '已禁用',
}
const ledgerDirectionMap: Record<string, string> = {
const ledgerDirectionMap: Record<LedgerDirection, string> = {
in: '收入',
out: '支出',
freeze: '冻结',
unfreeze: '解冻',
}
const balanceTypeMap: Record<string, string> = {
const balanceTypeMap: Record<BalanceType, string> = {
available: '可用余额',
frozen: '冻结余额',
}
function readLabel(map: Record<string, string>, value: string) {
return map[value] || value || '-'
}
export function listingStatusLabel(status: string) {
return listingStatusMap[status] || status || '-'
return readLabel(listingStatusMap, status)
}
export function listingReviewStatusLabel(status: string) {
return listingReviewStatusMap[status] || status || '-'
return readLabel(listingReviewStatusMap, status)
}
export function orderStatusLabel(status: string) {
return orderStatusMap[status] || status || '-'
return readLabel(orderStatusMap, status)
}
export function handoffStatusLabel(status: string) {
return handoffStatusMap[status] || status || '-'
return readLabel(handoffStatusMap, status)
}
export function settlementStatusLabel(status: string) {
return settlementStatusMap[status] || status || '-'
return readLabel(settlementStatusMap, status)
}
export function realnameStatusLabel(status: string) {
return realnameStatusMap[status] || status || '-'
return readLabel(realnameStatusMap, status)
}
export function userStatusLabel(status: string) {
return userStatusMap[status] || status || '-'
return readLabel(userStatusMap, status)
}
export function riskStatusLabel(status: string) {
return riskStatusMap[status] || status || '-'
return readLabel(riskStatusMap, status)
}
export function disputeStatusLabel(status: string) {
return disputeStatusMap[status] || status || '-'
return readLabel(disputeStatusMap, status)
}
export function walletStatusLabel(status: string) {
return walletStatusMap[status] || status || '-'
return readLabel(walletStatusMap, status)
}
export function ledgerDirectionLabel(direction: string) {
return ledgerDirectionMap[direction] || direction || '-'
return readLabel(ledgerDirectionMap, direction)
}
export function balanceTypeLabel(type: string) {
return balanceTypeMap[type] || type || '-'
return readLabel(balanceTypeMap, type)
}