iot-gateway_fontend/src/api/device.ts
Kven ea1df9d55f feat(iot): 新增设备地图功能并优化设备相关接口
- 新增设备地图页面,实现设备在地图上的展示和信息弹出
- 扩展设备接口,增加经纬度和图标字段
- 优化设备编辑页面,将产品名称改为所属产品下拉选择- 更新产品属性页面,调整属性类型为读写类型
- 添加高德地图相关依赖和类型定义
2025-02-28 20:47:07 +08:00

98 lines
2.0 KiB
TypeScript

import axios from 'axios';
import dashboard from '@/router/routes/modules/dashboard';
export interface DeviceRecord {
size: number;
current: number;
name?: string;
clientId?: string;
productId?: number;
status?: string;
isOnline?: boolean;
pageable?: string;
longitude?: number;
latitude?: number;
icon?: string;
}
export interface DeviceCreateRecord {
num?: number;
prefix?: string;
name?: string;
hardwareVersion: string;
firmwareVersion: string;
extendParams: string[];
properties: string;
productId: number;
}
export interface DeviceUpdateRecord extends DeviceCreateRecord {
id: number;
}
export interface DeviceEventRecord {
id: number;
clientId: string;
serveName: string;
params: string;
}
// 分页查询
export function queryDeviceList(data: DeviceRecord) {
return axios({
url: '/api/rest/device',
method: 'get',
params: data,
});
}
// 查看详情
export function queryDeviceDetail(id: number) {
return axios.get(`/api/rest/device/${id}`);
}
// 名称模糊查询
export function queryDeviceByName(data: any) {
return axios({
url: `/api/rest/product/fuzzy`,
method: 'get',
params: data,
});
}
// 新增
export function createDevice(data: DeviceCreateRecord) {
return axios.post(`/api/rest/device`, data);
}
// 编辑
export function updateDevice(data: DeviceUpdateRecord) {
return axios.patch(`/api/rest/device/${data.id}`, data);
}
// 删除
export function deleteDevice(id: number) {
return axios.delete(`/api/rest/device/${id}`);
}
// 查询上报
export function queryDeviceReport(clientId: number) {
return axios({
url: `/api/rest/device/record/photo`,
method: 'get',
params: clientId,
});
}
// 批量创建
export function createDeviceBatch(data: DeviceCreateRecord) {
return axios.post(`/api/rest/device/batch`, data);
}
// 手动触发事件
export function triggerEvent(data: DeviceEventRecord) {
return axios({
url: `/api/rest/device/event`,
method: 'post',
data,
});
}