feat: 完成T-302 AI生成页布局

新增GenerateTab和GenerateTaskTableModel,将② AI生成从占位页替换为左右布局:左侧标题/封面提示词多行输入,右侧批次、店铺、状态筛选和任务列表。

任务列表展示店铺、商品ID、旧标题、新标题、状态;筛选只读SQLite,不调用AI、不写库,生成执行留给T-303,提示词管理留给T-302p。

补充GUI测试覆盖Tab②挂载、提示词输入区、任务列表展示与批次/店铺/状态筛选;同步任务看板、API、routes、current-state和progress。
This commit is contained in:
chengma
2026-06-27 15:56:55 +08:00
parent c2f2530149
commit 6e690cc02a
7 changed files with 409 additions and 11 deletions
+9
View File
@@ -481,3 +481,12 @@
- 测试:新增 `tests/test_ai.py`,覆盖文本生成重试与 extra_body、缺字段错误不泄露 Key、图片生成保存 JPEG。
- 验证:`python -m unittest discover -s tests -p "test_ai.py"` 通过(3 tests);`python -m compileall app main.py tests` 通过;`python -m unittest discover -s tests` 通过(63 tests,skipped=1);`py -3 -m compileall app main.py tests` 通过;`py -3 -m unittest discover -s tests -p "test_ai.py"` 通过(3 tests,skipped=1,py -3 环境缺 Pillow);`py -3 -m unittest discover -s tests` 通过(37 tests,skipped=5,py -3 环境缺 openpyxl/PySide6/Pillow,相关测试按设计跳过)。
- 注意:T-301 只做通用 AI 接口与 mock 单测;真实 AI 调用还需要在 `config/ai_models.json` 填入可用 url/model/api_key 后做一次小样本实测。生成批次编排和 GUI 接入留给 T-303/T-302。
## 【2026-06-27】T-302 Tab② AI生成布局与任务列表
- 状态:DONE
- 变更:`app/gui.py` 新增 `GenerateTab` 与 `GenerateTaskTableModel`;MainWindow 的②从占位页切换为实际 AI 生成页。左侧使用 `QSplitter` 约 1/4 宽度放标题提示词、封面提示词两个多行输入;右侧提供批次、店铺、状态筛选和任务列表。
- 细节:任务列表列为店铺、商品ID、旧标题、新标题、状态;店铺优先使用匹配账号名;状态将 `stage=collected` 显示为“待生成”、`stage=generated` 显示为“已生成”,并优先显示 failed/skipped/running。筛选只读 SQLite,不调用 AI、不写库。
- 测试:`tests/test_gui.py` 增加 MainWindow 挂载②、提示词多行输入、任务列表展示,以及按批次/店铺/状态筛选的覆盖。
- 文档:`docs/06-tasks.md` 将 T-302 标为 DONE;同步 `docs/api.md`、`docs/current-state.md`,下一个可领取任务更新为 T-302p。
- 验证:`python -m unittest discover -s tests -p "test_gui.py"` 通过(20 tests);`python -m compileall app main.py tests` 通过;`python -m unittest discover -s tests` 通过(65 tests,skipped=1);`py -3 -m compileall app main.py tests` 通过;`py -3 -m unittest discover -s tests` 通过(37 tests,skipped=5,py -3 环境缺 openpyxl/PySide6/Pillow,相关测试按设计跳过)。