import moment from 'moment';
export default class TrtcreCheck {
  constructor(_this) {
    // 可以再当前方法中取_this,此_this即为根组件的this
    this.check = {
      "trtcre.trdgrp.rec.matdat": [
        {
          required: true,
          message: "必输项"
        },
        {
          validator: (rule, value, callback) => {
            if ((value != "" && value != null)
              && (_this.model.trtcre.trdgrp.rec.stttendat != "" && _this.model.trtcre.trdgrp.rec.stttendat != null)
              && moment(_this.model.trtcre.trdgrp.rec.stttendat).diff(moment(value), 'days') > 0) {
              callback(new Error('到期日不得小于起息日'));
            }
            callback()
          },
          trigger: ['blur', 'change']
        }
      ],
      "trtcre.trdgrp.rec.stttendat": [
        {
          required: true,
          message: "必输项"
        },
        {
          validator: (rule, value, callback) => {
            if ((value != "" && value != null)
              && (_this.model.trtcre.trdgrp.rec.matdat != "" && _this.model.trtcre.trdgrp.rec.matdat != null)
              && moment(value).diff(moment(_this.model.trtcre.trdgrp.rec.matdat), 'days') > 0) {
              callback(new Error('起息日不得大于到期日'));
            }
            // if ((value != "" && value != null)
            //   && moment(value).diff(moment(new Date()).format('YYYY-MM-DD'), 'days') < 0) {
            //   callback(new Error('起息日不得小于当前日期'));
            // }
            callback()
          },
          trigger: ['blur', 'change']
        }
      ],
      "trtcre.trdgrp.rec.ownref": [
        {
          required: true,
          message: "必输项"
        }
      ],
      "trtcre.trdgrp.cbs.max.cur": [
        {
          required: true,
          message: "必输项"
        }
      ],
      "trtcre.trdgrp.cbs.max.amt": [
        {
          validator: (rule, value, callback) => {
            if (!value || Number(value) == 0) {
              callback(new Error('必输项'))
            } if (Number(value) < 0) {
              callback(new Error('融资金额不能为负数'))
            } else {
              callback()
            }
          },
          trigger: ['blur', 'change']
        }
      ],
      "trtcre.trdgrp.rec.pctfin": [
        {
          validator: (rule, value, callback) => {
            if (Number(value) > 100) {
              callback(new Error('融资比例不能大于100%'))
            } else if (Number(value) <= 0) {
              callback(new Error('融资比例不能为负数或0%'))
            } else {
              callback()
            }
          },
          trigger: ['blur', 'change']
        }
      ],
      "trtcre.trdgrp.rec.actrat": [
        {
          validator: (rule, value, callback) => {
            if (!value || Number(value) <= 0) {
              callback(new Error('必输项'))
            } else {
              callback()
            }
          },
          trigger: ['blur', 'change']
        }
      ],
      "trtcre.finmod.intprd": [
        {
          required: true,
          message: "必输项"
        }
      ],
      "trtcre.finmod.intdat": [
        {
          validator: (rule, value, callback) => {
            if (['1', '2', '3', '4', '5'].includes(_this.model.trtcre.finmod.intprd)) {
              if (!Number(value) || Number(value) <= 0 || Number(value) > 31) {
                callback(new Error('输入日期不合法'))
              } else {
                callback()
              }
            } else {
              callback()
            }
          },
          trigger: ['blur', 'change']
        }
      ],
      "trtcre.trdgrp.rec.guaflg": [
        {
          required: true,
          message: "必输项"
        }
      ],
      "trtcre.trdgrp.rec.invtyp": [
        {
          required: true,
          message: "必输项"
        }
      ],
      "trtcre.trdgrp.rec.invref": [
        {
          required: true,
          message: "必输项"
        }
      ],
      "trtcre.trdgrp.rec.stzfdxzh": [
        {
          required: true,
          message: "必输项"
        }
      ],
      "trtcre.trdgrp.rec.sellername": [
        {
          required: true,
          message: "必输项"
        }
      ],
      "trtcre.trdgrp.rec.prbkbic": [
        {
          required: true,
          message: "必输项"
        }
      ],
      "trtcre.trdgrp.rec.prbkname": [
        {
          required: true,
          message: "必输项"
        }
      ],
      "trtcre.trdgrp.rec.stagod": [
        {
          required: true,
          message: "必输项"
        }
      ],
      "trtcre.trdgrp.rec.goddspcn": [
        {
          required: true,
          message: "必输项"
        }
      ],
      "trtcre.trtp.wbdp.actpro": [
        {
          required: true,
          message: "必输项"
        }
      ],
      "trtcre.trtp.wbdp.act": [
        {
          required: true,
          message: "必输项"
        }
      ],
      "trtcre.finmod.flttyp": [
        {
          required: true,
          message: "必输项"
        }
      ],
      "trtcre.finmod.fltval": [
        {
          validator: (rule, value, callback) => {
            if (_this.model.trtcre.finmod.flttyp === '1' || _this.model.trtcre.finmod.flttyp === '2') {
              if (value === '' || Number(value) === 0) {
                callback(new Error('必输项'));
              }
            }
            callback()
          },
          trigger: ['blur', 'change']
        }
      ],
      "trtcre.finmod.ovdinttyp": [
        {
          required: true,
          message: "必输项"
        }
      ],
      "trtcre.finmod.ratchgdat": [
        {
          validator: (rule, value, callback) => {
            if (['3', '4', '5', '6'].includes(_this.model.trtcre.finmod.ratchgtyp)) {
              if (value === '') {
                callback(new Error('必输项'));
              }
            }
            callback()
          },
          trigger: ['blur', 'change']
        }
      ],
      "trtcre.finmod.ratchgprd": [
        {
          validator: (rule, value, callback) => {
            if (['7', '8', '9', 'G', 'H', 'I', 'J'].includes(_this.model.trtcre.finmod.ratchgtyp)) {
              if (value === '') {
                callback(new Error('必输项'));
              }
            }
            callback()
          },
          trigger: ['blur', 'change']
        }
      ],
      "trtcre.finmod.act3": [
        {
          validator: (rule, value, callback) => {
            if (_this.model.trtcre.finmod.acttyp !== '') {
              if (value === '') {
                callback(new Error('必输项'));
              }
            }
            callback()
          },
          trigger: ['blur', 'change']
        }
      ],
      "trtcre.finmod.inttyp": [
        {
          validator: (rule, value, callback) => {
            if (Number(_this.model.trtcre.finmod.intamt) > 0) {
              if (value === '') {
                callback(new Error('必输项'));
              }
            }
            callback()
          },
          trigger: ['blur', 'change']
        }
      ],
      "trtcre.finmod.intact": [
        {
          validator: (rule, value, callback) => {
            if (_this.model.trtcre.finmod.inttyp === '1') {
              if (value === '') {
                callback(new Error('必输项'));
              }
            }
            callback()
          },
          trigger: ['blur', 'change']
        }
      ],
      "trtcre.finmod.ratchgtyp": [
        {
          required: true,
          message: "必输项"
        }
      ],
      "trtcre.finmod.intamt": [
        {
          validator: (rule, value, callback) => {
            if (_this.model.trtcre.finmod.intprd === '7') {
              if (value === '' || Number(value) == 0) {
                callback(new Error('预扣息金额计算有误'));
              }
            }
            callback()
          },
          trigger: ['blur', 'change']
        }
      ],
      "trtcre.finmod.ovdintrat": [
        {
          validator: (rule, value, callback) => {
            if (_this.model.trtcre.finmod.ovdinttyp === '1') {
              if (value === '' || Number(value) === 0) {
                callback(new Error('必输项'));
              } else {
                if(Number(value) <= 0){
                  callback(new Error('罚息比率应大于0'))
                }
              }
            }
            callback()
          },
          trigger: ['blur', 'change']
        }
      ],
      "trtcre.finmod.dinmod.dinjdm": [
        {
          validator: (rule, value, callback) => {
            if (_this.model.trtcre.idType !== '2') {
              if (value === '') {
                callback(new Error('必输项'));
              }
            }
            callback()
          },
          trigger: ['blur', 'change']
        }
      ],
      "trtcre.finmod.dinmod.jzllgz": [
        {
          validator: (rule, value, callback) => {
            if (_this.model.trtcre.trdgrp.cbs.max.cur !== "CNY" && value === "1") {
              callback(new Error('融资币种不为人民币时,基准利率规则不能选市场LPR基准'));
            }
            callback();
          },
          trigger: ['change', 'blur']
        },
      ],
      "trtcre.trdgrp.rec.tenorday": [
        {
          validator: (rule, value, callback) => {
            if (_this.model.trtcre.trdgrp.rec.avbby === 'A') {
              if (value === '' || Number(value) === 0) {
                callback(new Error('远期付款期限必须大于0'));
              }
            }
            callback()
          },
          trigger: ['blur', 'change']
        }
      ],
      "trtcre.trdgrp.rec.trntyp": [
        {
          required: true,
          message: "必输项"
        }
      ],
      "trtcre.trdgrp.rec.oppacc": [
        {
          required: true,
          message: "必输项"
        }
      ],
      "trtcre.trdgrp.rec.flowflag": [
        {
          required: true,
          message: "必输项"
        }
      ],
    }
  }
}