import Request from '@/utils/request/request-util';

/**
 * low_code 流程任务api
 *
 */
export class FlowTaskApi {
  /**
   * 获取流程的摘要详情
   * @param {*} params
   * @returns
   */
  static getSummaryDetail(params) {
    return Request.getAndLoadData('/runtimeInstance/getSummaryDetail', params);
  }
  /**
   * 获取用户待办和待阅任务数量
   * @param {*} params
   * @returns
   */
  static getUserWaitToTaskNum(params) {
    return Request.getAndLoadData('/ruTask/getUserWaitToTaskNum', params);
  }

  /**
   * 获取用户的所有流程模型列表
   * @param {*} params
   * @returns
   */
  static getUserModelList(params) {
    return Request.get('/flowModel/getUserModelList', params);
  }

  /**
   * 获取流程草稿列表（带分页）
   * @param {*} params
   * @returns
   */
  static flowEngineDraftPage(params) {
    return Request.get('/flowEngineDraft/page', params);
  }

  /**
   * 获取用户待办任务
   * @param {*} params
   * @returns
   */
  static getUserTasksRuTask(params) {
    return Request.post('/ruTask/getUserTasks', params);
  }

  /**
   * 获取流程的审批日志列表
   * @param {*} params
   * @returns
   */
  static getInstanceApprovalLog(params) {
    return Request.get('/ruTask/getInstanceApprovalLog', params);
  }

  /**
   * 批量同意某些任务
   * @param {*} params
   * @returns
   */
  static ruTaskBatchAgree(params) {
    return Request.post('/ruTask/batchAgree', params);
  }
  
  /**
   * 同意审批某个任务
   * @param {*} params
   * @returns
   */
  static ruTaskAgree(params) {
    return Request.post('/ruTask/singleAgree', params);
  }

  /**
   * 退回某个任务
   * @param {*} params
   * @returns
   */
  static ruTaskBack(params) {
    return Request.post('/ruTask/back', params);
  }

  /**
   * 获取当前任务可以退回的节点列表
   * @param {*} params
   * @returns
   */
  static getBackReNodeList(params) {
    return Request.getAndLoadData('/ruTask/getBackReNodeList', params);
  }

  /**
   * 设置某个任务为已阅
   * @param {*} params
   * @returns
   */
  static ruTaskRead(params) {
    return Request.post('/ruTask/read', params);
  }

  /**
   * 设置多个任务为已阅
   * @param {*} params
   * @returns
   */
  static batchRead(params) {
    return Request.post('/ruTask/batchRead', params);
  }

  /**
   * 拒绝某个待办
   * @param {*} params
   * @returns
   */
  static ruTaskReject(params) {
    return Request.post('/ruTask/reject', params);
  }

  /**
   * 撤销流程
   * @param {*} params
   * @returns
   */
  static ruTaskCancel(params) {
    return Request.post('/ruTask/cancel', params);
  }

  /**
   * 流程流转的日志-获取列表
   *
   * @author nxy
   * @date 2021/4/1 16:07
   */
  static flowEngineLogList(params) {
    return Request.getAndLoadData('/flowEngineLog/list', params);
  }

  /**
   * 获取待办任务、已办任务等界面的任务详情可操作的按钮
   *
   * @author nxy
   * @date 2021/4/1 16:07
   */
  static getTaskButtonPermission(params) {
    return Request.getAndLoadData('/ruTask/getTaskButtonPermission', params);
  }

  /**
   * 获取待办任务、已办任务等界面的表单数据
   *
   * @author nxy
   * @date 2021/4/1 16:07
   */
  static getTaskFormData(params) {
    return Request.getAndLoadData('/ruTask/getTaskFormData', params);
  }

  /**
   * 流程预测
   *
   * @author nxy
   * @date 2021/4/1 16:07
   */
  static runtimeInstancePredict(params) {
    return Request.post('/runtimeInstance/predict', params);
  }

  /**
   * 流程开始
   *
   * @author nxy
   * @date 2021/4/1 16:07
   */
  static beginHandle(params) {
    return Request.post('/ruTask/beginHandle', params);
  }

  /**
   * 流程转交
   *
   * @author nxy
   * @date 2021/4/1 16:07
   */
  static ruTaskDelegate(params) {
    return Request.post('/ruTask/delegate', params);
  }

  /**
   * 流程加签
   *
   * @author nxy
   * @date 2021/4/1 16:07
   */
  static ruTaskAddSignTask(params) {
    return Request.post('/ruTask/addSignTask', params);
  }

  /**
   * 流程撤回
   *
   * @author nxy
   * @date 2021/4/1 16:07
   */
  static recall(params) {
    return Request.post('/ruTask/recall', params);
  }

  /**
   * 流程抄送
   *
   * @author nxy
   * @date 2021/4/1 16:07
   */
  static copyTo(params) {
    return Request.post('/ruTask/copyTo', params);
  }
  
  /**
   * 获取当前任务对应节点的审批的类型
   *
   * @author nxy
   * @date 2021/4/1 16:07
   */
  static getTaskNodeApproverNodeType(params) {
    return Request.get('/ruTask/getTaskNodeApproverNodeType', params);
  }

  /**
   * 导出工作信息
   *
   * @author nxy
   * @date 2021/4/1 16:07
   */
  static exportExcel(params) {
    return Request.downLoad('/runtimeInstance/exportExcel', params);
  }

  /**
   * 获取待办、待阅（抄送我的）、已办、我发起的任务数量
   *
   * @author nxy
   * @date 2021/4/1 16:07
   */
  static getUserTotalTaskNum(params) {
    return Request.getAndLoadData('/ruTask/getUserTotalTaskNum', params);
  }
}
