device_alert_rule.ts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import axios from 'axios';
  2. import { DeviceAlert, DeviceAlertRule } from "../../share/monitorTypes.ts";
  3. // 告警相关响应类型
  4. interface DeviceAlertDataResponse {
  5. data: DeviceAlert[];
  6. total: number;
  7. page: number;
  8. pageSize: number;
  9. }
  10. interface DeviceAlertResponse {
  11. data: DeviceAlert;
  12. message?: string;
  13. }
  14. interface AlertDeleteResponse {
  15. message: string;
  16. }
  17. // 设备告警规则API接口定义
  18. export const DeviceAlertRuleAPI = {
  19. // 获取设备告警规则
  20. getDeviceAlertRules: async (params?: {
  21. page?: number,
  22. limit?: number,
  23. device_id?: number,
  24. rule_type?: string
  25. }): Promise<DeviceAlertDataResponse> => {
  26. try {
  27. const response = await axios.get(`/device-alert-rules`, { params });
  28. return response.data;
  29. } catch (error) {
  30. throw error;
  31. }
  32. },
  33. // 获取单个设备告警规则
  34. getDeviceAlertRule: async (id: number): Promise<DeviceAlertResponse> => {
  35. try {
  36. const response = await axios.get(`/device-alert-rules/${id}`);
  37. return response.data;
  38. } catch (error) {
  39. throw error;
  40. }
  41. },
  42. // 创建设备告警规则
  43. createDeviceAlertRule: async (data: Partial<DeviceAlertRule>): Promise<DeviceAlertResponse> => {
  44. try {
  45. const response = await axios.post(`/device-alert-rules`, data);
  46. return response.data;
  47. } catch (error) {
  48. throw error;
  49. }
  50. },
  51. // 更新设备告警规则
  52. updateDeviceAlertRule: async (id: number, data: Partial<DeviceAlertRule>): Promise<DeviceAlertResponse> => {
  53. try {
  54. const response = await axios.put(`/device-alert-rules/${id}`, data);
  55. return response.data;
  56. } catch (error) {
  57. throw error;
  58. }
  59. },
  60. // 删除设备告警规则
  61. deleteDeviceAlertRule: async (id: number): Promise<AlertDeleteResponse> => {
  62. try {
  63. const response = await axios.delete(`/device-alert-rules/${id}`);
  64. return response.data;
  65. } catch (error) {
  66. throw error;
  67. }
  68. }
  69. };