| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- 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<DeviceMonitorDataResponse> => {
- 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<DeviceMonitorResponse> => {
- try {
- const response = await axios.get(`/monitor/data/${id}`);
- return response.data;
- } catch (error) {
- throw error;
- }
- },
-
- // 创建监控数据
- createMonitor: async (data: Partial<DeviceMonitorData>): Promise<MonitorCreateResponse> => {
- try {
- const response = await axios.post(`/monitor/data`, data);
- return response.data;
- } catch (error) {
- throw error;
- }
- },
-
- // 更新监控数据
- updateMonitor: async (id: number, data: Partial<DeviceMonitorData>): Promise<MonitorUpdateResponse> => {
- try {
- const response = await axios.put(`/monitor/data/${id}`, data);
- return response.data;
- } catch (error) {
- throw error;
- }
- },
-
- // 删除监控数据
- deleteMonitor: async (id: number): Promise<MonitorDeleteResponse> => {
- 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;
- }
- }
|