# 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`)