2024-09-21 09:15:27 +08:00
|
|
|
|
import request from '@/config/axios'
|
|
|
|
|
|
2024-10-01 19:29:24 +08:00
|
|
|
|
// IoT 设备 VO
|
2024-09-21 09:15:27 +08:00
|
|
|
|
export interface DeviceVO {
|
|
|
|
|
id: number // 设备 ID,主键,自增
|
2024-10-01 19:29:24 +08:00
|
|
|
|
deviceKey: string // 设备唯一标识符
|
|
|
|
|
deviceName: string // 设备名称
|
|
|
|
|
productId: number // 产品编号
|
|
|
|
|
productKey: string // 产品标识
|
|
|
|
|
deviceType: number // 设备类型
|
|
|
|
|
nickname: string // 设备备注名称
|
|
|
|
|
gatewayId: number // 网关设备 ID
|
|
|
|
|
status: number // 设备状态
|
2024-09-21 09:15:27 +08:00
|
|
|
|
statusLastUpdateTime: Date // 设备状态最后更新时间
|
|
|
|
|
lastOnlineTime: Date // 最后上线时间
|
|
|
|
|
lastOfflineTime: Date // 最后离线时间
|
|
|
|
|
activeTime: Date // 设备激活时间
|
2024-09-22 15:42:20 +08:00
|
|
|
|
createTime: Date // 创建时间
|
2024-09-21 09:15:27 +08:00
|
|
|
|
ip: string // 设备的 IP 地址
|
|
|
|
|
firmwareVersion: string // 设备的固件版本
|
|
|
|
|
deviceSecret: string // 设备密钥,用于设备认证,需安全存储
|
|
|
|
|
mqttClientId: string // MQTT 客户端 ID
|
|
|
|
|
mqttUsername: string // MQTT 用户名
|
|
|
|
|
mqttPassword: string // MQTT 密码
|
2024-10-01 19:29:24 +08:00
|
|
|
|
authType: string // 认证类型
|
|
|
|
|
latitude: number // 设备位置的纬度
|
|
|
|
|
longitude: number // 设备位置的经度
|
|
|
|
|
areaId: number // 地区编码
|
2024-09-21 09:15:27 +08:00
|
|
|
|
address: string // 设备详细地址
|
|
|
|
|
serialNumber: string // 设备序列号
|
2024-12-14 18:41:35 +08:00
|
|
|
|
groupIds?: number[] // 添加分组 ID
|
2024-09-21 09:15:27 +08:00
|
|
|
|
}
|
|
|
|
|
|
2024-09-22 13:17:12 +08:00
|
|
|
|
export interface DeviceUpdateStatusVO {
|
|
|
|
|
id: number // 设备 ID,主键,自增
|
2024-10-01 19:29:24 +08:00
|
|
|
|
status: number // 设备状态
|
2024-09-22 13:17:12 +08:00
|
|
|
|
}
|
|
|
|
|
|
2024-11-03 00:15:44 +08:00
|
|
|
|
// IoT 设备数据 VO
|
|
|
|
|
export interface DeviceDataVO {
|
|
|
|
|
deviceId: number // 设备编号
|
|
|
|
|
thinkModelFunctionId: number // 物模型编号
|
|
|
|
|
productKey: string // 产品标识
|
|
|
|
|
deviceName: string // 设备名称
|
|
|
|
|
identifier: string // 属性标识符
|
|
|
|
|
name: string // 属性名称
|
|
|
|
|
dataType: string // 数据类型
|
|
|
|
|
updateTime: Date // 更新时间
|
|
|
|
|
value: string // 最新值
|
|
|
|
|
}
|
|
|
|
|
|
2024-11-05 23:25:47 +08:00
|
|
|
|
// IoT 设备数据 VO
|
|
|
|
|
export interface DeviceHistoryDataVO {
|
|
|
|
|
time: number // 时间
|
|
|
|
|
data: string // 数据
|
|
|
|
|
}
|
|
|
|
|
|
2024-09-22 13:17:12 +08:00
|
|
|
|
// 设备 API
|
2024-09-21 09:15:27 +08:00
|
|
|
|
export const DeviceApi = {
|
2024-09-22 13:17:12 +08:00
|
|
|
|
// 查询设备分页
|
2024-09-21 09:15:27 +08:00
|
|
|
|
getDevicePage: async (params: any) => {
|
|
|
|
|
return await request.get({ url: `/iot/device/page`, params })
|
|
|
|
|
},
|
|
|
|
|
|
2024-09-22 13:17:12 +08:00
|
|
|
|
// 查询设备详情
|
2024-09-21 09:15:27 +08:00
|
|
|
|
getDevice: async (id: number) => {
|
|
|
|
|
return await request.get({ url: `/iot/device/get?id=` + id })
|
|
|
|
|
},
|
|
|
|
|
|
2024-09-22 13:17:12 +08:00
|
|
|
|
// 新增设备
|
2024-09-21 09:15:27 +08:00
|
|
|
|
createDevice: async (data: DeviceVO) => {
|
|
|
|
|
return await request.post({ url: `/iot/device/create`, data })
|
|
|
|
|
},
|
|
|
|
|
|
2024-09-22 13:17:12 +08:00
|
|
|
|
// 修改设备
|
2024-09-21 09:15:27 +08:00
|
|
|
|
updateDevice: async (data: DeviceVO) => {
|
|
|
|
|
return await request.put({ url: `/iot/device/update`, data })
|
|
|
|
|
},
|
|
|
|
|
|
2024-09-22 13:17:12 +08:00
|
|
|
|
// 修改设备状态
|
|
|
|
|
updateDeviceStatus: async (data: DeviceUpdateStatusVO) => {
|
|
|
|
|
return await request.put({ url: `/iot/device/update-status`, data })
|
|
|
|
|
},
|
|
|
|
|
|
2024-12-14 19:43:13 +08:00
|
|
|
|
// 修改设备分组
|
|
|
|
|
updateDeviceGroup: async (data: {
|
|
|
|
|
ids: number[]
|
|
|
|
|
groupIds: number[]
|
|
|
|
|
}) => {
|
|
|
|
|
return await request.put({ url: `/iot/device/update-group`, data })
|
|
|
|
|
},
|
|
|
|
|
|
2024-12-14 19:12:28 +08:00
|
|
|
|
// 删除单个设备
|
2024-09-21 09:15:27 +08:00
|
|
|
|
deleteDevice: async (id: number) => {
|
|
|
|
|
return await request.delete({ url: `/iot/device/delete?id=` + id })
|
|
|
|
|
},
|
|
|
|
|
|
2024-12-14 19:12:28 +08:00
|
|
|
|
// 删除多个设备
|
|
|
|
|
deleteDeviceList: async (ids: number[]) => {
|
|
|
|
|
return await request.delete({ url: `/iot/device/delete-list`, params: { ids: ids.join(',') } })
|
|
|
|
|
},
|
|
|
|
|
|
2024-12-14 18:56:35 +08:00
|
|
|
|
// 导出设备
|
|
|
|
|
exportDeviceExcel: async (params: any) => {
|
|
|
|
|
return await request.download({ url: `/iot/device/export-excel`, params })
|
|
|
|
|
},
|
|
|
|
|
|
2024-09-23 23:34:21 +08:00
|
|
|
|
// 获取设备数量
|
|
|
|
|
getDeviceCount: async (productId: number) => {
|
|
|
|
|
return await request.get({ url: `/iot/device/count?productId=` + productId })
|
2024-11-03 00:15:44 +08:00
|
|
|
|
},
|
|
|
|
|
|
2024-12-14 16:10:23 +08:00
|
|
|
|
// 获取设备的精简信息列表
|
|
|
|
|
getSimpleDeviceList: async (deviceType?: number) => {
|
|
|
|
|
return await request.get({ url: `/iot/device/simple-list?`, params: { deviceType } })
|
|
|
|
|
},
|
|
|
|
|
|
2024-11-03 00:15:44 +08:00
|
|
|
|
// 获取设备属性最新数据
|
|
|
|
|
getDevicePropertiesLatestData: async (params: any) => {
|
2024-11-10 20:23:32 +08:00
|
|
|
|
return await request.get({ url: `/iot/device/data/latest`, params })
|
2024-11-05 23:25:47 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 获取设备属性历史数据
|
|
|
|
|
getDevicePropertiesHistoryData: async (params: any) => {
|
2024-11-10 20:23:32 +08:00
|
|
|
|
return await request.get({ url: `/iot/device/data/history`, params })
|
2024-09-21 09:15:27 +08:00
|
|
|
|
}
|
2024-09-22 13:17:12 +08:00
|
|
|
|
}
|