import axios from 'axios'; import { DeviceMapStats, DeviceMonitorData, DeviceStatus, DeviceTreeNode, DeviceTreeStats, MapViewDevice } from "../../share/monitorTypes.ts"; interface DeviceMonitorDataResponse { data: DeviceMonitorData[]; total: number; page: number; pageSize: number; } interface DeviceMonitorResponse { data: DeviceMonitorData; message?: string; } interface MonitorCreateResponse { data: DeviceMonitorData; message: string; } interface MonitorUpdateResponse { data: DeviceMonitorData; message: string; } interface MonitorDeleteResponse { message: string; } // 监控API接口定义 export const MonitorAPI = { // 获取监控数据 getMonitorData: async (params?: { page?: number, limit?: number, device_id?: number, device_type?: string, start_time?: string, end_time?: string }): Promise => { try { const response = await axios.get(`/monitor/data`, { params }); return response.data; } catch (error) { throw error; } }, // 获取设备树数据 getDeviceTree: async (params?: { status?: string, keyword?: string }): Promise<{ data: DeviceTreeNode[] }> => { try { const response = await axios.get(`/monitor/devices/tree`, { params }); return response.data; } catch (error) { throw error; } }, // 获取设备树统计数据 getDeviceTreeStats: async (): Promise<{ data: DeviceTreeStats }> => { try { const response = await axios.get(`/monitor/devices/tree/statistics`); return response.data; } catch (error) { throw error; } }, // 获取设备地图数据 getDeviceMapData: async (params?: { type_code?: string, device_status?: DeviceStatus, keyword?: string, device_id?: number }): Promise<{ data: MapViewDevice[], stats: DeviceMapStats }> => { try { const response = await axios.get(`/monitor/devices/map`, { params }); return response.data; } catch (error) { throw error; } }, // 获取单个监控数据 getMonitor: async (id: number): Promise => { try { const response = await axios.get(`/monitor/data/${id}`); return response.data; } catch (error) { throw error; } }, // 创建监控数据 createMonitor: async (data: Partial): Promise => { try { const response = await axios.post(`/monitor/data`, data); return response.data; } catch (error) { throw error; } }, // 更新监控数据 updateMonitor: async (id: number, data: Partial): Promise => { try { const response = await axios.put(`/monitor/data/${id}`, data); return response.data; } catch (error) { throw error; } }, // 删除监控数据 deleteMonitor: async (id: number): Promise => { try { const response = await axios.delete(`/monitor/data/${id}`); return response.data; } catch (error) { throw error; } } }; // 获取烟雾/水浸传感器状态 export async function getDeviceStatus(params: { device_id: number; device_type: 'smoke' | 'water'; }): Promise<{ status: 0 | 1; timestamp: string; }> { try { const response = await axios.get(`/monitor/devices/smoke-water/status`, { params }); return response.data; } catch (error) { throw error; } } // 获取烟雾/水浸传感器历史数据 export async function getDeviceHistory(params: { device_id: number; device_type: 'smoke' | 'water'; start_time: string; end_time: string; interval?: number; }): Promise<{ data: Array<{ timestamp: string; status: 0 | 1; }>; }> { try { const response = await axios.get(`/monitor/devices/smoke-water/history`, { params }); return response.data; } catch (error) { throw error; } } // 获取最新温湿度数据 export async function getLatestTemperatureHumidity(params: { device_id?: number; } = {}): Promise<{ temperature: number; humidity: number; timestamp: string; }> { try { const response = await axios.get(`/monitor/data/latest-temperature-humidity`, { params }); return response.data; } catch (error) { throw error; } }