Files
one-pipe-system/openspec/changes/add-enterprise-device-authorization/proposal.md
sexygoat 31440b2904
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 4m53s
fetch(modify):修改原来的bug
2026-01-31 11:18:37 +08:00

3.4 KiB

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.jsonen.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)