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

3.5 KiB
Raw Blame History

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 字体目录警告,不影响自动测试结果。

相关提交

  • cc4c1c4 feat: 优化任务表批量选择和详情入口 (#131)