index.ts 1.96 KB
import {
  CreateTaskRecordType,
  GenModbusCommandType,
  GetTaskListParamsType,
  ImmediateExecuteTaskType,
  TaskRecordType,
} from './model';
import { PaginationResult } from '/#/axios';
import { defHttp } from '/@/utils/http/axios';

enum Api {
  TASK_LIST = '/task_center',
  ADD_TASK = '/task_center/add',
  UPDATE_STATE = '/task_center',
  DELETE_TASK = '/task_center',
  UPDATE_TASK = '/task_center/update',
  CANCEL_TASK = '/task_center',

  GEN_MODBUS_COMMAND = '/js/modbus',

  IMMEDIATE_EXECUTE = '/task_center/immediate/execute',
}

export const getTaskCenterList = (params: GetTaskListParamsType) => {
  return defHttp.get<PaginationResult<TaskRecordType>>({
    url: Api.TASK_LIST,
    params,
  });
};

export const createTask = (data: CreateTaskRecordType) => {
  return defHttp.post({
    url: Api.ADD_TASK,
    data,
  });
};

export const updateState = (id: string, state: number) => {
  return defHttp.put({
    url: `${Api.UPDATE_STATE}/${id}/update/${state}`,
  });
};

export const deleteTask = (ids: string[]) => {
  return defHttp.delete({
    url: Api.DELETE_TASK,
    data: { ids },
  });
};

export const updateTask = (data: CreateTaskRecordType & Record<'id', string>) => {
  return defHttp.put({
    url: Api.UPDATE_TASK,
    data,
  });
};

/**
 * @description 取消任务
 * @param data
 * @returns
 */
export const cancelTask = (
  data: Record<'id' | 'tbDeviceId', string> & Record<'allow', boolean>
) => {
  return defHttp.put({
    url: `${Api.CANCEL_TASK}/${data.id}/update/${data.tbDeviceId}/${data.allow}`,
  });
};

/**
 * @description 生成modbus指令
 * @param data
 * @returns {string}
 */
export const genModbusCommand = (data: GenModbusCommandType) => {
  return defHttp.post<string>(
    {
      url: Api.GEN_MODBUS_COMMAND,
      data,
    },
    { withShareToken: true }
  );
};

export const immediateExecute = (data: ImmediateExecuteTaskType) => {
  return defHttp.post<Record<'data', boolean>>({
    url: Api.IMMEDIATE_EXECUTE,
    params: data,
  });
};