Files
luo 2a8f4e40d6
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 5m19s
feat: 新增导出
2026-06-16 11:35:45 +08:00

3.4 KiB
Raw Permalink Blame History

1. Proposal Review

  • 1.1 确认导出按钮权限编码IoT 卡管理使用 iot_card:export,设备管理使用 devices:export
  • 1.2 确认导出任务管理权限编码:使用 export_task:listexport_task:detailexport_task:downloadexport_task:cancel
  • 1.3 确认导出格式默认 xlsx,并允许用户在弹窗中切换 xlsx / csv
  • 1.4 确认 IoT 卡和设备列表现有筛选参数作为导出任务 query 传给后端。

2. API And Types

  • 2.1 新增导出任务状态、场景、格式、列表项、详情、创建请求、取消响应等 TypeScript 类型。
  • 2.2 新增 ExportTaskService,实现列表、创建、详情、取消接口。
  • 2.3 在 API 和类型入口文件导出新增模块。
  • 2.4 对齐统一响应结构 codemsgtimestampdata 和分页结构 pagesizetotalitems

3. Reusable Export Dialog

  • 3.1 新增可复用创建导出任务弹窗组件,支持传入 scene、当前列表查询条件和默认导出格式。
  • 3.2 弹窗中明确展示导出规则说明:导出规则基于列表中的检索条件全量导出。
  • 3.3 提交时调用创建导出任务接口,并在成功后提示任务已创建。
  • 3.4 确保弹窗确认按钮和触发按钮均受对应权限控制。

4. Business Entry Points

  • 4.1 在 IoT 卡管理页增加导出按钮,打开弹窗时默认 scene=iot_card,并传入当前筛选条件快照。
  • 4.2 在设备管理页增加导出按钮,打开弹窗时默认 scene=device,并传入当前筛选条件快照。
  • 4.3 确保重置筛选、分页切换、重新搜索后导出使用最新检索条件。

5. Export Task List Page

  • 5.1 在资产管理下新增“导出管理”分组和“导出列表”路由、菜单、路由别名。
  • 5.2 导出列表支持分页、场景、状态、创建开始时间、创建结束时间筛选。
  • 5.3 表格展示任务编号、场景、状态、进度、格式、行数、分片、错误信息和时间字段;列表不展示文件 key。
  • 5.4 任务编号支持点击进入导出任务详情页,行操作支持下载已完成任务、取消待处理/处理中任务。
  • 5.5 下载操作必须先调用详情接口获取 download_url,且仅在已完成任务可用。
  • 5.6 取消操作必须调用取消接口,并在成功后刷新列表。

6. Permissions And UX

  • 6.1 为所有新增按钮和行操作添加权限编码检查。
  • 6.2 无权限时不显示对应入口,不依赖禁用态作为唯一保护。
  • 6.3 对创建、详情、下载、取消失败提供稳定错误提示,不破坏列表渲染。

7. Verification

  • 7.1 验证 IoT 卡管理页可按当前筛选条件创建 iot_card 导出任务。
  • 7.2 验证设备管理页可按当前筛选条件创建 device 导出任务。
  • 7.3 验证导出列表分页和筛选参数与接口契约一致,且文件 key 不在列表字段中展示。
  • 7.4 验证点击任务编号进入详情页,已完成任务可通过详情接口获取下载地址并下载。
  • 7.5 验证待处理/处理中任务可取消,已完成/失败/已取消任务不可取消。
  • 7.6 验证所有新增按钮和操作在无权限时不可见。
  • 7.7 运行类型检查和相关 lint新增文件 lint 通过,整仓构建受既有 TypeScript 债务阻塞。