index.ts 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import request from '@/config/axios'
  2. // IoT 设备 VO
  3. export interface DeviceVO {
  4. id: number // 设备 ID,主键,自增
  5. deviceKey: string // 设备唯一标识符,全局唯一,用于识别设备
  6. deviceName: string // 设备名称,在产品内唯一,用于标识设备
  7. productId: number // 产品 ID,关联 iot_product 表的 id
  8. productKey: string // 产品 Key,关联 iot_product 表的 product_key
  9. deviceType: number // 设备类型:0 - 直连设备,1 - 网关子设备,2 - 网关设备
  10. nickname: string // 设备备注名称,供用户自定义备注
  11. gatewayId: number // 网关设备 ID,子设备需要关联的网关设备 ID
  12. status: number // 设备状态:0 - 未激活,1 - 在线,2 - 离线,3 - 已禁用
  13. statusLastUpdateTime: Date // 设备状态最后更新时间
  14. lastOnlineTime: Date // 最后上线时间
  15. lastOfflineTime: Date // 最后离线时间
  16. activeTime: Date // 设备激活时间
  17. ip: string // 设备的 IP 地址
  18. firmwareVersion: string // 设备的固件版本
  19. deviceSecret: string // 设备密钥,用于设备认证,需安全存储
  20. mqttClientId: string // MQTT 客户端 ID
  21. mqttUsername: string // MQTT 用户名
  22. mqttPassword: string // MQTT 密码
  23. authType: string // 认证类型(如一机一密、动态注册)
  24. latitude: number // 设备位置的纬度,范围 -90.000000 ~ 90.000000
  25. longitude: number // 设备位置的经度,范围 -180.000000 ~ 180.000000
  26. areaId: number // 地区编码,符合国家地区编码标准,关联地区表
  27. address: string // 设备详细地址
  28. serialNumber: string // 设备序列号
  29. }
  30. // IoT 设备 API
  31. export const DeviceApi = {
  32. // 查询IoT 设备分页
  33. getDevicePage: async (params: any) => {
  34. return await request.get({ url: `/iot/device/page`, params })
  35. },
  36. // 查询IoT 设备详情
  37. getDevice: async (id: number) => {
  38. return await request.get({ url: `/iot/device/get?id=` + id })
  39. },
  40. // 新增IoT 设备
  41. createDevice: async (data: DeviceVO) => {
  42. return await request.post({ url: `/iot/device/create`, data })
  43. },
  44. // 修改IoT 设备
  45. updateDevice: async (data: DeviceVO) => {
  46. return await request.put({ url: `/iot/device/update`, data })
  47. },
  48. // 删除IoT 设备
  49. deleteDevice: async (id: number) => {
  50. return await request.delete({ url: `/iot/device/delete?id=` + id })
  51. },
  52. // 导出IoT 设备 Excel
  53. exportDevice: async (params) => {
  54. return await request.download({ url: `/iot/device/export-excel`, params })
  55. }
  56. }