Files
cmautobuy/docs/task/131-PDD任务表全选反选和详情列调整.md
T

66 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 131 PDD 任务表增加全选和反选并移除详情列
- 类型:需求
- 父级大工单:#1
- 所属 MVP / 版本:#2 Client 可运行任务闭环
- 状态:已完成,用户验收通过
- 日期:2026-08-11
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/131
## 背景与目标
PDD 任务表已有逐行勾选和批量操作,但任务较多时逐条勾选效率低,最后的“操作 / 详情”列也占用横向空间。本任务增加全选和反选,并在保留详情入口的前提下移除详情列。
## 最终方案
- “全选”和“反选”只处理当前已加载的真实任务,忽略空白占位行。
- 全选后新领取或继续增量加载的任务默认不勾选,避免删除或重新上报范围自动扩大。
- 勾选继续使用 `remote_task_id`;批量修改后一次刷新复选框列并发送一次勾选变化信号。
- 没有真实任务,或重新执行、重新上报、删除正在运行时,禁用全选和反选。
- 删除“操作 / 详情”列。双击任务行的非复选框区域,或选中行后按 Enter,仍可打开详情;复选框只改变勾选状态。
- 宽布局在 1460px 及以上使用单行命令区;较窄布局将筛选和批量操作分成三行,避免按钮拥挤。
方案的功能范围没有变化;实施时补充了 1460px 响应式断点和紧凑三行布局这一实现细节。
## 改了哪些
- `client/src/pdd_ui.py`:增加全选、反选和忙碌状态控制,移除详情列,保留双击 / Enter 详情入口。
- `client/test/test_pdd_ui.py`:覆盖全选、反选、占位行、增量加载、响应式布局、忙碌状态和详情入口。
- `docs/client/00-glossary.md`:修正不再适用的详情列委托示例。
- `docs/client/01-requirements.md`:更新任务详情入口描述。
- `docs/client/05-ui-specification.md`:更新命令区、表格列、批量选择和键盘交互规范。
## 验收结果
| 验收标准 | 结果 |
|---|---|
| 有任务时可全选和反选,空表及批量忙碌时禁用 | 通过 |
| 只处理当前已加载真实任务,不处理占位行 | 通过 |
| 后续增量加载任务默认不勾选 | 通过 |
| 使用 `remote_task_id` 并准确更新已选数量和操作按钮 | 通过 |
| 搜索清空勾选、普通刷新保留有效勾选 | 通过 |
| 移除“操作 / 详情”列 | 通过 |
| 双击或 Enter 仍可查看详情,复选框不打开详情 | 通过 |
| 现有重新执行、重新上报、删除规则不回归 | 通过 |
| Client 全量自动测试通过,未启用真实下单 | 通过 |
## 测试
- 执行的命令:
```powershell
C:/Python310/python.exe -m py_compile src/pdd_ui.py
$env:QT_QPA_PLATFORM="offscreen"
C:/Python310/python.exe -m unittest discover -s test -p "test_pdd_ui.py" -v
C:/Python310/python.exe -m unittest discover -s test -v
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.quit()"
Remove-Item Env:QT_QPA_PLATFORM
```
- 结果:PDD UI 针对性测试 10 项通过;Client 全量 364 项通过;主窗口输出 `OK`;`git diff --check` 通过;1000px 和 1500px 离屏截图未发现按钮重叠。
- **没验证到的部分**:未在真实 Windows 桌面人工验证浅色、深色、高对比度、100%–200% DPI、Narrator 以及鼠标和键盘操作。测试环境有既有的 PyQt5 字体目录警告,不影响自动测试结果。
## 相关提交
- `cc4c1c4` feat: 优化任务表批量选择和详情入口 (#131)