2.4 KiB
2.4 KiB
Tasks
后端实现(customer_equipment)
- Task 1: 客户设备台账实体与 DTO
- 1.1 新建
server/src/entity/customer_equipment.entity.ts(含 building 关联,timestamps:false) - 1.2 新建
server/src/dto/customer_equipment.dto.ts(class-validator 校验、字段白名单)
- 1.1 新建
- Task 2: 客户设备台账 Service
- 2.1 新建
server/src/service/customer_equipment.service.ts:分页列表(customer_id/building_id/type/keyword 过滤)、详情、创建、更新、删除 - 2.2 设备编码唯一性(EQ+日期+序号自动生成)校验;数据按客户归属做权限隔离
- 2.1 新建
- Task 3: 客户设备台账 Controller 与路由注册
- 3.1 新建
server/src/controller/customer_equipment.controller.ts,路由前缀/api/customer-equipments - 3.2 全部查询使用 Sequelize 参数绑定([Op.like]/[Op.in]),杜绝 SQL 拼接
- 3.1 新建
后端实现(smart_device)
- Task 4: 智电设备型号实体、DTO、Service、Controller
- 4.1 新建实体/dto/service/controller(
/api/smart-devices),分页 CRUD,类型 device_type 字典
- 4.1 新建实体/dto/service/controller(
后端安全与 APP 兼容
- Task 5: 鉴权接入与接口标准化
- 5.1 设备端点经全局 auth + rbac 中间件(rbac.middleware 新增两条 PERMISSION_MAP 映射)
- 5.2 接口返回统一 JSON(code/message/data 结构);权限码 customer-equipments→device:list、smart-devices→device:model
- 5.3 rbac 中间件保证无 token→401、无权限→403
前端实现
- Task 6: 前端 API 封装
- 6.1 新建
client/src/api/device.ts(customerEquipmentApi + smartDeviceApi,REST 封装)
- 6.1 新建
- Task 7: 客户设备台账页面
- 7.1 新建
client/src/views/device/equipment/index.vue:列表、搜索、增删改、照片上传,样式参考客户管理模块 - 7.2 新建
client/src/views/device/smart-device/index.vue:型号目录 CRUD(Tab 容器页切换)
- 7.1 新建
- Task 8: 路由与菜单
- 8.1 更新
client/src/router/index.ts:/device由 Placeholder 改为views/device/index.vue(保留 permission:device:list) - 8.2 前端全模块未使用 v-html,统一 Vue 插值转义防 XSS
- 8.1 更新
Task Dependencies
- [Task 4] 的 DTO/Controller 结构以 [Task 1-3] 为参考范式实现
- [Task 7-8] 依赖 [Task 6]
- [Task 5] 依赖 [Task 3][Task 4] 完成后统一接入