Agent 任务记录下拉刷新与按范围同步原型 #99

Closed
opened 2026-08-26 15:33:01 +08:00 by ila · 4 comments
Owner

所属与来源

  • 父 MVP:#86 Android Agent 设备端任务中心与现场运维。
  • 关联:#90 当前设备任务历史;#98 状态 Tab 下拉检查新任务。
  • 来源:用户于 2026-08-26 确认采集、采购 Tab 去掉固定“刷新”按钮,改为下拉刷新;设置页增加按指定天数同步当前设备采集与采购任务记录的入口。
  • 类型:Android / 任务记录 / 列表交互 / 同步。
  • 当前阶段:只建立工单并更新 Agent 原型;用户审核原型通过前不得编写 Android、Server、API 或数据库生产代码。

目标

减少任务列表首屏占用和手动刷新操作成本,同时为设备现场维护提供一个明确、可控的“按时间范围同步记录”入口。

已确认方案

采集与采购 Tab 下拉刷新

  • 去掉采集 Tab 和采购 Tab 正常列表顶部的固定“刷新”按钮。
  • 仅当列表已经滚动到顶部时响应下拉。
  • 下拉只刷新当前 Tab、当前筛选、当前编号搜索条件和当前页,不触发另一个 Tab。
  • 提示状态:
    • 下拉未达阈值:下拉刷新
    • 达到阈值:松开刷新
    • 请求中:正在刷新…
    • 成功且有变化:已更新
    • 成功但无变化:已是最新
    • 失败:刷新失败,请重试
  • 请求中合并重复手势,不重复发起请求。
  • 加载失败页仍保留可见“重试”按钮;不能要求用户只能靠隐藏手势恢复。
  • 空列表也允许下拉刷新。
  • 下拉刷新只更新记录,不领取任务、不执行任务、不重置、不重新采集或重新采购。

设置 Tab:任务记录同步

  • 新增“任务记录”区块。
  • 新增“记录范围”,可选最近 1、3、7、15、30 天,默认 7 天,最大 30 天。
  • 新增“同步记录”按钮,一次同步当前 Device Token 对应设备的采集和采购任务记录。
  • 同步中按钮禁用并显示 正在同步…,避免重复请求。
  • 显示最近同步时间,以及简短结果:
    • 全部成功:同步完成:采集 12 条,采购 8 条
    • 没有记录:同步完成:所选范围内暂无记录
    • 部分成功:部分同步完成:采集已更新,采购同步失败
    • 全部失败:同步失败,请检查网络后重试
  • 结果必须有文字,不只依赖颜色;失败后按钮恢复可操作。

数据与能力边界

  • 只同步当前 Device Token 所属设备的数据,不允许查看其他设备。
  • 单向服务端 → Agent,不向服务端回写任务结果。
  • 第一阶段同步任务列表、分页摘要和数量;任务详情仍按需从服务端读取,不建立完整详情的离线镜像。
  • 不保存 Token 明文、完整规则快照、PDD URL、地址、控件树或截图。
  • 复用 #90 已有最近 30 天历史能力;后续实施可为采集/采购列表接口增加 days=1..30 或等价范围参数,继续保留分页上限和数据最小化。
  • 本功能不领取、创建、重置、重试或执行任务,不打开 PDD、不修改地址、不创建订单、不支付。
  • #98 的状态 Tab 下拉仍是“立即检查并领取任务”;本工单的采集/采购下拉仅刷新记录,两种手势必须使用不同提示,避免混淆。

原型范围

复用 Agent QuantUX App 6a8d4607191a826306a7efec,保持 390×844 深色 Material 风格和四 Tab:

  1. 采集记录:正常列表,无固定刷新按钮,可演示下拉刷新;
  2. 采购记录:正常列表,无固定刷新按钮,可演示下拉刷新;
  3. 设置:任务记录区块,默认最近 7 天;
  4. 设置:同步中;
  5. 设置:同步完成;
  6. 设置:部分同步失败。

原型需保留搜索、筛选、列表和底部 Tab 的现有视觉层级。交互控件至少 48dp,邻近操作保持足够间距。

