# Change: 企业设备授权管理

## Why

当前系统中已存在企业客户管理和企业卡授权功能,但缺少企业设备授权管理能力。企业客户需要能够查看和管理被授权的设备列表,运营人员需要能够将设备授权给企业客户使用,并支持撤销授权操作。

根据业务需求文档 (`docs/企业设备授权.md`),需要在资产管理模块下新增"企业设备列表"功能,实现以下核心能力:

1. **授权设备给企业** - 支持批量授权,最多100个设备号
2. **查看企业设备列表** - 支持分页和按设备号搜索
3. **撤销设备授权** - 支持批量撤销授权

## What Changes

新增企业设备授权管理功能,包括:

### 类型定义

- 新增 `src/types/api/enterpriseDevice.ts` 文件
- 定义设备列表项、查询参数、分页结果类型
- 定义授权/撤销请求和响应类型
- 在 `src/types/api/index.ts` 中导出新类型

### API 服务层

- 扩展 `EnterpriseService` 类,新增3个方法:
  - `allocateDevices(enterpriseId, data)` - POST 授权设备
  - `getEnterpriseDevices(enterpriseId, params)` - GET 设备列表
  - `recallDevices(enterpriseId, data)` - POST 撤销授权

### 视图层

- 新增 `src/views/asset-management/enterprise-devices/index.vue` 页面
- 实现设备列表展示 (表格、分页、搜索)
- 实现授权设备对话框 (支持批量输入设备号)
- 实现撤销授权功能 (二次确认)
- 实现操作结果展示 (成功/失败统计)

### 路由配置

- 在 `src/router/routesAlias.ts` 添加路由别名
- 在 `src/router/routes/asyncRoutes.ts` 的资产管理模块下添加子路由

### 国际化

- 在 `src/locales/langs/zh.json` 和 `en.json` 添加中英文翻译
- 包含菜单、表单、表格、对话框、提示消息等所有文案

## Impact

- **新增模块**: 企业设备授权管理
- **影响范围**:
  - 新增文件: `enterpriseDevice.ts`, `enterprise-devices/index.vue`
  - 扩展文件: `enterprise.ts` (API), `routesAlias.ts`, `asyncRoutes.ts`, `zh.json`, `en.json`, `index.ts` (types)
- **依赖关系**:
  - 依赖现有的 `EnterpriseService` 基础设施
  - 依赖已实现的设备管理模块
  - 后端 API 已就绪
- **向后兼容性**: 完全兼容,不影响现有功能
- **数据迁移**: 无需数据迁移

## Breaking Changes

无破坏性变更。这是一个纯新增功能,不修改现有代码逻辑。

## Risks

- **低风险**: 功能独立,不影响现有企业卡授权功能
- **低风险**: API 已定义清晰,类型安全有保障
- **中风险**: 需要确保批量操作时的用户体验良好 (处理大量设备号输入和结果展示)

## Alternatives Considered

1. **复用企业卡授权页面** - 不可行,设备和卡的数据结构和操作逻辑不同
2. **在设备管理页面添加企业授权功能** - 不符合业务流程,企业授权属于资产管理范畴
3. **使用单个设备号输入而非批量** - 不满足业务需求,运营人员需要批量授权能力

## Open Questions

1. ✅ 设备号输入格式 - 支持换行或逗号分隔
2. ✅ 最大批量数量 - API 限制最多100个设备号
3. ✅ 失败情况处理 - API 返回成功/失败统计及失败原因列表
4. ✅ 设备列表排序 - 按授权时间倒序

## References

- API 文档: `docs/企业设备授权.md`
- 相关 OpenSpec 变更: `add-device-management`
- 参考实现: 企业卡授权功能 (`enterprise-cards/index.vue`)
