export default class helper {
  // 将num四舍五入并截取n位小数。
  static getFloat = (number: any, n: any) => {
    n = n ? parseInt(n) : 0;
    if (n <= 0) {
      return Math.round(number);
    }
    number = Math.round(number * Math.pow(10, n)) / Math.pow(10, n); //四舍五入
    number = Number(number).toFixed(n); //补足位数
    return number;
  };

  static sda() {
    return '';
  }

  // 入库单状态 0：编辑，1：未开始，2：收货中，3：完成收货，4：上架中，5：上架完成
  static getAsnState = (val: any) => {
    let textStatus = '';
    switch (val) {
      case 0:
        textStatus = '编辑';
        break;
      case 1:
        textStatus = '未开始';
        break;
      case 2:
        textStatus = '收货中';
        break;
      case 3:
        textStatus = '完成收货';
        break;
      case 4:
        textStatus = '上架中';
        break;
      case 5:
        textStatus = '上架完成';
        break;
    }
    return textStatus;
  };

  // 入库单类型: 0: 采购订单，1: 手动录入 2：生产订单 3：内部订单 4：销售订单
  static getAsnType = (val: any) => {
    let textStatus = '';
    switch (val) {
      case '0':
        textStatus = '采购订单';
        break;
      case '1':
        textStatus = '手动录入';
        break;
      case '2':
        textStatus = '生产订单';
        break;
      case '3':
        textStatus = '内部订单';
        break;
      case '4':
        textStatus = '销售订单';
        break;
    }
    return textStatus;
  };

  // 入库单行状态 0：未开始，1：收货中，2：收货完成，3：上架中，4：上架完成
  static getAsnRowState = (val: any) => {
    let textStatus = '';
    switch (val) {
      case 0:
        textStatus = '未开始';
        break;
      case 1:
        textStatus = '收货中';
        break;
      case 2:
        textStatus = '收货完成';
        break;
      case 3:
        textStatus = '上架中';
        break;
      case 4:
        textStatus = '上架完成';
        break;
    }
    return textStatus;
  };

  // 出库单状态 * 0：编辑 1：未开始 2：下架中 3：下架完成 4：出库中 5：出库完成
  static getDnState = (val: any) => {
    let textStatus = '';
    switch (val) {
      case 0:
        textStatus = '编辑';
        break;
      case 1:
        textStatus = '未开始';
        break;
      case 2:
        textStatus = '下架中';
        break;
      case 3:
        textStatus = '下架完成';
        break;
      case 4:
        textStatus = '出库中';
        break;
      case 5:
        textStatus = '出库完成';
    }
    return textStatus;
  };

  // 出库单行状态 0：未开始 1：下架中 2：下架完成 3：出库中 4：出库完成
  static getDnRowState = (val: any) => {
    let textStatus = '';
    switch (val) {
      case 0:
        textStatus = '未开始';
        break;
      case 1:
        textStatus = '下架中';
        break;
      case 2:
        textStatus = '下架完成';
        break;
      case 3:
        textStatus = '出库中';
        break;
      case 4:
        textStatus = '出库完成';
        break;
    }
    return textStatus;
  };

  // 库存详情状态 0：已收货 1：已上架 2：已下架 3：已出库 4：调拨中 5：已冲销 6:收货中
  static getStockState = (val: any) => {
    let textStatus = { color: '', text: '' };
    switch (val) {
      case 0:
        textStatus = {
          color: 'positive',
          text: '已收货'
        };
        break;
      case 1:
        textStatus = {
          color: 'primary',
          text: '已上架'
        };
        break;
      case 2:
        textStatus = {
          color: 'orange',
          text: '已下架'
        };
        break;
      case 3:
        textStatus = {
          color: 'red',
          text: '已出库'
        };
        break;
      case 4:
        textStatus = {
          color: 'accent',
          text: '调拨中'
        };
        break;
      case 5:
        textStatus = {
          color: 'blue-grey',
          text: '已冲销'
        };
        break;
      case 6:
        textStatus = {
          color: 'secondary',
          text: '收货中'
        };
        break;
    }
    return textStatus;
  };