设计证据门禁

  • 完整原型形成后导出到 prototypes/99/v1/index.html(若实际工单号不同,以实际编号为准)。
  • 检查入口、主要交互、状态文字、离线资源完整性。
  • 工单记录 QuantUX App、线上链接、本地路径、版本、验证结果和提交。
  • 用户明确审核 v1 通过前,不得进入生产实施。

后续实施范围(仅在原型通过后)

  • Agent 采集/采购列表接入下拉刷新容器和状态反馈。
  • 设置页记录范围与同步入口。
  • 需要时扩展最近任务列表契约的范围参数,并补齐服务端/Android 测试。
  • 验证设备隔离、范围边界、分页、重复触发、部分失败和数据最小化。

验收标准

  • 采集和采购正常列表均无固定刷新按钮。
  • 两个列表均可演示下拉刷新及完成/失败反馈。
  • 加载失败页保留可见“重试”。
  • 设置页可选 1/3/7/15/30 天,默认 7 天。
  • 可演示同步中、成功、无记录、部分失败和全部失败的清晰反馈。
  • 同步仅作用于当前设备的采集/采购记录。
  • 无领取、执行、重置、重新采集、重新采购、PDD、创建订单或支付能力。
  • QuantUX 交互可点击,本地 HTML 可离线浏览。
  • 用户明确审核原型通过。

前置依赖与并行性

  • 依赖 #90 已实现的当前设备历史读取能力。
  • 与 #98 状态 Tab 下拉检查任务相互独立,可并行设计;生产实施时需统一手势状态和文案风格。
  • 不阻塞 #92 采集结果 Outbox。

文档影响

原型阶段无长期事实变化,只记录工单与版本化 HTML,跳过 Wiki。生产实现获批后,如 API、缓存、设置或运行行为变化,再更新 Android Agent API 契约、业务规则和架构/运行说明。

