4.1 KiB
4.1 KiB
id, title, status, phase, deps, created
| id | title | status | phase | deps | created | ||
|---|---|---|---|---|---|---|---|
| T-669 | 导入采集商品状态展示与筛选 | DONE | 7 |
|
2026-07-20 |
T-669 导入采集商品状态展示与筛选
问题 / 背景
商品状态已经在 tasks.product_status/product_status_note/product_status_at 保存,①「导入采集」却只显示处理阶段,顶部「状态」下拉实际也只筛选待采集、已采集、已生成等处理阶段。运营无法在采集页直观看出哪些商品已在架、未上架、审核中,或尚未检测;两个不同维度都称为“状态”也容易误操作。
方案
- 在①任务表新增「商品状态」列,位于「阶段」右侧;现有「阶段」继续表示工作流进度,不复用或替换其含义。
- ①筛选行在现有处理阶段下拉左侧新增「商品状态」下拉,并把既有标签「状态」改为「处理状态」。商品状态选项固定为「全部商品状态、架上商品、未上架、审核中、状态未知、待检测」。
- 显示和筛选以原始
tasks.product_status区分:normal显示「架上商品」、unlisted显示「未上架」、reviewing显示「审核中」、显式unknown显示「状态未知」、NULL/空白显示「待检测」。不得把未检测的空值在①列表里伪装为真实的「状态未知」。 - 商品状态使用语义色:架上商品为成功绿,审核中为警示橙,未上架为错误红或深红,状态未知/待检测为中性灰;不能只依赖颜色,文字必须始终完整显示。保留已有阶段色。
- 商品状态列 tooltip 显示
product_status_note;历史批次自动迁移的normal必须能看到「历史批次默认按架上商品处理(未实时检测)」,让用户区分默认值与实时检测快照。检测时间存在时可追加简短检测时间。 - 商品状态和处理状态筛选为叠加关系,并与批次、店铺、商品 ID、未匹配筛选继续共同生效;刷新后按现有页面习惯保留可用选择。表格列宽调整为商品状态/阶段按内容宽度,商品 ID 和账号等主信息保留可读宽度,避免新增列后五列平均拉伸而截断。
验收标准
- ①列表显示「商品状态」列,并能正确区分架上商品、未上架、审核中、状态未知和待检测;阶段列仍正确显示待采集、已采集、已生成等工作流状态。
- 商品状态下拉位于「处理状态」左侧;两项筛选可叠加,且继续与批次、店铺、商品 ID 筛选共同生效。
- 历史默认正常记录显示「架上商品」,tooltip 明确其未实时检测语义;真实
unknown与 NULL/空白的「待检测」不混淆。 - 筛选、刷新、采集、回写、生成和更新既有行为不回归;不改变商品状态的写入时机、历史迁移规则或③更新安全预检。
tests/test_gui.py和模型相关测试覆盖状态列展示、tooltip、商品状态筛选与处理状态叠加筛选。
验证
py -3.10 -m unittest discover -s tests -p "test_gui.py"
py -3.10 -m unittest discover -s tests
py -3.10 -m ruff check app tests main.py
py -3.10 -m compileall app main.py
git diff --check
非目标
- 不新增 SQLite 字段,不修改商品状态检测、Chrome/CDP、AI 调用、Excel 或③更新流程。
- 不在②、③新增新的商品状态列或筛选控件;它们继续沿用现有生成/更新前的状态安全规则。
执行记录
- 在
product_status增加仅供界面筛选/展示使用的原始状态区分:NULL/空白为「待检测」,显式unknown仍为「状态未知」,不改变生成和更新预检的空状态安全语义。 - ①任务表新增商品状态列、语义色和状态备注/检测时间 tooltip;顶部新增商品状态筛选,原「状态」改名为「处理状态」,筛选与批次、店铺、商品 ID、处理状态叠加。
- 更新①路由文档,并补充表格展示、历史默认备注、组合筛选和运行中禁用的 GUI 回归测试。
- 验证通过:
py -3.10 -m unittest discover -s tests(621 项)、py -3.10 -m ruff check app tests main.py、py -3.10 -m compileall app main.py、git diff --check。