feat(admin): 系统模型 - 「拉取模型」弹窗支持搜索 (#743)
部分上游端点会返回几百个模型,弹窗里铺满复选框后只能靠肉眼滚动查找, 没法按厂商或系列收窄。 - 弹窗顶部新增搜索框(大小写不敏感的子串匹配、自动聚焦、可一键清空); - 搜索时「全选 / 取消选中」只作用于当前匹配集合,按钮文案带出匹配数量; 关键字之外的勾选状态保留。无关键字时与改动前行为完全一致; - 无命中时列表区显示空态;汇总行补充匹配数与其中已勾选数。 筛选与批量勾选规则抽到 channel-model-import-selection.ts 并配套单测。
This commit is contained in:
@@ -5,6 +5,15 @@ description: 当前项目已实现功能的手工验证清单与未确认边界
|
||||
|
||||
# 待测试
|
||||
|
||||
## 系统模型「拉取模型」弹窗搜索
|
||||
|
||||
- 已实现:后台「模型与资源 → 系统模型」点「拉取模型」后的选择弹窗新增搜索框(按模型标识做大小写不敏感的子串匹配,自动聚焦、可一键清空),因为部分上游端点会返回几百个模型。
|
||||
- 已实现:搜索时「全选 / 取消选中」只作用于**当前匹配**的集合,按钮文案同步显示匹配数量(如「全选匹配的 12 个」);关键字之外的勾选状态保留。无关键字时行为与改动前完全一致。
|
||||
- 已实现:搜索无命中时列表区显示「没有匹配「关键字」的模型」空态;汇总行额外显示匹配数与其中已勾选数。
|
||||
- 实现位置:筛选与批量勾选规则抽到 `web/src/pages/admin/components/channel-model-import-selection.ts`,弹窗接线在 `channel-model-manager.tsx`,配套 `web/test/channel-model-import-selection.test.ts`。
|
||||
- [x] 验证:`bun test test/channel-model-import-selection.test.ts` 9 项通过(空关键字返回全部、大小写不敏感、首尾空白、无命中返回空、全选并入去重、关键字外勾选保留、无关键字时与旧行为一致);`tsc --noEmit`、ESLint、`bun run build` 均通过。
|
||||
- [ ] 用户验收:需要管理员登录且上游能返回大量模型才能打开该弹窗,因此**未做真实界面验收**。请在真实后台点「拉取模型」确认:搜索框位置与自动聚焦、输入关键字后列表实时收窄、全选/取消选中只影响匹配项、清空后恢复全部、以及几百个模型时的滚动与性能。
|
||||
|
||||
## 灵感页路由与导航
|
||||
|
||||
- 已修复:Nginx 对 `/inspirations` 与 `/inspirations/` 精确返回 SPA 入口,避免同名静态目录触发带容器端口的 301;目录下的 JSON 仍按静态文件提供。
|
||||
|
||||
Reference in New Issue
Block a user