## 所属与来源 - 父 MVP:#86 Android Agent 设备端任务中心与现场运维。 - 关联:#90 当前设备任务历史;#98 状态 Tab 下拉检查新任务。 - 来源:用户于 2026-08-26 确认采集、采购 Tab 去掉固定“刷新”按钮,改为下拉刷新;设置页增加按指定天数同步当前设备采集与采购任务记录的入口。 - 类型:Android / 任务记录 / 列表交互 / 同步。 - 当前阶段:**只建立工单并更新 Agent 原型;用户审核原型通过前不得编写 Android、Server、API 或数据库生产代码。** ## 目标 减少任务列表首屏占用和手动刷新操作成本,同时为设备现场维护提供一个明确、可控的“按时间范围同步记录”入口。 ## 已确认方案 ### 采集与采购 Tab 下拉刷新 - 去掉采集 Tab 和采购 Tab 正常列表顶部的固定“刷新”按钮。 - 仅当列表已经滚动到顶部时响应下拉。 - 下拉只刷新当前 Tab、当前筛选、当前编号搜索条件和当前页,不触发另一个 Tab。 - 提示状态: - 下拉未达阈值:`下拉刷新` - 达到阈值:`松开刷新` - 请求中:`正在刷新…` - 成功且有变化:`已更新` - 成功但无变化:`已是最新` - 失败:`刷新失败,请重试` - 请求中合并重复手势,不重复发起请求。 - 加载失败页仍保留可见“重试”按钮;不能要求用户只能靠隐藏手势恢复。 - 空列表也允许下拉刷新。 - 下拉刷新只更新记录,不领取任务、不执行任务、不重置、不重新采集或重新采购。 ### 设置 Tab:任务记录同步 - 新增“任务记录”区块。 - 新增“记录范围”,可选最近 1、3、7、15、30 天,默认 7 天,最大 30 天。 - 新增“同步记录”按钮,一次同步当前 Device Token 对应设备的采集和采购任务记录。 - 同步中按钮禁用并显示 `正在同步…`,避免重复请求。 - 显示最近同步时间,以及简短结果: - 全部成功:`同步完成:采集 12 条,采购 8 条` - 没有记录:`同步完成:所选范围内暂无记录` - 部分成功:`部分同步完成:采集已更新,采购同步失败` - 全部失败:`同步失败,请检查网络后重试` - 结果必须有文字,不只依赖颜色;失败后按钮恢复可操作。 ## 数据与能力边界 - 只同步当前 Device Token 所属设备的数据,不允许查看其他设备。 - 单向服务端 → Agent,不向服务端回写任务结果。 - 第一阶段同步任务列表、分页摘要和数量;任务详情仍按需从服务端读取,不建立完整详情的离线镜像。 - 不保存 Token 明文、完整规则快照、PDD URL、地址、控件树或截图。 - 复用 #90 已有最近 30 天历史能力;后续实施可为采集/采购列表接口增加 `days=1..30` 或等价范围参数,继续保留分页上限和数据最小化。 - 本功能不领取、创建、重置、重试或执行任务,不打开 PDD、不修改地址、不创建订单、不支付。 - #98 的状态 Tab 下拉仍是“立即检查并领取任务”;本工单的采集/采购下拉仅刷新记录,两种手势必须使用不同提示,避免混淆。 ## 原型范围 复用 Agent QuantUX App `6a8d4607191a826306a7efec`,保持 390×844 深色 Material 风格和四 Tab: 1. 采集记录:正常列表,无固定刷新按钮,可演示下拉刷新; 2. 采购记录:正常列表,无固定刷新按钮,可演示下拉刷新; 3. 设置:任务记录区块,默认最近 7 天; 4. 设置:同步中; 5. 设置:同步完成; 6. 设置:部分同步失败。 原型需保留搜索、筛选、列表和底部 Tab 的现有视觉层级。交互控件至少 48dp,邻近操作保持足够间距。 ## 设计证据门禁 - 完整原型形成后导出到 `prototypes/99/v1/index.html`(若实际工单号不同,以实际编号为准)。 - 检查入口、主要交互、状态文字、离线资源完整性。 - 工单记录 QuantUX App、线上链接、本地路径、版本、验证结果和提交。 - **用户明确审核 v1 通过前,不得进入生产实施。** ## 后续实施范围(仅在原型通过后) - Agent 采集/采购列表接入下拉刷新容器和状态反馈。 - 设置页记录范围与同步入口。 - 需要时扩展最近任务列表契约的范围参数,并补齐服务端/Android 测试。 - 验证设备隔离、范围边界、分页、重复触发、部分失败和数据最小化。 ## 验收标准 - [ ] 采集和采购正常列表均无固定刷新按钮。 - [ ] 两个列表均可演示下拉刷新及完成/失败反馈。 - [ ] 加载失败页保留可见“重试”。 - [ ] 设置页可选 1/3/7/15/30 天,默认 7 天。 - [ ] 可演示同步中、成功、无记录、部分失败和全部失败的清晰反馈。 - [ ] 同步仅作用于当前设备的采集/采购记录。 - [ ] 无领取、执行、重置、重新采集、重新采购、PDD、创建订单或支付能力。 - [ ] QuantUX 交互可点击,本地 HTML 可离线浏览。 - [ ] 用户明确审核原型通过。 ## 前置依赖与并行性 - 依赖 #90 已实现的当前设备历史读取能力。 - 与 #98 状态 Tab 下拉检查任务相互独立,可并行设计;生产实施时需统一手势状态和文案风格。 - 不阻塞 #92 采集结果 Outbox。 ## 文档影响 原型阶段无长期事实变化,只记录工单与版本化 HTML,跳过 Wiki。生产实现获批后,如 API、缓存、设置或运行行为变化,再更新 Android Agent API 契约、业务规则和架构/运行说明。
Author
Owner

原型 v1 已完成,等待审核

  • QuantUX App:6a8d4607191a826306a7efec
  • 在线入口:进入原“设置”页,点击底部 演示任务记录同步
  • 本地 HTML:prototypes/99/v1/index.html
  • Git 提交:50df464(已推送 main)

覆盖内容

  • 采集记录:取消固定刷新按钮;列表顶部下拉、正在刷新。
  • 采购记录:取消固定刷新按钮;列表顶部下拉、正在刷新。
  • 下拉刷新明确为只更新当前列表,不领取、执行、重置、重新采集或重新采购。
  • 设置页新增“任务记录”,展示最近 1/3/7/15/30 天,默认 7 天。
  • 同步状态:同步中、成功、所选范围无记录、部分失败、全部失败及重新同步。
  • 同步只针对当前设备的采集和采购记录。
  • 加载失败页继续沿用现有可见“重试”恢复方式,不设计纯手势恢复。
  • 无 PDD 操作、地址修改、创建订单或支付入口。

