Files
cmautobuy/docs/task/176-重新执行支持当前行兜底.md
T
2026-08-12 10:24:04 +08:00

2.9 KiB

176 重新采集和重新采购支持当前行兜底

背景与目标

原来的“重新采集”和“重新采购”只读取复选框勾选集。用户已经单击选中任务行时,仍需再次点击较小的复选框。本任务增加当前行兜底,同时保留批量勾选的明确优先级和原有采购安全门禁。

最终方案

  • 集中使用 _rerun_target_task_ids() 解析目标:存在勾选时返回全部勾选任务;没有勾选时返回当前行的稳定 remote_task_id。
  • 只要列表存在真实任务就允许点击“重新采集”和“重新采购”;没有勾选和当前行时在底部状态区提示用户先勾选或单击一行。
  • 当前行和复选框继续相互独立,重新上报和删除仍只接受勾选集。
  • 事件层、批量类型过滤、Android 设备预检、确认弹窗和采购不可逆门禁没有改动。

与建单方案的实现细节差异:不需要监听每一次当前行变化来反复启停按钮。列表存在真实任务时保持按钮可用,由点击时的统一目标解析给出兜底或提示,代码更直白,也能覆盖“尚未选择当前行”的提示场景。

改了哪些

  • client/src/pdd_ui.py:增加重新执行目标解析和缺少目标提示,调整按钮启用规则及无障碍名称。
  • client/test/test_pdd_ui.py:覆盖当前行兜底、勾选优先、缺少目标提示,以及重新上报和删除边界。
  • client/test/test_pdd_ui_event.py:更新有真实任务时重新执行按钮可用的既有断言。
  • docs/client/05-ui-specification.md:记录勾选优先、当前行兜底的稳定交互规则。

验收结果

验收标准 结果
勾选任务时只使用勾选集 通过
无勾选时使用当前行的稳定任务编号 通过
无勾选且无当前行时显示明确提示 通过
单击当前行不改变勾选状态 通过
重新上报和删除仍只作用于勾选集 通过
原有类型过滤、设备预检及采购安全门禁不变 通过
占位空行不成为操作目标 通过

测试

  • 执行的命令:在 client 目录执行 $env:QT_QPA_PLATFORM='offscreen'; C:/Python310/python.exe -m unittest discover -s test -p 'test_pdd_ui*.py'
  • 结果:68 个测试全部通过。
  • 执行的命令:在 client 目录执行 $env:QT_QPA_PLATFORM='offscreen'; C:/Python310/python.exe -m unittest discover -s test -p 'test_*.py'
  • 结果:439 个 Client 测试全部通过。
  • 没验证到的部分:未进行人工鼠标操作验收;本次没有改变真机自动化和采购执行逻辑。

相关提交

  • bb7a502 feat: 重新执行支持当前行兜底 (#176)