4.9 KiB
4.9 KiB
Implementation Tasks
1. 类型定义和API服务 (Foundation)
- 1.1 创建
src/types/api/device.ts定义所有设备相关类型- DeviceItem, DeviceQueryParams, DevicePageResult
- DeviceCardBinding, DeviceCardBindingList
- AllocateDevicesRequest/Response, RecallDevicesRequest/Response
- BindCardRequest/Response, UnbindCardResponse
- ImportDeviceRequest/Response, DeviceImportTask相关类型
- 1.2 创建
src/api/modules/device.ts实现 DeviceService- getDevices (列表)
- getDeviceById (详情)
- deleteDevice (删除)
- getDeviceCards (绑定的卡列表)
- bindCard (绑定卡)
- unbindCard (解绑卡)
- allocateDevices (批量分配)
- recallDevices (批量回收)
- importDevices (批量导入)
- getImportTasks (导入任务列表)
- getImportTaskDetail (导入任务详情)
- 1.3 在
src/api/modules/index.ts导出 DeviceService - 1.4 在
src/types/api/index.ts导出 Device 相关类型
2. 设备列表页面 (Core UI)
- 2.1 创建
src/views/asset-management/device-list/index.vue- 搜索栏:设备号、设备名称、状态、店铺、批次号、设备类型、制造商、创建时间范围
- 表格:展示设备信息,支持勾选、列筛选
- 表格列:ID、设备号、设备名称、设备型号、设备类型、制造商、最大插槽数、已绑定卡数、状态、店铺、批次号、激活时间、创建时间
- 状态使用 CommonStatus + ElSwitch 显示
- 操作列:查看详情、删除按钮(使用 ArtButtonTable)
- 2.2 实现批量操作按钮
- 批量分配:弹出对话框选择目标店铺
- 批量回收:弹出对话框确认回收
- 导入设备:跳转到设备导入页面
- 2.3 实现批量分配对话框
- 选择目标店铺(下拉搜索)
- 显示已选设备数量
- 备注输入
- 展示分配结果(成功/失败)
- 2.4 实现批量回收对话框
- 确认回收设备列表
- 备注输入
- 展示回收结果(成功/失败)
3. 设备详情页面 (Detail View)
- 3.1 创建
src/views/asset-management/device-detail/index.vue- 设备基本信息卡片(ElDescriptions)
- 绑定的卡列表表格(展示4个插槽位置)
- 返回按钮
- 3.2 实现卡绑定管理
- 绑定卡按钮:弹出对话框选择卡和插槽位置
- 解绑按钮:每个绑定记录旁边
- 显示插槽位置(1-4)
- 展示卡的基本信息(ICCID、手机号、运营商、状态)
4. 任务管理改进 (Task Management)
- 4.1 修改
src/views/asset-management/task-management/index.vue- 添加任务类型筛选:ICCID导入 / 设备导入
- 支持展示设备导入任务
- 任务列表显示任务类型标签
- 4.2 修改
src/views/asset-management/task-detail/index.vue- 根据任务类型展示不同的详情内容
- 设备导入任务:显示设备号、绑定的ICCID、失败原因
- 失败和跳过记录展示
5. 设备导入改进 (Import Enhancement)
- 5.1 修改
src/views/batch/device-import/index.vue- 改用对象存储三步上传流程
- 获取上传URL (StorageService.getUploadUrl)
- 上传文件到对象存储 (StorageService.uploadFile)
- 调用导入接口 (DeviceService.importDevices)
- CSV格式说明:device_no, device_name, device_model, device_type, max_sim_slots, manufacturer, iccid_1~iccid_4, batch_no
- 导入成功后显示任务编号,引导去任务管理查看
- 改用对象存储三步上传流程
- 5.2 优化导入记录展示
- 移除mock数据,改为真实API调用
- 点击"查看详情"跳转到任务详情页
6. 路由和导航 (Routing)
- 6.1 在
src/router/routes/asyncRoutes.ts添加路由- /asset-management/device-list (设备列表)
- /asset-management/device-detail (设备详情,带query参数id)
- 6.2 在
src/router/routesAlias.ts添加路由别名- DeviceList = '/asset-management/device-list'
- DeviceDetail = '/asset-management/device-detail'
- 6.3 在
src/locales/langs/zh.json添加翻译- assetManagement.deviceList: "设备列表"
- assetManagement.deviceDetail: "设备详情"
7. 测试和优化 (Testing & Polish)
- 7.1 功能测试
- 设备列表的搜索、分页、排序
- 批量分配和回收流程
- 设备与卡的绑定/解绑
- 设备导入完整流程
- 任务状态查看
- 7.2 边界情况处理
- 空列表状态
- 加载失败提示
- 删除确认提示
- 表单验证
- 7.3 性能优化
- 列表数据懒加载
- 防抖搜索
- 批量操作结果分页展示
- 7.4 代码审查
- TypeScript类型完整性
- 错误处理
- 代码复用性
- 注释完整性
Dependencies
- 1.x 必须先完成才能开始 2.x-6.x
- 2.1-2.2 可以并行开发
- 3.x 依赖 1.x,可与 2.x 并行
- 4.x 和 5.x 依赖 1.x,可与其他任务并行
- 6.x 可在对应页面开发完成后立即进行
- 7.x 在所有功能开发完成后进行