UI/UX 检查

  • 延续 390×844 深色 Material 风格和四 Tab。
  • 按钮触控高度至少 48dp,邻近操作保留间距。
  • 成功、无数据、部分失败和失败都有文字说明,不只依赖颜色。
  • 同步中按钮显示禁用态,避免重复触发。

验证

  • QuantUX 校验:PASS。
  • 模型:52 个页面、1171 个组件、352 条交互线;运行时错误 0,不支持组件 0。
  • #99 新增 10 个页面;采集/采购新增页面固定刷新按钮均为 0,均有下拉 HotSpot。
  • 本地 HTML:522351 bytes,单文件,外部资源 0。
  • python dev_scripts/harness.py check --strict:通过。
  • 未修改 Android、Server、API、数据库或 Wiki。

当前停在原型审核门禁,用户明确审核 v1 通过前不实施生产代码。

## 原型 v1 已完成,等待审核 - QuantUX App:[`6a8d4607191a826306a7efec`](https://qux.ilapage.cn/#/apps/6a8d4607191a826306a7efec.html) - 在线入口:进入原“设置”页,点击底部 **演示任务记录同步** - 本地 HTML:`prototypes/99/v1/index.html` - Git 提交:`50df464`(已推送 `main`) ### 覆盖内容 - 采集记录:取消固定刷新按钮;列表顶部下拉、正在刷新。 - 采购记录:取消固定刷新按钮;列表顶部下拉、正在刷新。 - 下拉刷新明确为只更新当前列表,不领取、执行、重置、重新采集或重新采购。 - 设置页新增“任务记录”,展示最近 1/3/7/15/30 天,默认 7 天。 - 同步状态:同步中、成功、所选范围无记录、部分失败、全部失败及重新同步。 - 同步只针对当前设备的采集和采购记录。 - 加载失败页继续沿用现有可见“重试”恢复方式,不设计纯手势恢复。 - 无 PDD 操作、地址修改、创建订单或支付入口。 ### UI/UX 检查 - 延续 390×844 深色 Material 风格和四 Tab。 - 按钮触控高度至少 48dp,邻近操作保留间距。 - 成功、无数据、部分失败和失败都有文字说明,不只依赖颜色。 - 同步中按钮显示禁用态,避免重复触发。 ### 验证 - QuantUX 校验:PASS。 - 模型:52 个页面、1171 个组件、352 条交互线;运行时错误 0,不支持组件 0。 - #99 新增 10 个页面;采集/采购新增页面固定刷新按钮均为 0,均有下拉 HotSpot。 - 本地 HTML:522351 bytes,单文件,外部资源 0。 - `python dev_scripts/harness.py check --strict`:通过。 - 未修改 Android、Server、API、数据库或 Wiki。 当前停在原型审核门禁,用户明确审核 v1 通过前不实施生产代码。
Author
Owner

原型审核通过

用户于 2026-08-26 明确确认 #99 v1 原型通过审核。设计证据为 prototypes/99/v1/index.html,提交 50df464。

原型门禁已解除,可以按工单范围进入生产实施;#99 尚未实现 Android、Server/API 或缓存逻辑,保持开启。任何范围变化需先更新设计证据并重新确认。

## 原型审核通过 用户于 2026-08-26 明确确认 #99 v1 原型通过审核。设计证据为 `prototypes/99/v1/index.html`,提交 `50df464`。 原型门禁已解除,可以按工单范围进入生产实施;#99 尚未实现 Android、Server/API 或缓存逻辑,保持开启。任何范围变化需先更新设计证据并重新确认。
Author
Owner

实施完成,等待验收

已按审核通过的 prototypes/99/v1/index.html 实施并推送。

实现

  • Android Agent 升级为 0.8.0(versionCode 12)。
  • 采集、采购记录页取消固定刷新入口,列表顶部下拉只刷新当前 Tab、筛选、编号和当前页;请求中合并重复手势,成功/无变化/失败有文字反馈,失败页仍保留“重新加载”。
  • 设置页增加最近 1/3/7/15/30 天记录范围(默认 7 天)和“同步记录”;采集与采购独立同步,支持完整、空、部分和失败反馈及最近同步时间。
  • 新增仅含当前设备列表摘要的本地缓存;详情继续按需请求。缓存不保存 Token、规则快照、PDD URL、地址、控件树或截图。
  • 两个 Agent 历史列表接口新增 days=1..30,省略仍为 30;详情继续限制最近 30 天。服务端继续按 Device Token 隔离和分页。
  • 不包含领取、执行、重置、重试、PDD、修改地址、创建订单或支付动作。

