2.7 KiB
2.7 KiB
id, title, phase, deps, status, created
| id | title | phase | deps | status | created | |
|---|---|---|---|---|---|---|
| T-592 | AI工场主图/详情图终选拖放、插入排序与比例轻提示 | 7 |
|
DONE | 2026-07-11 |
问题 / 背景
照片池是候选集合,导出需要有序的主图和详情图集合。终选必须支持从池拖入、落在占用槽时插入顺延、槽内重排、移出终选和跨类别复用,同时保证数据库与 UI 顺序一致。
方案
- 底部全宽终选盘显示目标和当前数量,默认主图 9、详情 12,目标可配置。
- 从池拖到空槽直接放入;拖到占用槽按位置插入并顺延;满额时拒绝超出并提示。
- 槽内拖动原子重排;Delete/右键只移出终选,不删除 pool asset。
- 同一 asset 在同类别最多一次,可同时各用于一次 main/detail。
- 主图/详情图推荐比例不匹配显示黄色边框+tooltip,不硬拦。
- 所有槽位保持连续,无中间空洞;双击槽图查看大图。
- 使用 T-586 service 事务更新 selection,拖放失败时 UI 回滚到 DB 顺序。
验收要点
- empty insert、occupied insert+shift、same-list reorder、remove、满额和重复拖入均有测试。
- 跨 main/detail 允许,同类别重复拒绝;比例提示不阻止保存。
- 重启后顺序与退出前一致;并发/异常不产生重复 position 或空洞。
- 运行中图片尚未可用时不能拖入;文件缺失资产有明确禁用状态。
边界(不改什么)
- 不导出文件、不删除照片池资产、不上传蝦皮。
- 不自动裁剪、转比例或替用户决定主图/详情图。
- 不实现撤销历史;失败只恢复当前持久化顺序。
执行记录
- 2026-07-11:完成 AI工场主图/详情图终选盘。
ImageStudioTab底部终选占位升级为主图/详情图两个可拖放列表;照片池可用图片提供 asset_id 拖拽,终选列表支持外部拖入、落点插入顺延、列表内重排、Delete/右键移出。- 写库统一走
image_studio.replace_selections();同类别重复拖入、满额、文件未下载/缺失会中文提示并拒绝;主图/详情图跨类别复用允许。 - 主图非 1:1 比例显示黄色轻提示和 tooltip,不阻止加入;运行中禁用终选列表,避免生成/下载时状态并发修改。
- 更新
docs/routes.md的 ⑥ AI工场底部终选说明,明确 T-593 才做导出。 - 验证:当前主工作区仍有无关默认提示词脏文件会影响全量 unittest;已在干净 worktree 仅套用 T-592 diff 后运行
python -m ruff check app tests main.py、py -3.10 -m compileall app main.py、py -3.10 -m unittest discover -s tests(363 tests)和git diff --check,全部通过。主工作区也运行了 T-592 相关 targeted unittest,已通过。