feat: 安全移除本地任务记录 (#108)
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
## 1. 设计目标
|
||||
|
||||
- 让操作人员在一个页面完成任务监控、搜索和异常定位。
|
||||
- “获取任务”“重新执行”和“重新上报”会产生外部后果;重新执行只允许单条采集任务,重新上报只重发既有 Outbox,并优先处理未发送事件。
|
||||
- “获取任务”“重新执行”和“重新上报”会产生外部后果;重新执行只允许单条采集任务,重新上报只重发既有 Outbox,并优先处理未发送事件。“删除”只软隐藏本地记录。
|
||||
- 长任务状态始终可找到,不使用连续模态弹窗打断工作。
|
||||
- 任务表格在数据增长后仍保持响应速度、稳定选择和可访问性。
|
||||
- 界面只展示任务状态,不在 Qt 主线程执行 Admin 或手机自动化。
|
||||
@@ -35,7 +35,7 @@
|
||||
```text
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ PDD 任务 │
|
||||
│ [自动获取] [类型▼] [状态▼] [关键词...] [搜索] [刷新] [已选0条] [重新执行] [重新上报] │
|
||||
│ [自动获取] [类型▼] [状态▼] [关键词...] [搜索] [刷新] [已选0条] [重新执行] [重新上报] [删除] │
|
||||
├─────────────────────────────────────────────────────────────┤
|
||||
│ 类型 │ 商品标题 │ 颜色 │ 尺码 │ 价格 │ 数量 │ 状态 │ 更新时间 │详情│
|
||||
│ │
|
||||
@@ -83,10 +83,10 @@
|
||||
|
||||
筛选条件之间采用 AND。点击搜索或在关键词输入框按 Enter 执行本地数据库查询,不请求领取任务。活动筛选必须可见,筛选无结果时保留条件并提供清除入口。
|
||||
|
||||
### 4.3 刷新、重新执行与重新上报
|
||||
### 4.3 刷新、重新执行、重新上报与删除
|
||||
|
||||
- “刷新”紧邻“搜索”右侧,只重新读取本地任务列表,不请求 Admin,也不操作手机。
|
||||
- 页面右侧显示“已选 N 条”,“重新执行”后面是“重新上报”。
|
||||
- 页面右侧显示“已选 N 条”,操作顺序是“重新执行”“重新上报”“删除”。
|
||||
- “重新执行”只在恰好勾选一条任务时启用;多选不允许批量操作手机。
|
||||
- 点击后先校验任务,再显示明确的“重新采集”确认弹窗。弹窗显示任务编号、商品标题,并说明新结果会覆盖 Client 和 Admin 的当前采集数据。“暂不重新采集”是默认聚焦的安全操作,点击该按钮、按 `Escape` 或关闭弹窗都不得启动任务。
|
||||
- 用户确认后,工作线程必须先检查已保存 Android 设备的实际连接状态,再重置任务和创建执行记录。检查失败时保留原任务状态、采集结果和执行历史。
|
||||
@@ -105,10 +105,13 @@
|
||||
- 重新上报不依赖 Android 设备,在独立工作线程中逐条提交。自动获取、重新执行或另一批上报运行时不得启动。
|
||||
- 批量完成后显示成功、失败和跳过数量。成功任务取消勾选;失败及没有结果 Outbox 的跳过任务保留勾选,方便继续处理。
|
||||
- 相同幂等键和相同内容只用于让 Admin 再次确认已接收,不代表创建新结果或覆盖 Admin 数据。
|
||||
- “删除”作用于当前勾选集。未勾选时禁用;执行前用主窗口居中的确认框显示准确数量,“暂不删除”默认聚焦,按 `Escape` 或关闭弹窗不修改数据。
|
||||
- 删除只允许已完成、失败或已取消的任务。存在待发送、发送中、发送失败 Outbox,或任一执行记录已进入不可逆阶段时,整批拒绝并显示中文原因。
|
||||
- 删除只把任务从普通列表软隐藏,不请求 Admin、不操作 Android,也不修改任务状态、执行记录或 Outbox。成功后清除对应勾选并刷新当前筛选结果。
|
||||
|
||||
## 5. 任务表格
|
||||
|
||||
表格显示的是**本机已领取的全部任务**,包括正在做的和早已做完的。已完成任务永久保留,不会被清理,所以数据只增不减——增量加载和索引是必须的,不是优化。
|
||||
表格显示的是**本机已领取且未被软隐藏的任务**,包括正在做的和早已做完的。已完成任务和审计数据永久保留;用户删除后只是不再出现在普通列表,所以数据库数据仍只增不减——增量加载和索引是必须的,不是优化。
|
||||
|
||||
使用 `qfluentwidgets.TableView`、自定义 `QAbstractTableModel` 和 Repository 查询。不得使用行号作为任务身份,也不得把完整 `pdd_data` 放入模型。
|
||||
|
||||
@@ -399,7 +402,7 @@ self.show_recoverable_error(
|
||||
|
||||
## 10. 键盘与无障碍
|
||||
|
||||
- Tab 顺序:自动获取 → 类型 → 状态 → 关键词 → 搜索 → 刷新 → 重新执行 → 重新上报 → 表格 → 状态区可操作项。
|
||||
- Tab 顺序:自动获取 → 类型 → 状态 → 关键词 → 搜索 → 刷新 → 重新执行 → 重新上报 → 删除 → 表格 → 状态区可操作项。
|
||||
- `Ctrl+F` 聚焦关键词,Enter 打开当前行详情。不绑定 `F5`——界面上没有需要刷新的远端数据。
|
||||
- 仅图标按钮必须设置准确的无障碍名称和工具提示。
|
||||
- 表单具有可见标签,占位符不能替代标签。
|
||||
|
||||
Reference in New Issue
Block a user