验证

  • go test ./app/goauto/task ./app/goauto/purchase:通过,覆盖 1/3 天范围与 31 天拒绝。
  • android\\gradlew.bat testDebugUnitTest assembleDebug assembleRelease:通过。
  • .\\scripts\\verify.ps1 -Component all:通过;Web 仅有既有 30 条 lint warning、0 error。
  • python dev_scripts/harness.py check --strict:通过。
  • Wiki 已在线更新并回读:
    • Android-Agent-API-Contract 7e00ef2f741233ccf13d94f7ad31611a85bcd66e
    • Architecture-and-Code-Map 5385e32c1d860f4890150701df78437493d56e9d
    • Business-Rules-and-Glossary b5b464d6873cfa090e50492ab0066a44e0ffeb9a
    • Local-Development-and-Verification dabfb23f64bc19bee61f104cb59b21cd000f8d51
  • Wiki sync 与 sync --check:通过。
  • 实现提交:eec63a06532897d58c436bcc0f375c17372aced2,已推送 main。

未验证

  • 尚未覆盖安装到真机,也未用真实 Device Token 验证完整、空、部分失败和断网缓存场景;未触发任何正式采集、采购或订单动作。

当前停在待验收,不关闭工单。

## 实施完成,等待验收 已按审核通过的 `prototypes/99/v1/index.html` 实施并推送。 ### 实现 - Android Agent 升级为 0.8.0(versionCode 12)。 - 采集、采购记录页取消固定刷新入口,列表顶部下拉只刷新当前 Tab、筛选、编号和当前页;请求中合并重复手势,成功/无变化/失败有文字反馈,失败页仍保留“重新加载”。 - 设置页增加最近 1/3/7/15/30 天记录范围(默认 7 天)和“同步记录”;采集与采购独立同步,支持完整、空、部分和失败反馈及最近同步时间。 - 新增仅含当前设备列表摘要的本地缓存;详情继续按需请求。缓存不保存 Token、规则快照、PDD URL、地址、控件树或截图。 - 两个 Agent 历史列表接口新增 `days=1..30`,省略仍为 30;详情继续限制最近 30 天。服务端继续按 Device Token 隔离和分页。 - 不包含领取、执行、重置、重试、PDD、修改地址、创建订单或支付动作。 ### 验证 - `go test ./app/goauto/task ./app/goauto/purchase`:通过,覆盖 1/3 天范围与 31 天拒绝。 - `android\\gradlew.bat testDebugUnitTest assembleDebug assembleRelease`:通过。 - `.\\scripts\\verify.ps1 -Component all`:通过;Web 仅有既有 30 条 lint warning、0 error。 - `python dev_scripts/harness.py check --strict`:通过。 - Wiki 已在线更新并回读: - Android-Agent-API-Contract `7e00ef2f741233ccf13d94f7ad31611a85bcd66e` - Architecture-and-Code-Map `5385e32c1d860f4890150701df78437493d56e9d` - Business-Rules-and-Glossary `b5b464d6873cfa090e50492ab0066a44e0ffeb9a` - Local-Development-and-Verification `dabfb23f64bc19bee61f104cb59b21cd000f8d51` - Wiki `sync` 与 `sync --check`:通过。 - 实现提交:`eec63a06532897d58c436bcc0f375c17372aced2`,已推送 `main`。 ### 未验证 - 尚未覆盖安装到真机,也未用真实 Device Token 验证完整、空、部分失败和断网缓存场景;未触发任何正式采集、采购或订单动作。 当前停在待验收,不关闭工单。
Author
Owner

用户于 2026-08-28 明确确认本工单验收通过。按项目流程记录验收结论并关闭工单;本次仅更新工单状态,无新增长期文档事实,不重复同步 Wiki。

用户于 2026-08-28 明确确认本工单验收通过。按项目流程记录验收结论并关闭工单;本次仅更新工单状态,无新增长期文档事实,不重复同步 Wiki。
ila closed this issue 2026-08-28 15:07:13 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/goauto#99