  // 出库单类型 0：项目领料 1：生产订单 2：成本中心 3：内部订单 4：内转 5：销售订单
  static getDnType = (val: any) => {
    let textStatus = '';
    switch (val) {
      case 0:
        textStatus = '项目领料';
        break;
      case 1:
        textStatus = '生产订单';
        break;
      case 2:
        textStatus = '成本中心';
        break;
      case 3:
        textStatus = '内部订单';
        break;
      case 4:
        textStatus = '内转';
        break;
      case 5:
        textStatus = '销售订单';
        break;
    }
    return textStatus;
  };

  // 冲销单类型：0：整单冲销，1：整行冲销 2：自由冲销
  static getWriteOffType = (val: any) => {
    let textStatus = '';
    switch (val) {
      case 0:
        textStatus = '整单冲销';
        break;
      case 1:
        textStatus = '整行冲销';
        break;
      case 2:
        textStatus = '自由冲销';
        break;
    }
    return textStatus;
  };

  // 冲销状态：0：待冲销，1：已冲销，2：待上架
  static getWriteOffState = (val: any) => {
    let textStatus = '';
    switch (val) {
      case 0:
        textStatus = '待冲销';
        break;
      case 1:
        textStatus = '已冲销';
        break;
      case 2:
        textStatus = '待上架';
        break;
    }
    return textStatus;
  };

  // 冲销方向  0:入 1:出 2:移动 3:调整
  static getWriteOffDirection = (val: any) => {
    let textStatus = '';
    switch (val) {
      case 0:
        textStatus = '入';
        break;
      case 1:
        textStatus = '出';
        break;
      case 2:
        textStatus = '移动';
        break;
      case 3:
        textStatus = '调整';
        break;
    }
    return textStatus;
  };

  // 来源 0：入库单 1：出库单 2：库存调拨单 3：冲销单 4：自由冲销
  static getBehavior = (val: any) => {
    let textStatus = '';
    switch (val) {
      case 0:
        textStatus = '入库单';
        break;
      case 1:
        textStatus = '出库单';
        break;
      case 2:
        textStatus = '库存调拨单';
        break;
      case 3:
        textStatus = '冲销单';
        break;
      case 4:
        textStatus = '自由冲销';
        break;
    }
    return textStatus;
  };

  // 单据类型 0：入库单 1：出库单 2：库存调拨单 3：冲销单 4：自由冲销
  static getBehaviorType = (val: any, type: any) => {
    let textStatus = '';
    switch (val) {
      case 0:
        switch (type) {
          case 0:
            textStatus = '采购订单';
            break;
          case 1:
            textStatus = '手动录入';
            break;
          case 2:
            textStatus = '生产订单';
            break;
          case 3:
            textStatus = '内部订单';
            break;
          case 4:
            textStatus = '销售订单';
            break;
        }
        break;
      case 1:
        switch (type) {
          case 0:
            textStatus = '项目领料';
            break;
          case 1:
            textStatus = '生产订单';
            break;
          case 2:
            textStatus = '成本中心';
            break;
          case 3:
            textStatus = '内部订单';
            break;
          case 4:
            textStatus = '内转';
            break;
          case 5:
            textStatus = '销售订单';
            break;
        }
        break;
      case 3:
        switch (type) {
          case 0:
            textStatus = '整单冲销';
            break;
          case 1:
            textStatus = '整行冲销';
            break;
          case 2:
            textStatus = '自由冲销';
            break;
        }
        break;
      case 4:
        switch (type) {
          case 0:
            textStatus = '项目';
            break;
          case 2:
            textStatus = '成本中心';
            break;
          case 3:
            textStatus = '内部订单';
            break;
        }
        break;
    }
    return textStatus;
  };

