4.2 KiB
4.2 KiB
39 PDD 任务详情窗口与颜色价格展示
- 类型:需求
- 父级大工单:#1
- 所属 MVP / 版本:#2 / MVP
- 状态:已实现,待验收
- 日期:2026-08-08
- Gitea 工单:#39
背景与目标
任务列表原来会发出“查看详情”信号,但事件层没有处理,因此用户无法查看 SQLite 中已经保存的完整采集结果。本任务增加只读详情窗口,把颜色和尺码分区展示,并让每个颜色后面直接显示采集价格。
最终方案
- 沿用任务表格已有的“详情”、双击行和 Enter 三个入口,不修改表格模型,也不把完整
pdd_data放入表格。 - 事件层收到任务编号后,通过
TaskRepository.get_task()读取一条完整记录,再打开可调整大小的非模态窗口。 - 相同任务只创建一个详情窗口;重复打开时切回已有窗口。主窗口退出时关闭全部详情窗口。
- 颜色放在上方,尺码放在下方,并按采集顺序去重。
- 一个颜色只有一个有效价格时显示单价;存在多个价格时显示最低价到最高价并标记“价格不一致”;没有价格时显示“价格未采集”。不可用颜色另外显示“不可用”。
- 老数据没有
dimensions时,从skus.options恢复颜色和尺码,避免详情完全为空。 - 使用 PyQt-Fluent-Widgets 的卡片、标签、流式布局、滚动区域和按钮;窗口支持 Esc 和“关闭”按钮返回列表。
- 任务详情面向采购人员,
current_step在界面层转换为中文;数据库仍保存稳定英文值,未知内部值显示“未知步骤”。 - 本任务只读本地数据,不请求 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 读取失败或任务不存在时不打开空窗口 | 通过 |
| 当前步骤不向采购人员直接显示英文内部值 | 通过 |
| 语法检查、完整回归和主窗口离屏冒烟通过 | 通过 |
测试
-
执行的命令:
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 -
结果:首次实现回归 162 项通过;中文化验收修正后的完整 Client 回归共 166 项全部通过;主窗口离屏冒烟输出
OK;未新增依赖。离屏环境仍会输出现有 Qt 字体目录警告,不影响结果。 -
没验证到的部分:没有在实体 Windows 显示器上人工检查浅色、深色、100%~200% 缩放和大量颜色时的实际排版;没有连接真机,因为详情窗口只读取本地 SQLite,不需要设备。
相关提交
cb323d3实现 PDD 任务详情窗口2f83be5中文显示任务当前步骤