import { get, post } from '@huntianning/components/src/utils/request'

/**
 * 加载工作类型选项数据
*/
export function loadWorkflowTypeOptions() {
  return Promise.resolve([{
    text: '请假',
    value: 1
  }, {
    text: '上装维修',
    value: 2
  }, {
    text: '交通事故',
    value: 3
  }, {
    text: '安全作业',
    value: 4
  }, {
    text: '更换轮胎',
    value: 5
  }, {
    text: '更换泵管',
    value: 6
  }, {
    text: '底盘维修',
    value: 7
  }, {
    text: '补胎',
    value: 8
  }, {
    text: '车辆加油',
    value: 9
  }, {
    text: '上装保养',
    value: 10
  }, {
    text: '施工事故',
    value: 11
  }, {
    text: '地盘保养',
    value: 12
  }, {
    text: '其他',
    value: 13
  }, {
    text: '采购',
    value: 14
  }, {
    text: '任务',
    value: 15
  }])
}

/**
 * 加载工作筛选类型选项数据
*/
export function loadFilterWorkflowTypeOptions() {
  return Promise.resolve([{
    text: '加油',
    name: 'oiling',
    value: 1,
    type: 'matter'
  }, {
    text: '维修',
    name: 'repair',
    value: 2,
    type: 'matter'
  }, {
    text: '保养',
    name: 'maintain',
    value: 3,
    type: 'matter'
  }, {
    text: '事故',
    name: 'fault',
    value: 4,
    type: 'matter'
  }, {
    text: '任务',
    name: 'task',
    value: 5,
    type: 'matter'
  }, {
    text: '请假',
    name: 'leave',
    value: 6,
    type: 'approve'
  }, {
    text: '采购',
    name: 'procure',
    value: 7,
    type: 'approve'
  }])
}

/**
 * 查询车辆数据
*/
export function queryVehicleData(vehicleNum) {
  return post(`/new/biz/queryChassisAndVolumeByVehicleNum?vehicleNum=${vehicleNum}`).then((rs) => {
    if (rs && typeof rs === 'object') {
      return [Object.assign({}, rs, {
        vehicleNum
      })]
    } else {
      if (Array.isArray(rs)) {
        return rs
      } else {
        return []
      }
    }
  })
}

/**
 * 创建上报采购
*/
export function createWorkflowProcure(data) {
  return post('/new/biz/saveOrUpdateReportInfo', Object.assign({
    id: null, // 主键ID,
    reportType: 14,
    describes: null, // 原因描述',
    examineType: 0, // 审核状态 默认为1：待解决，0：处理中, 2：已完成 ',
    handlerId: null, // '处理人id',
    handlerName: null, // '处理人名称',
    handlerUserName: null, // '处理人手机号',
    amountSpent: null, // '花费金额',
    priority: null, // '优先级 默认 中 ，1：紧急 2：高 3：中 4：低',
    deadline: null, // '截至时间 截至到日',
    purchasedGoodsName: null, // '采购物品名称',
    purchasedGoodsQuantity: null, // 采购物品数量',
    mainTypes: 2 // '主要类型 1 事项 2审批'
  }, data))
}

/**
 * 创建上报请假
*/
export function createWorkflowLeave(data) {
  return post('/new/biz/saveOrUpdateReportInfo', Object.assign({
    id: null, // 主键ID,
    reportType: 1,
    describes: null, // 原因描述',
    examineType: 0, // 审核状态 默认为1：待解决，0：处理中, 2：已完成 ',
    handlerId: null, // '处理人id',
    handlerName: null, // '处理人名称',
    handlerUserName: null, // '处理人手机号',
    amountSpent: null, // '花费金额',
    startTime: null, // '请假开始时间',
    endTime: null, // '请假结束时间',
    priority: null, // '优先级 默认 中 ，1：紧急 2：高 3：中 4：低',
    deadline: null, // '截至时间 截至到日',
    day: null, // '请假天数',
    mainTypes: 2 // '主要类型 1 事项 2审批'
  }, data))
}

/**
 * 创建上报工作
*/
export function createWorkflowTask(data) {
  return post('/new/biz/saveOrUpdateReportInfo', Object.assign({
    reportType: 15,
    describes: null, // 原因描述',
    examineType: 0, // 审核状态 默认为1：待解决，0：处理中, 2：已完成 ',
    handlerId: null, // '处理人id',
    handlerName: null, // '处理人名称',
    handlerUserName: null, // '处理人手机号',
    amountSpent: null, // '花费金额',
    priority: null, // '优先级 默认 中 ，1：紧急 2：高 3：中 4：低',
    deadline: null, // '截至时间 截至到日',
    mainTypes: 1 // '主要类型 1 事项 2审批'
  }, data))
}

/**
 * 创建上报评论
*/
export function createWorkflowComment(data) {
  return post('/new/biz/saveOrUpdateReportInfo', Object.assign({
    id: null,
    solveContent: null // 评论内容
  }, data))
}

/**
 * 查询上报列表
*/
export function loadWorkflowData(data) {
  return post('/new/biz/queryAllWorkInformationById', Object.assign({
    requestData: {
      reportType: null
    },
    pageNo: 0,
    pageSize: 20
  }, data))
}

/**
 * 加载处理人选项数据
*/
export function loadHandlerOptions(data) {
  return get('/new/biz/queryReportProcessSetUpListById', Object.assign({
    type: null // 上报类型
  }, data))
}

/**
 * 查询详细上报信息
*/
export function getWorkflowDetail(id) {
  return post('/new/biz/queryReportById?id=' + id)
}

/**
 * 加载维修类型选项
*/
export function loadRepairTypeOptions() {
  return Promise.resolve([{
    text: '上装维修',
    value: '2'
  }, {
    text: '底盘维修',
    value: '7'
  }, {
    text: '更换轮胎',
    value: '5'
  }, {
    text: '更换泵管',
    value: '6'
  }, {
    text: '补胎',
    value: '8'
  }, {
    text: '其他',
    value: '13'
  }])
}

