## Context

导出任务能力已经具备统一 API、通用列表页面、详情页面和创建弹窗。现有列表页面通过 `scene` 搜索项区分设备、IOT 卡和订单任务，但新的产品方案要求用三个固定场景页面替代该筛选方式，并让三个页面按钮权限相互独立。

## Goals / Non-Goals

- Goals: 在导出管理下提供“导出设备”“导出IOT卡”“导出订单”三个页面。
- Goals: 三个页面固定传入各自 `scene`，去掉页面中的“导出场景”筛选。
- Goals: 三个页面及其按钮/操作使用场景级独立权限编码。
- Goals: 尽量复用现有导出任务列表和详情实现，避免复制三份完整页面逻辑。
- Non-Goals: 不新增导出任务后端 API。
- Non-Goals: 不改变创建导出任务的 `scene` 值和 `query` 快照语义。
- Non-Goals: 不调整导出任务状态流转、文件生成或下载地址生成逻辑。

## Decisions

- Decision: 使用一个可复用导出任务列表实现，通过路由配置或组件 props 注入固定场景、页面标题和权限映射。
- Rationale: 三个页面除固定 `scene` 和权限外，分页、状态筛选、时间筛选、下载、取消逻辑一致，复用可以减少重复代码和后续维护成本。

- Decision: 页面查询参数由页面固定注入 `scene`，不从搜索表单读取“导出场景”。
- Rationale: 页面已经按场景拆分，继续暴露场景筛选会造成入口语义冲突，也可能让用户在“导出设备”页面查到 IOT 卡或订单任务。

- Decision: 权限编码按场景和操作拆分，默认建议如下。
- Rationale: 用户明确要求三个界面的按钮权限编码不同；列表访问、详情、下载、取消均需要避免跨场景复用。

| 场景 | 页面访问 | 详情 | 下载 | 取消 |
| --- | --- | --- | --- | --- |
| 导出设备 | `export_task:device:list` | `export_task:device:detail` | `export_task:device:download` | `export_task:device:cancel` |
| 导出IOT卡 | `export_task:iot_card:list` | `export_task:iot_card:detail` | `export_task:iot_card:download` | `export_task:iot_card:cancel` |
| 导出订单 | `export_task:order:list` | `export_task:order:detail` | `export_task:order:download` | `export_task:order:cancel` |

- Decision: 业务列表创建导出任务按钮继续使用来源业务权限，默认建议如下。
- Rationale: 创建导出任务属于来源业务列表能力，不应因为拥有某个导出任务管理页面权限就获得业务列表导出入口。

| 入口 | 创建导出任务权限 | scene |
| --- | --- | --- |
| 设备管理 | `devices:export` | `device` |
| IOT 卡管理 | `iot_card:export` | `iot_card` |
| 订单列表 | `orders:export` | `order` |

- Decision: 详情页可继续复用同一组件，但必须根据任务场景或来源页面使用对应场景的详情、下载、取消权限。
- Rationale: 详情页面本身也包含下载和取消按钮，若继续使用通用权限会绕过三个列表页面的按钮隔离要求。

## Risks / Trade-offs

- Risk: 后端或权限配置已经发放了通用 `export_task:*` 权限，切换为场景级权限后用户可能暂时看不到页面或按钮。
- Mitigation: 实施时同步更新权限种子/菜单配置，并在上线前完成角色权限迁移或重新授权。

- Risk: 订单导出场景提案正在独立推进，可能继续给旧“导出列表”增加订单筛选。
- Mitigation: 实施本变更前先合并范围，保留 `scene=order` 和订单创建入口，移除旧列表中的订单场景筛选实现。

- Risk: 详情页直接通过 URL 打开时缺少来源页面上下文。
- Mitigation: 详情页读取任务详情后按返回的 `scene` 计算对应权限，缺少该场景详情权限时展示无权限提示并阻止后续按钮操作。

## Migration Plan

1. 增加三条导出任务列表路由和菜单项，删除或隐藏旧通用“导出列表”入口。
2. 将导出任务列表改造成固定场景列表，移除“导出场景”搜索项和冗余场景列。
3. 为三页分别注入固定 `scene`、标题和场景级权限映射。
4. 调整导出任务详情页和行操作的权限判断，改用任务场景对应权限。
5. 同步订单导出入口，确保订单导出任务进入“导出订单”页面查看。
6. 更新后端/菜单权限配置并完成角色授权迁移。

## Open Questions

- 最终权限编码是否采用本设计建议，还是需要对齐后端已有权限命名规范。
- 旧通用导出列表路由是否直接移除，还是短期隐藏并重定向到用户有权限的第一个场景页面。
