127 lines
4.9 KiB
Markdown
127 lines
4.9 KiB
Markdown
# 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`
|
||
- 改用对象存储三步上传流程
|
||
1. 获取上传URL (StorageService.getUploadUrl)
|
||
2. 上传文件到对象存储 (StorageService.uploadFile)
|
||
3. 调用导入接口 (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 在所有功能开发完成后进行
|