CSS 重构:消除重复代码,提取共享样式

- 新增 admin-list-pages.css 共享样式(7个列表页统一使用)
- AdminKuaishouCloudFulfillment.css 删除 488 行重复副本
- AdminInventoryView CSS 提取到独立文件(-268行)
- formatTaskEventPayload 等 6 个函数提取到 admin-display.ts
- 各列表页 CSS 精简为 @import + 少量页面特有样式
- 净减少 CSS 约 1300 行

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
yml2213
2026-05-15 07:58:52 +08:00
co-authored by Claude Opus 4.6
parent c6eb0d60b1
commit 2535bd8092
12 changed files with 665 additions and 1455 deletions
+114
View File
@@ -65,3 +65,117 @@ export function formatTaskEventType(eventType: string) {
return formatStatusWithRaw(eventType, labelMap)
}
export function formatRedeemOutcomeLabel(value: string) {
const normalized = String(value || '').trim()
switch (normalized) {
case 'success':
return '兑换成功'
case 'code_used':
return '兑换码已使用'
case 'code_invalid':
return '兑换码错误'
case 'captcha_rejected':
return '验证码错误'
case 'failed':
return '兑换失败'
default:
return normalized || '-'
}
}
export function formatRedeemResolutionStatus(value: string) {
return value === 'success' ? '已完成' : value === 'failed' ? '失败收口' : (value || '-')
}
export function formatAutoDeliveryTrigger(value: string) {
const normalized = String(value || '').trim()
switch (normalized) {
case 'claim_redeemed':
return '用户兑换完成后触发'
case 'manual_dispatch_completed':
return '人工履约完成后触发'
case 'task_delivered':
return '任务交付完成后触发'
default:
return normalized || '-'
}
}
export function formatAutoDeliveryReason(value: string) {
const normalized = String(value || '').trim()
switch (normalized) {
case 'waiting_other_tasks':
return '订单下仍有任务未完成交付'
case 'already_sent':
return '该订单已经执行过自动发货'
case 'auto_delivery_disabled':
return '自动发货开关已关闭'
case 'missing_config':
return '缺少 Agiso 自动发货配置'
case 'request_failed':
return 'Agiso 接口返回失败'
case 'request_error':
return '请求 Agiso 接口时发生异常'
case 'delivery_not_confirmed':
return '接口返回成功,但订单状态未确认进入已发货'
case 'task_not_delivered':
return '当前任务尚未进入已交付状态'
case 'not_supported':
return '当前订单不支持 Agiso 咸鱼自动发货'
default:
return normalized || '-'
}
}
export function formatKuaishouRoleInfoLabel(value: string) {
const normalized = String(value || '').trim()
switch (normalized) {
case 'name':
return '角色名称'
case 'rid':
return '角色 ID'
default:
return normalized || '-'
}
}
export function formatTaskEventPayload(payload: Record<string, unknown>) {
const parts = [
payload.outcome ? `结果 ${payload.outcome}` : '',
payload.resultCode ? `代码 ${payload.resultCode}` : '',
payload.resultMessage ? `说明 ${payload.resultMessage}` : '',
payload.codeMasked ? `凭据 ${payload.codeMasked}` : '',
payload.previousCodeMasked ? `旧码 ${payload.previousCodeMasked}` : '',
payload.nextCodeMasked ? `新码 ${payload.nextCodeMasked}` : '',
payload.inventoryItemId ? `库存项 #${payload.inventoryItemId}` : '',
payload.previousInventoryItemId ? `旧库存 #${payload.previousInventoryItemId}` : '',
payload.nextInventoryItemId ? `新库存 #${payload.nextInventoryItemId}` : '',
payload.ticketCodeMasked ? `卡券号 ${payload.ticketCodeMasked}` : '',
payload.vnId ? `虚拟号 #${payload.vnId}` : '',
payload.vnPhoneMasked ? `号码 ${payload.vnPhoneMasked}` : '',
payload.bindUrl ? `绑定链接 ${payload.bindUrl}` : '',
payload.sendType ? `发送类型 ${payload.sendType}` : '',
payload.note ? `备注 ${payload.note}` : '',
payload.previousOutcome ? `切换原因 ${formatRedeemOutcomeLabel(String(payload.previousOutcome || ''))}` : '',
payload.deliveryReference ? `单号 ${payload.deliveryReference}` : '',
payload.platformOrderId ? `平台单 ${payload.platformOrderId}` : '',
payload.trigger ? `触发 ${formatAutoDeliveryTrigger(String(payload.trigger || ''))}` : '',
payload.reason ? `原因 ${payload.reason}` : '',
payload.purchaseTriggered === true ? '已触发购买' : '',
payload.usedKnapsack === true ? '使用背包库存' : '',
payload.responseStatus ? `HTTP ${payload.responseStatus}` : '',
payload.requestId ? `请求 ${payload.requestId}` : '',
payload.errorMessage ? `错误 ${payload.errorMessage}` : '',
].filter(Boolean)
if (parts.length > 0) {
return parts.join(' · ')
}
return JSON.stringify(payload || {})
}