  // 调拨单状态 0：草稿单 1：待下架 2：待调拨 3：待收货 4：待上架 5：已完成
  static getMoveStatus = (val: any) => {
    let textStatus = '';
    switch (val) {
      case 0:
        textStatus = '草稿单';
        break;
      case 1:
        textStatus = '待下架';
        break;
      case 2:
        textStatus = '待调拨';
        break;
      case 3:
        textStatus = '待收货';
        break;
      case 4:
        textStatus = '待上架';
        break;
      case 5:
        textStatus = '已完成';
        break;
    }
    return textStatus;
  };

  // 调拨单类型： 1：调拨(库位变动)  2： 3:异码转换(库位不变) 4:通用转换 5:销售转换 6:项目转换
  static getMoveType = (val: any) => {
    let textStatus = '';
    switch (val) {
      case 1:
        textStatus = '调拨';
        break;
      case 2:
        textStatus = '转换';
        break;
      case 3:
        textStatus = '异码转换';
        break;
      case 4:
        textStatus = '通用转换';
        break;
      case 5:
        textStatus = '销售转换';
        break;
      case 6:
        textStatus = '项目转换';
        break;
    }
    return textStatus;
  };

  // 设备状态,运行:Run，待机:Stop，报警:Alarm
  static getEquipmentState = (val: any) => {
    let textStatus = { color: '', text: '' };
    switch (val) {
      case 'Run':
        textStatus = {
          color: 'positive',
          text: '运行'
        };
        break;
      case 'Stop':
        textStatus = {
          color: 'grey-6',
          text: '待机'
        };
        break;
      case 'Alarm':
        textStatus = {
          color: 'orange',
          text: '报警'
        };
        break;
      default:
        textStatus = {
          color: '',
          text: ''
        };
        break;
    }
    return textStatus;
  };

  // 点位所属动作，启动停止：start_stop；故障：fault
  static getActionType = (val: any) => {
    let textStatus = '';
    switch (val) {
      case 'StartStop':
        textStatus = '启动停止';
        break;
      case 'Fault':
        textStatus = '故障';
        break;
    }
    return textStatus;
  };

  // 性别,用户性别（0男 1女 2未知）
  static getSex = (val: any) => {
    let textStatus = '';
    switch (val) {
      case '0':
        textStatus = '男';
        break;
      case '1':
        textStatus = '女';
        break;
      case '2':
        textStatus = '未知';
        break;
      default:
        textStatus = '';
        break;
    }
    return textStatus;
  };

  // 设备状态,运行:Run，待机:Stop，报警:Alarm
  static getEquipmentStateColor = (val: any) => {
    let color = '';
    switch (val) {
      case 'Run':
        color = 'bg-green';
        break;
      case 'Stop':
        color = 'bg-grey-4';
        break;
      case 'Alarm':
        color = 'bg-orange-5';
        break;
      case null:
        color = 'bg-grey-4';
        break;
    }
    return color;
  };

  static params = (obj: any) => {
    let result = '';
    let item;
    for (item in obj) {
      if (
        (obj[item] && String(obj[item])) ||
        (item == 'activated' && obj[item] != undefined)
      ) {
        result += `&${item}=${obj[item]}`;
      }
    }
    if (result) {
      result = '?' + result.slice(1);
    }
    return result;
  };

  // 模式,自动:Auto，手动:Manual
  static getModel = (val: any) => {
    let textStatus = { color: '', text: '' };
    switch (val) {
      case 'Auto':
        textStatus = {
          color: 'primary',
          text: '自动'
        };
        break;
      case 'Manual':
        textStatus = {
          color: 'grey-6',
          text: '手动'
        };
        break;
    }
    return textStatus;
  };

    // 是否报警
    static getIsAlarm = (val: any) => {
      let textStatus = { color: '', text: '' };
    switch (val) {
      case true:
        textStatus = {
          color: 'positive',
          text: '是'
        };
        break;
      case false:
        textStatus = {
          color: 'negative',
          text: '否'
        };
        break;
    }
    return textStatus;
    };

}
