错误请求列表(/admin/usage 错误 tab、Ops 弹窗、用户端 /usage 错误 tab) 对齐用量明细的交互与信息密度。Squash of: - feat(usage): 错误请求全面对齐用量明细(UI/列序/排序/筛选/列设置/新列) - refactor(usage): 错误表提取共享徽章工具与 IP 批量工具条,后端排序解析归并 SetSort - feat(usage): /admin/usage 错误请求新增分类过滤 - fix(ops): 错误列表 phase=upstream 过滤生效,守卫豁免改为显式 opt-in - fix(ops): 错误列表用户列回退显示已删除 KEY 所有者 - fix(usage): 错误请求状态码排序对齐展示/过滤,筛选项改固定常用码
32 lines
995 B
TypeScript
32 lines
995 B
TypeScript
/**
|
|
* 错误请求"分类"虚拟维度:phase + error type → 用户侧粗分类码。
|
|
* 镜像后端 service.MapUserErrorCategory(backend/internal/service/ops_user_error.go),
|
|
* 两处修改须同步。返回稳定分类码,展示文案走 i18n `usage.errors.categories.*`。
|
|
*/
|
|
export function mapErrorCategory(phase?: string | null, errType?: string | null): string {
|
|
switch ((phase || '').toLowerCase()) {
|
|
case 'auth':
|
|
return 'auth'
|
|
case 'routing':
|
|
return 'service_unavailable'
|
|
case 'upstream':
|
|
case 'network':
|
|
return 'upstream'
|
|
case 'internal':
|
|
return 'internal'
|
|
case 'request':
|
|
switch ((errType || '').toLowerCase()) {
|
|
case 'rate_limit_error':
|
|
return 'rate_limit'
|
|
case 'billing_error':
|
|
case 'subscription_error':
|
|
return 'quota'
|
|
case 'invalid_request_error':
|
|
return 'invalid_request'
|
|
case 'cyber_policy':
|
|
return 'cyber'
|
|
}
|
|
}
|
|
return 'other'
|
|
}
|