diff --git a/docs/task/131-PDD任务表全选反选和详情列调整.md b/docs/task/131-PDD任务表全选反选和详情列调整.md new file mode 100644 index 0000000..c965b7f --- /dev/null +++ b/docs/task/131-PDD任务表全选反选和详情列调整.md @@ -0,0 +1,65 @@ +# 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)