模型列表 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
64 lines
1.5 KiB
TypeScript
64 lines
1.5 KiB
TypeScript
// ============================================================
|
|
// API 模块统一导出
|
|
// ============================================================
|
|
|
|
export {
|
|
fetchAnnouncements,
|
|
type Announcement,
|
|
type AnnouncementType,
|
|
type AnnouncementListResponse,
|
|
} from './announcement';
|
|
|
|
export {
|
|
AuthAPI,
|
|
type SendSMSRequestBody,
|
|
type RegisterRequestBody,
|
|
type RegisterResponseBody,
|
|
type LoginRequestBody,
|
|
type LoginResponseBody,
|
|
type RefreshTokenRequestBody,
|
|
type RefreshTokenResponseBody,
|
|
type UserInfoBody,
|
|
type ChangePasswordRequestBody,
|
|
type UsePhoneResetPasswordRequestBody,
|
|
} from './auth';
|
|
|
|
export {
|
|
fetchBanners,
|
|
type Banner,
|
|
type BannerListResponse,
|
|
} from './banner';
|
|
|
|
export {
|
|
ModelAPI,
|
|
MODEL_CATEGORIES,
|
|
MODEL_CATEGORY_LABELS,
|
|
CATEGORY_SLUG_MAP,
|
|
resolveCategoryLabel,
|
|
toCategorySlug,
|
|
type ModelsListReqeustParams,
|
|
type ModelsListResponseBody,
|
|
type ModelInfoRequestParams,
|
|
type ModelInfoResponseBody,
|
|
type ModelCategoryStringEnum,
|
|
type ParamSchemaItem,
|
|
} from './models';
|
|
|
|
export {
|
|
TaskAPI,
|
|
OutputTypeMap,
|
|
TaskStatusMap,
|
|
type OutputTypeString,
|
|
type TaskStatusString,
|
|
type TaskListRequestParams,
|
|
type CreatTaskRequestBody,
|
|
type ExportTaskCSVParams,
|
|
type ContentItem,
|
|
type ImageUiParams,
|
|
type VideoUiParams,
|
|
type AudioUiParams,
|
|
type TaskInfoItemResponseBody,
|
|
type TaskInfoDataResponseBody,
|
|
type TaskStatusResponseBody,
|
|
} from './task';
|