deviceManager.ts 2.67 KB
import { defHttp } from '/@/utils/http/axios';
import {
  DeviceModel,
  DeviceProfileModel,
  DeviceProfileQueryParam,
  DeviceQueryParam,
} from '/@/api/device/model/deviceModel';

enum DeviceManagerApi {
  /**
   * 设备URL
   */
  DEVICE_URL = '/device',
  /**
   * 设备配置URL
   */
  DEVICE_PROFILE_URL = '/deviceProfile',

  DEVICE_PROFILE_URL_ME = '/deviceProfile/me/list',

  DEVICE_ALARM_URL = '/alarm',

  DEVICE_CREDENTIALS = '/device/credentials',
}

export const devicePage = (params: DeviceQueryParam) => {
  return defHttp.get<DeviceModel>({
    url: DeviceManagerApi.DEVICE_URL,
    params,
  });
};

/**
 * 分页查询设备配置页面
 * @param params pageSize page name
 */
export const deviceProfilePage = (params: DeviceProfileQueryParam) => {
  return defHttp.get<DeviceProfileModel>({
    url: DeviceManagerApi.DEVICE_PROFILE_URL,
    params,
  });
};
/**
 * 删除设备配置
 * @param ids 删除的ids
 */
export const deleteDeviceProfile = (ids: string[]) => {
  return defHttp.delete({
    url: DeviceManagerApi.DEVICE_PROFILE_URL,
    data: {
      ids: ids,
    },
  });
};

/**
 * 删除设备
 * @param ids 删除的ids
 */
export const deleteDevice = (ids: string[]) => {
  return defHttp.delete({
    url: DeviceManagerApi.DEVICE_URL,
    data: {
      ids: ids,
    },
  });
};

/**
 * 查询设备配置
 * @param params pageSize page name
 */
export const deviceProfile = () => {
  return defHttp.get({
    url: DeviceManagerApi.DEVICE_PROFILE_URL_ME,
  });
};

// 创建或编辑设备
export const createOrEditDevice = (data) => {
  return defHttp.post({
    url: DeviceManagerApi.DEVICE_URL,
    data,
  });
};

// 查询设备详情
export const getDeviceDetail = (id: string) => {
  return defHttp.get({
    url: DeviceManagerApi.DEVICE_URL + `/${id}`,
  });
};

// 查询设备详情中的告警
export const getDeviceAlarm = (params?: DeviceProfileQueryParam) => {
  return defHttp.get({
    url: DeviceManagerApi.DEVICE_ALARM_URL,
    params,
  });
};

// 如果是flag为true 就是清除报警,否则是处理报警
export const clearOrAckAlarm = (id: string, flag: boolean) => {
  return defHttp.post(
    {
      url: `${DeviceManagerApi.DEVICE_ALARM_URL}/${id}/${flag ? 'clear' : 'ack'}`,
    },
    {
      joinPrefix: false,
    }
  );
};

// 获取设备凭证详情
export const getDeviceToken = (id: string) => {
  return defHttp.get(
    {
      url: `${DeviceManagerApi.DEVICE_URL}/${id}/credentials`,
    },
    {
      joinPrefix: false,
    }
  );
};

// 保存设备凭证详情

export const saveDeviceToken = (data) => {
  return defHttp.post(
    {
      url: DeviceManagerApi.DEVICE_CREDENTIALS,
      data,
    },
    {
      joinPrefix: false,
    }
  );
};