Files
luo a0c44ff538
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 5m59s
feat: 七月迭代公共状态与异步任务交互
2026-07-24 11:48:02 +08:00

35 lines
2.3 KiB
Markdown

# Change: 统一公共状态与异步任务交互
## Why
设备批量分配、批量订购和导出页面目前可能分别处理加载、失败、进度和任务恢复,容易产生不同的状态语义和重试行为。需要建立一套可复用的公共交互规则,让用户在不同批量操作页面获得一致的反馈,并避免页面刷新或切换后重复创建任务。
## What Changes
- 为设备批量分配、批量订购和导出页面统一加载中、空数据、无权限、接口失败和重试状态。
- 统一异步任务的五态语义:待处理、处理中、已完成、已失败、已取消。
- 统一任务进度数据展示:任务状态、总数、成功数、失败数和失败明细。
- 明确部分成功的表达方式:任务进入已完成状态,通过成功数和失败数表达部分成功,不新增部分成功状态。
- 创建任务成功后保存 `task_id`,页面刷新或重新进入时恢复原任务详情,不重复创建任务。
- 对待处理和处理中任务按 2 秒、3 秒、5 秒递增轮询,之后最大间隔 10 秒;进入终态后停止轮询。
- 页面不可见时暂停轮询,恢复可见后立即刷新一次。
- 统一 403、瞬时接口失败和任务失败的用户反馈及重试规则。
-`GET /api/admin/export-tasks``GET /api/admin/export-tasks/{id}` 增加兼容性字段契约:`task_id``total_count``success_count``failed_count``error_code``error_summary``updated_at`;原字段不删除、不改名。
## Impact
- Affected specs:
- `async-task-interaction`
- `export-task-management`
- Affected code:
- 批量分配页面及其设备、IOT 卡任务提交逻辑
- 批量订购页面及其任务提交逻辑
- 导出任务 API 类型和导出任务列表/详情页面
- 可复用异步任务状态、轮询和任务恢复逻辑
- 统一错误、空数据、无权限和重试状态组件或页面状态配置
- Dependencies:
- 后端批量分配、批量订购和导出接口必须返回可关联的 `task_id`,并提供按 `task_id` 查询任务详情的能力。
- 后端导出接口按本提案新增兼容字段,且继续保留现有字段。
- Breaking changes:
- 无。导出接口仅新增兼容字段;前端统一交互规则不改变既有任务创建接口的必填参数。