3.5 KiB
3.5 KiB
131 PDD 任务表增加全选和反选并移除详情列
- 类型:需求
- 父级大工单:#1
- 所属 MVP / 版本:#2 Client 可运行任务闭环
- 状态:已完成
- 日期:2026-08-11
- Gitea 工单:#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 全量自动测试通过,未启用真实下单 | 通过 |
测试
-
执行的命令:
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 字体目录警告,不影响自动测试结果。
相关提交
cc4c1c4feat: 优化任务表批量选择和详情入口 (#131)