feat: 七月迭代公共状态与异步任务交互
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 5m59s

This commit is contained in:
luo
2026-07-24 11:48:02 +08:00
parent 15122e225a
commit a0c44ff538
14 changed files with 677 additions and 63 deletions

View File

@@ -0,0 +1,44 @@
## 1. Contract And Model
- [ ] 1.1 确认设备批量分配、批量订购和导出任务创建响应均返回稳定的 `task_id`
- [ ] 1.2 确认三类任务按 `task_id` 查询详情的接口路径、状态字段和失败明细字段。
- [x] 1.3 新增统一任务状态、进度、错误摘要和任务恢复类型,兼容各业务字段别名。
- [x] 1.4 更新导出任务列表和详情类型,补充 `task_id``total_count``success_count``failed_count``error_code``error_summary``updated_at`
## 2. Shared Interaction
- [ ] 2.1 实现统一加载中、空数据、无权限、接口失败和重试状态的展示规则。
- [x] 2.2 实现五态任务状态映射,并明确终态为已完成、已失败或已取消。
- [ ] 2.3 实现统一任务进度展示,支持总数、成功数、失败数和失败明细。
- [ ] 2.4 实现任务创建后的 `task_id` 持久化、刷新恢复和失效任务清理。
- [x] 2.5 实现 2 秒、3 秒、5 秒递增且最大 10 秒的轮询调度。
- [x] 2.6 实现页面不可见暂停轮询、恢复可见立即刷新和组件卸载清理。
## 3. Business Pages
- [ ] 3.1 接入设备批量分配页面,创建成功后进入统一任务交互流程。
- [ ] 3.2 接入批量订购页面,创建成功后进入统一任务交互流程。
- [x] 3.3 接入导出任务列表和详情页面,统一展示任务进度、失败摘要和更新时间。
- [ ] 3.4 保证部分成功任务仍展示为已完成,并显示成功数与失败数,不引入新状态。
- [ ] 3.5 保证页面刷新或重新进入时恢复任务,不重复提交创建请求。
## 4. Error And Permission Handling
- [x] 4.1 403 响应展示无权限状态并停止自动重试。
- [x] 4.2 瞬时接口失败保留已有任务数据和用户输入,并提供明确的手动重试入口。
- [x] 4.3 任务失败优先展示 `error_summary`,不直接展示 `error_code` 或底层技术错误。
- [ ] 4.4 验证无权限用户无法看到或触发对应批量操作、任务详情和重试操作。
## 5. Verification
- [ ] 5.1 覆盖五态及部分成功的单元测试。
- [ ] 5.2 覆盖轮询延迟、终态停止、页面隐藏暂停和恢复立即刷新测试。
- [ ] 5.3 覆盖页面刷新恢复任务及避免重复创建测试。
- [ ] 5.4 覆盖 403、瞬时失败、任务失败和安全错误文案测试。
- [x] 5.5 运行类型检查、lint并对已接入的导出任务页面进行回归验证。
## Implementation Notes
- 设备批量分配当前仍由 `/api/admin/devices/allocate` 同步返回结果,未返回 `task_id`,因此未接入异步轮询。
- 当前订单页面仅提供单笔订单创建,仓库中未发现批量订购创建接口或任务详情接口,因此未新增虚构的批量任务流程。
- 设备批量分配和批量订购需待后端补充异步任务创建及详情契约后继续实施 1.1、1.2、3.1、3.2、3.4、3.5、4.4 及相关测试。