diff --git a/docs/11-ai-outfit.md b/docs/11-ai-outfit.md index 4717ff8..954a56c 100644 --- a/docs/11-ai-outfit.md +++ b/docs/11-ai-outfit.md @@ -225,6 +225,18 @@ Excel 行 → `OutfitTask` 列表的转换由 `excel_service` 完成;核心只 - `_reload_sample_rows()` 改调 `read_all_rows`(预览专用);**生成仍走 `load_outfit_tasks`**(待处理过滤不变)。运行时填下拉的 `_on_tasks_loaded` 仍用实际任务。 - 补 `read_all_rows` 单测(含「完成」行也返回、空字段行跳过)。 +### 10.4 改进:整表无待处理行时的提示 + 生成不清空预览样本 + +承接 §10.3。整表都「完成」后点「开始生成」时当前体验不清晰,两项改进: + +**改进 1 — 无待处理行时给明确提示。** +现状:整表都「完成」(或都失败但未勾「重试失败行」)→ `load_outfit_tasks` 返回空 → 仅日志「已加载 0 行待处理任务」+ 结束弹窗「完成 0,失败 0」,用户看不懂为何没出图。 +改为:检测到 0 行待处理时,明确提示——例如「该表没有待处理的行:已完成 N 行会跳过;失败 M 行可勾『重试失败行』重做;要重做已完成行,请清空对应行的状态(E)列。」(N/M 可由 `read_all_rows` 的各行状态统计得到。)在 `tasks_loaded` 为空或 `_on_finished(total==0)` 时弹 `QMessageBox.information`。 + +**改进 2 — 生成不清空预览样本行。** +现状:`_on_tasks_loaded` 里调 `_fill_sample_combo(tasks)`,空任务时把预览下拉清成占位文案,破坏 §10.3 的修复。 +改为:`_on_tasks_loaded` 不再动预览样本下拉;预览样本行只由 `read_all_rows`(`_reload_sample_rows`)维护,与运行解耦。 + ## 11. 配置与数据位置 遵循 cmbot「配置集中、放数据目录、凭据不入库」约定: diff --git a/tasks.md b/tasks.md index d825df1..0f8b993 100644 --- a/tasks.md +++ b/tasks.md @@ -1124,3 +1124,13 @@ - [x] `services/excel_service.py`:新增 `read_all_rows(excel)`,返回每一有效数据行(标题/货号/衣服图齐全)的 `OutfitTask`,**忽略 E 列状态** - [x] `ai_outfit_panel._reload_sample_rows()` 改调 `read_all_rows`(预览专用);生成仍走 `load_outfit_tasks`,`_on_tasks_loaded` 仍用实际任务 - [x] 单测 `tests/test_excel_service.py`:`read_all_rows` 含「完成」「失败」行也返回、空字段行跳过(8 用例);离屏验证全表完成的 Excel 预览下拉有样本行;全套 12 文件绿 + +### 19.10 无待处理行提示 + 生成不清空预览样本 — docs/11 §10.4 + +前置阅读:`docs/11-ai-outfit.md`(§10.4、§10.3) + +背景:整表都「完成」后点「开始生成」,当前只显示「已加载 0 行待处理任务 / 完成 0,失败 0」,看不懂;且 `_on_tasks_loaded([])` 会把预览样本下拉清空(破坏 §10.3)。 + +- [ ] 改进 1:检测 0 行待处理时弹明确提示「该表没有待处理的行:已完成 N 行会跳过;失败 M 行可勾『重试失败行』;要重做已完成行请清空对应行状态(E)列」(N/M 由 `read_all_rows` 统计);在 `tasks_loaded` 为空或 `_on_finished(total==0)` 时弹 `QMessageBox.information` +- [ ] 改进 2:`_on_tasks_loaded` 去掉 `_fill_sample_combo(tasks)`,预览样本下拉只由 `read_all_rows`/`_reload_sample_rows` 维护,与运行解耦 +- [ ] 离屏验证:全表完成点生成 → 弹"无待处理行"提示、预览下拉仍有样本行;正常有待处理行时不弹该提示