|
|
59059caae7
|
feat: 重构模型列表UI + 修复后端数据格式适配
模型列表 UI 重构:
- ModelSelector 从 Menu 折叠分组改为 Tabs 标签页 + 平铺列表
- 新增「全部模型」Tab + 各分类由 MODEL_CATEGORIES 数组控制顺序
- ModelItem 新增 hover 高亮效果 + 维护中模型禁用 + toast 提示
- 新增错误态(Result + 重试按钮)
后端数据格式适配:
- param_schema 类型从 string[] 改为 ParamSchemaItem[]({id, map_to, spec, ui})
- 修复 Form.Item 重复 key 报错(item.id 作 React key,item.map_to 作表单字段名)
- ModelsListResponseBody 字段类型收紧(model_type / category_name / quota_config)
数据层重构:
- useModelList 从 4 次并行请求改为 1 次全量拉取(后端 category 参数不可用)
- 分组键从 category_name 改为 model_type
- page_size 提升至 200
类型体系增强:
- type 别名改为 as const 数组推导(MODEL_CATEGORIES 单一数据源)
- 新增 CATEGORY_SLUG_MAP + resolveCategoryLabel + toCategorySlug 映射层
- 类型重命名 ModelCategory → ModelCategoryStringEnum
|
2026-06-08 19:02:32 +08:00 |
|
|
|
a8ace232a4
|
feat: 任务列表UI重构 + 分页器/登录错误/请求拦截修复
【任务列表 UI 重构】(TaskHistory.tsx)
- 列重新排序:任务ID(固定) → 创建时间 → 模型 → 输出类型 → 状态 → 提示词 → 时长 → 费用 → 供应商(隐藏) → 帧率/文件大小/标签/错误信息(隐藏) → 用户
- 斑马纹行样式 + hover 增强 + 选中行高亮 + 暗色主题适配
- 列可见性选择器(齿轮图标 Popover),持久化到 localStorage
- 视频时长通过 VideoUiParams.duration 计算,非视频显示 "-"
- 未知状态降级处理(resolveStatus → 显示原始 key)
- 分页器固定预留 48px,避免 >20 条时分页器溢出可视区
- 提示词搜索图标颜色用 CSS class 承载,避免 columns 依赖 token.colorPrimary 导致主题切换时 Table 重建
【分页器修复】(antd-theme.ts)
- Pagination 组件 token 添加 itemActiveColor: '#fff'
- 激活页码数字与 #6366F1 主题背景形成对比,亮色/暗色均可见
- 替代之前的 CSS !important hack
【登录错误信息修复】(request.ts)
- HTTP 401 拦截改为双重校验:status === 401 && data?.code === 401
- 仅业务码也为 401 时才走 token 刷新流程
- 其他业务码(如密码错误)透传后端 data.message,不再被 RefreshError 覆盖
【全局中文 locale】(ThemeProvider.tsx)
- ConfigProvider 添加 locale={zhCN},分页器显示"条/页"等中文
- 避免逐个 Table 设置不完整 locale 导致 Pagination Select 退化为 Input
【上下文稳定性】(HomeContent.tsx)
- contextValue 用 useMemo 包裹,避免每次 render 新建对象导致无关重渲染
- 配合 columns 依赖清理,减少主题切换时的级联更新
【其他】
- index.html CSP 策略增加 COS 域名白名单
- OutputTypeMap 枚举值修复为 image='图片', video='视频', audio='音频'
- TaskStatusMap STATUS_CONFIG 类型放宽为 Record<string,...> 兼容未知状态
- 移除 computeDuration,替换为 getVideoDuration + formatDuration
- LoginPage 移除未使用的 authState 依赖
|
2026-06-05 20:49:23 +08:00 |
|