59 lines
3.9 KiB
Markdown
59 lines
3.9 KiB
Markdown
---
|
||||
|
|
id: T-663
|
|||
|
|
title: 采集与生成范围确认弹窗可读性与语义色
|
|||
|
|
status: TODO
|
|||
|
|
phase: 7
|
|||
|
|
deps: [T-662b, T-662c]
|
|||
|
|
created: 2026-07-18
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# T-663 采集与生成范围确认弹窗可读性与语义色
|
|||
|
|
|
|||
|
|
## 问题 / 背景
|
|||
|
|
|
|||
|
|
①「导入采集」的商品状态范围确认目前直接使用 `QMessageBox`。三个较长中文按钮由平台样式横向安排,窗口未设置稳定最小宽度,在较窄窗口或高系统缩放下会截断选项文字。`采集所有状态的商品` 同时使用 `DestructiveRole` 和错误红色,视觉语义接近删除或不可逆操作;实际它只是扩大本轮采集范围,可能增加耗时但不消耗 AI 点数。②「生成所有状态的商品」也应使用一致的范围选择语义;它会额外消耗点数,但同样不是删除操作。
|
|||
|
|
|
|||
|
|
## 方案
|
|||
|
|
|
|||
|
|
- 提供可复用的中文“商品状态范围”专用对话框,供①采集和②生成调用;不继续依赖 `QMessageBox` 的平台按钮横向排布。
|
|||
|
|
- 对话框使用稳定的最小内容宽度(不小于 520px)、可换行说明文字和纵向全宽按钮。窗口可随内容增大,不设置会导致文字再次被裁切的固定最大宽度;在 Windows 100%/125%/150% 缩放下三个按钮均完整显示。
|
|||
|
|
- 保持三项业务选择、返回值和键盘安全性不变:
|
|||
|
|
- ①:`只采集状态正常的商品`(默认) / `采集所有状态的商品` / `取消`;
|
|||
|
|
- ②:`只生成状态正常的商品`(默认) / `生成所有状态的商品` / `取消`;
|
|||
|
|
- 回车只触发默认“正常状态”选项,Esc/关闭触发取消;本轮选择不保存为下次默认值。
|
|||
|
|
- 默认“正常状态”选项使用现有主操作视觉;“所有状态”选项改为警示橙色描边(复用 `COLOR_WARNING = #bc4c00`),并使用非破坏性 `ActionRole` 或等价的自定义操作语义,不再使用 `DestructiveRole`、错误红或“危险”措辞;“取消”保持中性样式。
|
|||
|
|
- ①说明保留“可能增加采集时间,但不消耗 AI 点数”;②说明保留“非正常状态也会调用 AI,可能额外消耗点数”。成本和范围风险由说明文字清晰表达,不借用删除语义。
|
|||
|
|
- 保留既有按钮 objectName,或为替换后的按钮提供等价稳定 objectName,避免现有 GUI 自动化测试失效;两处调用只接收稳定策略代码 `normal_only/all/None`,不改变 Worker、状态检测、计划指纹、运行日志、计费和③更新蝦皮的逻辑。
|
|||
|
|
|
|||
|
|
## 验收标准
|
|||
|
|
|
|||
|
|
- [ ] ①和②范围确认弹窗在常见 Windows 缩放下完整显示三项中文选项,不出现省略号、裁切或横向拥挤。
|
|||
|
|
- [ ] ①“所有状态”显示警示橙色描边而非红色;②采用同一语义色,默认正常选项仍最突出,取消为中性。
|
|||
|
|
- [ ] 默认选择、回车、Esc/关闭、三种返回值以及每轮不记忆范围策略的现有行为不回归。
|
|||
|
|
- [ ] ①“所有状态”不被呈现为删除/不可逆,仍明确提示只增加采集时间且不消耗 AI 点数;②仍明确提示可能额外消耗点数。
|
|||
|
|
- [ ] 不改 `CollectWorker` / `GenerateWorker` 的状态范围、任务计划、并发、重试、日志和计费行为;③更新蝦皮不受影响。
|
|||
|
|
|
|||
|
|
## 测试与文档
|
|||
|
|
|
|||
|
|
- `tests/test_gui.py` 覆盖①②对话框最小宽度、三个完整按钮文案、默认焦点、回车/取消、两种范围返回值、警示色与非破坏性按钮角色。
|
|||
|
|
- 更新 `docs/routes.md`、`docs/04-architecture.md` 与 `docs/api.md` 中①②范围确认的显示与语义说明。
|
|||
|
|
|
|||
|
|
## 验证
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
py -3.10 -m unittest tests.test_gui
|
|||
|
|
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
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 非目标
|
|||
|
|
|
|||
|
|
- 不新增商品状态筛选列、常驻范围设置或“强制更新异常商品”入口。
|
|||
|
|
- 不改变①采集或②生成是否处理异常商品的业务规则,不改变 cmhub 计费、数据库字段、CDP 或③更新蝦皮流程。
|
|||
|
|
|
|||
|
|
## 执行记录
|
|||
|
|
|
|||
|
|
- 待实现。
|