From c64f947f2f5a2bd9f0fee4cce6da6c0e64edee6b Mon Sep 17 00:00:00 2001 From: chengma Date: Wed, 8 Jul 2026 10:22:29 +0800 Subject: [PATCH] docs(tasks): add T-550 default batch dropdown to latest batch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 首个走 docs/tasks/ 新结构的任务。 Co-Authored-By: Claude Opus 4.8 --- docs/tasks/T-550.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 docs/tasks/T-550.md diff --git a/docs/tasks/T-550.md b/docs/tasks/T-550.md new file mode 100644 index 0000000..c4c27c4 --- /dev/null +++ b/docs/tasks/T-550.md @@ -0,0 +1,44 @@ +--- +id: T-550 +title: ①②③ 批次下拉默认选中最新批次 +phase: 7 +deps: [T-523, T-206] +status: TODO +created: 2026-07-08 +--- + +## 问题 / 背景 + +①导入采集、②AI生成、③更新蝦皮 三个 Tab 的「批次」下拉,当前在**没有已记住选择**时默认选「全部批次」(index 0)。 + +- 批次按 `created_at DESC` 排序,下拉里「全部批次」之后第一个就是最新批次。 +- ①导入后会把 `current_batch_id` 设成刚导入的新批次(`app/gui/tabs/collect.py`),所以①导完已聚焦新批次;但**②③默认仍是「全部批次」**。 +- 运营真实工作流是"导一批 → ①采集 → ②生成 → ③更新"处理**同一批**,默认「全部批次」导致每次切 Tab 都要手动再选一次;且③「开始更新」作用于当前筛选结果,默认「全部批次」时一不小心会更新**所有历史批次**,范围偏大。 + +## 方案 + +①②③ 批次下拉在**无有效已记住选择**时,默认选**最新批次**(下拉 index 1),而不是「全部批次」(index 0)。 + +- 改点:三个 Tab 的 `_populate_batch_filter`(`app/gui/tabs/collect.py` / `generate.py` / `apply.py`)里 `setCurrentIndex(index if index >= 0 else 0)` 的**兜底分支**。 +- 规则(不破坏现有好行为): + - **保留"记住上次选择"**:`previous` 有效(`findData(previous) >= 0`)→ 沿用。 + - **保留①导入自动选新批次**:`current_batch_id` 逻辑不动。 + - **只改兜底**:没有有效 `previous`、且**存在批次** → 选最新批次(「全部批次」之后的第一项);**没有批次** → 「全部批次」/空,照旧。 +- 三个 Tab 统一同一规则。 + +## 验收要点 + +- ②③ 首次打开(无记住选择)且有批次时,批次下拉默认选中**最新批次**,不是「全部批次」。 +- 用户手动选过某批次后,切走再回来仍是该批次(记住优先,不被兜底覆盖)。 +- 没有任何批次时,回退「全部批次」/空,不报错。 +- ①导入后仍自动聚焦刚导入的新批次。 +- ③ 的安全收益:默认作用域收窄到最新批次(确认弹窗仍显示范围,无回归)。 +- `tests/test_gui.py` 覆盖:有批次时默认 index=最新、无批次回退、已记住选择优先、①导入自动选新批次不受影响。 + +## 边界(不改什么) + +只改三个 Tab 的批次下拉默认选中逻辑 + GUI 单测;不改批次排序、`list_batches`、软删除过滤、筛选联动、采集/生成/更新执行流程、DB、Excel、CDP/Shopee。「全部批次」仍是可手动选择的选项。 + +## 执行记录 + +(做完在此记录:改了哪些文件、跑的验证命令与结果、决策)