docs: 归档任务 #39
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
# 39 PDD 任务详情窗口与颜色价格展示
|
||||
|
||||
- 类型:需求
|
||||
- 父级大工单:#1
|
||||
- 所属 MVP / 版本:#2 / MVP
|
||||
- 状态:已实现,待验收
|
||||
- 日期:2026-08-08
|
||||
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/39
|
||||
|
||||
## 背景与目标
|
||||
|
||||
任务列表原来会发出“查看详情”信号,但事件层没有处理,因此用户无法查看 SQLite 中已经保存的完整采集结果。本任务增加只读详情窗口,把颜色和尺码分区展示,并让每个颜色后面直接显示采集价格。
|
||||
|
||||
## 最终方案
|
||||
|
||||
- 沿用任务表格已有的“详情”、双击行和 Enter 三个入口,不修改表格模型,也不把完整 `pdd_data` 放入表格。
|
||||
- 事件层收到任务编号后,通过 `TaskRepository.get_task()` 读取一条完整记录,再打开可调整大小的非模态窗口。
|
||||
- 相同任务只创建一个详情窗口;重复打开时切回已有窗口。主窗口退出时关闭全部详情窗口。
|
||||
- 颜色放在上方,尺码放在下方,并按采集顺序去重。
|
||||
- 一个颜色只有一个有效价格时显示单价;存在多个价格时显示最低价到最高价并标记“价格不一致”;没有价格时显示“价格未采集”。不可用颜色另外显示“不可用”。
|
||||
- 老数据没有 `dimensions` 时,从 `skus.options` 恢复颜色和尺码,避免详情完全为空。
|
||||
- 使用 PyQt-Fluent-Widgets 的卡片、标签、流式布局、滚动区域和按钮;窗口支持 Esc 和“关闭”按钮返回列表。
|
||||
- 本任务只读本地数据,不请求 Admin,也不操作 Android 设备。
|
||||
|
||||
## 改了哪些
|
||||
|
||||
- `client/src/task_detail_view.py`:新增详情展示数据、颜色价格聚合规则和非模态详情窗口。
|
||||
- `client/src/pdd_ui_event.py`:接收详情信号、读取 Repository、复用窗口并处理关闭生命周期。
|
||||
- `client/test/test_task_detail_view.py`:测试去重、价格范围、缺价、旧数据回退、空数据和窗口创建。
|
||||
- `client/test/test_pdd_ui_event.py`:测试详情窗口打开、非模态、相同任务复用和任务不存在。
|
||||
- `docs/client/05-ui-specification.md`:记录详情入口、颜色价格和尺码展示规范。
|
||||
|
||||
## 验收结果
|
||||
|
||||
| 验收标准 | 结果 |
|
||||
|---|---|
|
||||
| 点击“详情”、双击任务行或按 Enter 均可进入同一详情流程 | 通过(复用现有三个信号入口) |
|
||||
| 详情窗口非模态、可调整大小,相同任务不重复创建 | 通过 |
|
||||
| 颜色位于尺码上方,每个颜色旁显示价格或明确缺价 | 通过 |
|
||||
| 同色多价格显示范围并提示不一致 | 通过 |
|
||||
| 颜色、尺码保持采集顺序并去重 | 通过 |
|
||||
| 不可用、空数据和旧格式数据有明确结果 | 通过 |
|
||||
| 表格模型不保存完整 `pdd_data` | 通过 |
|
||||
| SQLite 读取失败或任务不存在时不打开空窗口 | 通过 |
|
||||
| 语法检查、完整回归和主窗口离屏冒烟通过 | 通过 |
|
||||
|
||||
## 测试
|
||||
|
||||
- 执行的命令:
|
||||
|
||||
```powershell
|
||||
cd client
|
||||
C:/Python310/python.exe -m py_compile src/task_detail_view.py src/pdd_ui_event.py test/test_task_detail_view.py test/test_pdd_ui_event.py
|
||||
$env:QT_QPA_PLATFORM="offscreen"
|
||||
C:/Python310/python.exe -m unittest discover -s test
|
||||
C:/Python310/python.exe -c "from src.ui_main import MainWindow; from PyQt5.QtWidgets import QApplication; app=QApplication([]); w=MainWindow(); print('OK'); w.close(); app.processEvents(); app.quit()"
|
||||
Remove-Item Env:QT_QPA_PLATFORM
|
||||
```
|
||||
|
||||
- 结果:语法检查通过;完整 Client 测试共 162 项全部通过;主窗口离屏冒烟输出 `OK`;未新增依赖。离屏环境仍会输出现有 Qt 字体目录警告,不影响结果。
|
||||
- **没验证到的部分**:没有在实体 Windows 显示器上人工检查浅色、深色、100%~200% 缩放和大量颜色时的实际排版;没有连接真机,因为详情窗口只读取本地 SQLite,不需要设备。
|
||||
|
||||
## 相关提交
|
||||
|
||||
- `cb323d3` 实现 PDD 任务详情窗口
|
||||
Reference in New Issue
Block a user