import moment from 'moment';
export default class CfagitCheck {
	constructor(_this) {
		// 可以再当前方法中取_this,此this即为根组件的this
		this.check = {
			"cfagit.recgrp.bas.guarantorcode": [{
				required: true,
				message: "必输项"
			}],
			"cfagit.recgrp.bas.guarancurr": [{
				required: true,
				message: "必输项"
			}],
			"cfagit.recgrp.bas.guaranamount": [{
        validator:(rule,value,callback) =>{
					if (value == null || value == "") {
						return callback(new Error('必输项'))
					} else if (value < 0) {
						return callback(new Error('保函金额不能小于0'))
					}
					callback()
				},
				trigger: 'change'
			}],
			"cfagit.recgrp.bas.guarantype": [{
				required: true,
				message: "必输项"
			}],
			"cfagit.recgrp.bas.bentype": [{
				required: true,
				message: "必输项"
			}],
			"cfagit.recgrp.bas.contractdate": [{
				validator:(rule,value,callback) =>{
					if (!value) {
						return callback(new Error('必输项'))
					}else if (moment(value).diff(moment(new Date()), 'days') < 0) {
						return callback(new Error('签约日期不能早于当天'))
					}
					callback()
				},
				trigger: 'change'

			}],
			"cfagit.recgrp.bas.maturity": [
				// {
				// 	required: true,
				// 	message: "必输项"
				// },
				{
				validator: (rule, value, callback) => {
					if(!value) {
						return callback(new Error('必输项'))
          } else if (moment(value).diff(moment(new Date()), 'days') < 0) {
						return callback(new Error('到期日不能早于当天!'))
					} 
					callback()
				},
				trigger: ['blur', 'change']
			}],

			"cfagit.recgrp.bas.bencountrycode": [{
				required: true,
				message: "必输项"
			}],
			"cfagit.recgrp.bas.guedtype": [{
				required: true,
				message: "必输项"
			}],
			"cfagit.recgrp.bas.guedindustrycode": [{
				required: true,
				message: "必输项"
			}],
			"cfagit.recgrp.bas.guedcouncode": [{
				required: true,
				message: "必输项"
			}],
			"cfagit.recgrp.bas.cgyn": [{
				required: true,
				message: "必输项"
			}],
			"cfagit.recgrp.bas.thyn": [{
				required: true,
				message: "必输项"
			}],
			"cfagit.recgrp.bas.jwyn": [{
				required: true,
				message: "必输项"
			}],
			"cfagit.recgrp.bas.bename": [{
				validator: (rule, value, callback) => {
					if (!value && !_this.model.cfagit.recgrp.bas.benamen) {
						return callback(new Error('受益人中文名称和英文名称至少填写一个!'));
					}
					callback();
				},
				trigger: ['blur', 'change']
      }],
      "cfagit.recgrp.bas.benamen": [{
				validator: (rule, value, callback) => {
					if (!value && !_this.model.cfagit.recgrp.bas.bename) {
						return callback(new Error('受益人中文名称和英文名称至少填写一个!'));
					} else {
            callback();
          }
					callback();
				},
				trigger: ['blur', 'change']
			}],
			"cfagit.recgrp.bas.guedname": [{
				validator: (rule, value, callback) => {
					if (!value && !_this.model.cfagit.recgrp.bas.guednamen) {
						return callback(new Error('被担保人中文名称和英文名称至少填写一个!'));
					} 
					callback()
				},
				trigger: ['blur', 'change']
      }],
      "cfagit.recgrp.bas.guednamen": [{
				validator: (rule, value, callback) => {
					if (!value && !_this.model.cfagit.recgrp.bas.guedname) {
						return callback(new Error('被担保人中文名称和英文名称至少填写一个!'));
					} 
					callback()
				},
				trigger: ['blur', 'change']
			}],
			"cfagit.recgrp.bas.guappname": [{
				validator: (rule, value, callback) => {
					if (!value && !_this.model.cfagit.recgrp.bas.guappnamen) {
						return callback(new Error('担保申请人中文名称和英文名称至少填写一个!'));
					} 
					callback()
				},
				trigger: ['blur', 'change']
      }],
      "cfagit.recgrp.bas.guappnamen": [{
				validator: (rule, value, callback) => {
					if (!value && !_this.model.cfagit.recgrp.bas.guappname) {
						return callback(new Error('担保申请人中文名称和英文名称至少填写一个!'));
					} 
					callback()
				},
				trigger: ['blur', 'change']
			}],
			"cfagit.recgrp.bas.bencode":[
				{
				validator: (rule, value, callback) => {
					if(_this.model.cfagit.recgrp.bas.bentype==='20001403') {
            if(!_this.model.cfagit.recgrp.bas.bencode) {
              return callback(new Error('必输项'))
            } else {
              if (_this.model.cfagit.recgrp.bas.actiontype !='D') {
                if (_this.model.cfagit.recgrp.bas.guarantype != '1105' || _this.model.cfagit.recgrp.bas.maindebtmanner != '1') {
                  if (_this.model.cfagit.recgrp.bas.bentype==="20001403" && value.length != 12) {
                    return callback(new Error('受益人代码栏位应填写12位金融机构标识码'))
                  }else{
                    callback()
                  }
                }
              }else{
                callback()
              }
            }
					}else{
						callback()
					}
				},
				trigger: ['blur', 'change']
      }],
      //借款利率(%)
			"cfagit.recgrp.bas.intrat": [
				{
					pattern:/^-?[1-9]\d{0,7}(\.\d{1,7})?$|^0(\.\d{1,7})?$/,
					message:"整数位不能超过8位,小数位不能超过7位",
        },
        {
          validator:(rule,value,callback) =>{
            if (_this.model.cfagit.recgrp.bas.guarantype === '1105' && value == 0) {
              return callback(new Error('必输项'))
            }else{
              callback()
            }
          },
        },
			],
			"cfagit.recgrp.bas.cgcode":[{
				validator:(rule,value,callback) =>{
					if (_this.model.cfagit.recgrp.bas.actiontype !='D' && _this.model.cfagit.recgrp.bas.cgyn =='1' && !value) {
						return callback(new Error('必输项'))
					}
					callback()
				}
			}],
			"cfagit.recgrp.bas.cgname":[{
				validator:(rule,value,callback) =>{
					if (_this.model.cfagit.recgrp.bas.actiontype !='D' && _this.model.cfagit.recgrp.bas.cgyn =='1') {
						if (!value && !_this.model.cfagit.recgrp.bas.cgnamen ) {
							return callback(new Error('当“是否有反担保人”为“是”时,反担保人中文名称和英文名称至少填写一个'))
						}
					}
					callback()
				}
			}],
			"cfagit.recgrp.bas.cgnamen":[{
				validator:(rule,value,callback) =>{
					if (_this.model.cfagit.recgrp.bas.actiontype !='D' && _this.model.cfagit.recgrp.bas.cgyn =='1') {
						if (!value && !_this.model.cfagit.recgrp.bas.cgname ) {
							return callback(new Error('当“是否有反担保人”为“是”时,反担保人中文名称和英文名称至少填写一个'))
						}
					}
					callback()
				}
			}],
			"cfagit.recgrp.bas.cgcouncode":[{
        validator:(rule,value,callback) =>{
					if (_this.model.cfagit.recgrp.bas.actiontype !='D' && _this.model.cfagit.recgrp.bas.cgyn =='1' && !value) {
						return callback(new Error('必输项'))
					}
					callback()
				}
			}],
			"cfagit.recgrp.bas.thje":[{
        validator:(rule,value,callback) =>{
					if (_this.model.cfagit.recgrp.bas.thyn === '1' && value < 0) {
						return callback(new Error('资金调回金额应大于等于0'))
					}else{
						callback()
					}
				}
      }],
      //被担保人境内母公司代码
      "cfagit.recgrp.bas.guedparecompcode":[{
        validator:(rule,value,callback) =>{
					if (_this.model.cfagit.recgrp.bas.guarantype === '1105' && (value == '' || value == null)) {
						return callback(new Error('必输项'))
					}else{
						callback()
					}
        },
        trigger: ['blur', 'change']
      }],
      //被担保人境内母公司中文名称
      "cfagit.recgrp.bas.guedparecompname": [{
				validator: (rule, value, callback) => {
					if (_this.model.cfagit.recgrp.bas.guarantype === '1105' && !value && !_this.model.cfagit.recgrp.bas.guedparecompnamen) {
						return callback(new Error('被担保人境内母公司中文名称和英文名称至少填写一个!'));
					}else{
						callback()
					}
				},
				trigger: ['blur', 'change']
      }],
      //被担保人境内母公司英文名称
      "cfagit.recgrp.bas.guedparecompnamen": [{
				validator: (rule, value, callback) => {
					if (_this.model.cfagit.recgrp.bas.guarantype === '1105' && !value && !_this.model.cfagit.recgrp.bas.guedparecompname) {
						return callback(new Error('被担保人境内母公司中文名称和英文名称至少填写一个!'));
					} else{
						callback()
					}
				},
				trigger: ['blur', 'change']
			}],
      //发行/上市方式
      "cfagit.recgrp.bas.maindebtmanner":[{
        validator:(rule,value,callback) =>{
					if (_this.model.cfagit.recgrp.bas.guarantype === '1105' && (value == '' || value == null)) {
						return callback(new Error('必输项'))
					} else{
						callback()
					}
        },
        trigger: ['blur', 'change']
      }],
      //主债务金额
      "cfagit.recgrp.bas.maindebtamount":[{
        validator:(rule,value,callback) =>{
					if (_this.model.cfagit.recgrp.bas.guarantype === '1105' && value < 0) {
						return callback(new Error('主债务金额不能小于0!'))
					} else{
						callback()
					}
        },
        trigger: ['blur', 'change']
      }],
      //主债务签约日期
      "cfagit.recgrp.bas.maindebtcondate":[{
        validator:(rule,value,callback) =>{
					if (_this.model.cfagit.recgrp.bas.guarantype === '1105' && (value == '' || value == null)) {
						return callback(new Error('必输项'))
					} else{
						callback()
					}
        },
        trigger: ['blur', 'change']
      }],
      //发行/上市国家与地区
      "cfagit.recgrp.bas.issuecountrycode":[{
        validator:(rule,value,callback) =>{
					if (_this.model.cfagit.recgrp.bas.guarantype === '1105' && (value == '' || value == null)) {
						return callback(new Error('必输项'))
					} else{
						callback()
					}
        },
        trigger: ['blur', 'change']
      }],
      //主债务到期日
      "cfagit.recgrp.bas.maindebtmaturity":[{
        validator:(rule,value,callback) =>{
					if (_this.model.cfagit.recgrp.bas.guarantype === '1105' && (value == '' || value == null)) {
						return callback(new Error('必输项'))
					}else{
						callback()
					}
        },
        trigger: ['blur', 'change']
      }],
      //主债务期限(日)栏位
      "cfagit.recgrp.bas.maindebtdate":[{
        validator:(rule,value,callback) =>{
					if (_this.model.cfagit.recgrp.bas.guarantype === '1105' && (value == '' || value == 0)) {
						return callback(new Error('必输项'))
					}else{
						callback()
					}
        },
        trigger: ['blur', 'change']
      }],
      //主债务合同资金用途
      "cfagit.recgrp.bas.founds1":[{
        validator:(rule,value,callback) =>{
          if (_this.model.cfagit.recgrp.bas.guarantype === '1105' && 
          !(_this.model.cfagit.recgrp.bas.founds1 == '' && _this.model.cfagit.recgrp.bas.founds2 == ''
          && _this.model.cfagit.recgrp.bas.founds3 == '' && _this.model.cfagit.recgrp.bas.founds4 == ''
          && _this.model.cfagit.recgrp.bas.founds5 == '' && _this.model.cfagit.recgrp.bas.founds6 == ''
          && _this.model.cfagit.recgrp.bas.founds7 == '' && _this.model.cfagit.recgrp.bas.founds8 == '')) {
						return callback(new Error('当担保类型为“为境外发债担保”时,必填项,可多选'))
					}else{
						callback()
					}
        },
        trigger: ['blur', 'change']
      }],
      "cfagit.recgrp.bas.founds1":[{
        validator:(rule,value,callback) =>{
          if (_this.model.cfagit.recgrp.bas.guarantype === '1105' && 
          _this.model.cfagit.recgrp.bas.founds1 == '' && _this.model.cfagit.recgrp.bas.founds2 == ''
          && _this.model.cfagit.recgrp.bas.founds3 == '' && _this.model.cfagit.recgrp.bas.founds4 == ''
          && _this.model.cfagit.recgrp.bas.founds5 == '' && _this.model.cfagit.recgrp.bas.founds6 == ''
          && _this.model.cfagit.recgrp.bas.founds7 == '' && _this.model.cfagit.recgrp.bas.founds8 == '') {
						return callback(new Error('当担保类型为“为境外发债担保”时,必填项,可多选'))
					}else{
						callback()
					}
        },
        trigger: ['blur', 'change']
      }],
      "cfagit.recgrp.bas.founds2":[{
        validator:(rule,value,callback) =>{
          if (_this.model.cfagit.recgrp.bas.guarantype === '1105' && 
          _this.model.cfagit.recgrp.bas.founds1 == '' && _this.model.cfagit.recgrp.bas.founds2 == ''
          && _this.model.cfagit.recgrp.bas.founds3 == '' && _this.model.cfagit.recgrp.bas.founds4 == ''
          && _this.model.cfagit.recgrp.bas.founds5 == '' && _this.model.cfagit.recgrp.bas.founds6 == ''
          && _this.model.cfagit.recgrp.bas.founds7 == '' && _this.model.cfagit.recgrp.bas.founds8 == '') {
						return callback(new Error('当担保类型为“为境外发债担保”时,必填项,可多选'))
					}else{
						callback()
					}
        },
        trigger: ['blur', 'change']
      }],
      "cfagit.recgrp.bas.founds3":[{
        validator:(rule,value,callback) =>{
          if (_this.model.cfagit.recgrp.bas.guarantype === '1105' && 
          _this.model.cfagit.recgrp.bas.founds1 == '' && _this.model.cfagit.recgrp.bas.founds2 == ''
          && _this.model.cfagit.recgrp.bas.founds3 == '' && _this.model.cfagit.recgrp.bas.founds4 == ''
          && _this.model.cfagit.recgrp.bas.founds5 == '' && _this.model.cfagit.recgrp.bas.founds6 == ''
          && _this.model.cfagit.recgrp.bas.founds7 == '' && _this.model.cfagit.recgrp.bas.founds8 == '') {
						return callback(new Error('当担保类型为“为境外发债担保”时,必填项,可多选'))
					}else{
						callback()
					}
        },
        trigger: ['blur', 'change']
      }],
      "cfagit.recgrp.bas.founds4":[{
        validator:(rule,value,callback) =>{
          if (_this.model.cfagit.recgrp.bas.guarantype === '1105' && 
          _this.model.cfagit.recgrp.bas.founds1 == '' && _this.model.cfagit.recgrp.bas.founds2 == ''
          && _this.model.cfagit.recgrp.bas.founds3 == '' && _this.model.cfagit.recgrp.bas.founds4 == ''
          && _this.model.cfagit.recgrp.bas.founds5 == '' && _this.model.cfagit.recgrp.bas.founds6 == ''
          && _this.model.cfagit.recgrp.bas.founds7 == '' && _this.model.cfagit.recgrp.bas.founds8 == '') {
						return callback(new Error('当担保类型为“为境外发债担保”时,必填项,可多选'))
					}else{
						callback()
					}
        },
        trigger: ['blur', 'change']
      }],
      "cfagit.recgrp.bas.founds5":[{
        validator:(rule,value,callback) =>{
          if (_this.model.cfagit.recgrp.bas.guarantype === '1105' && 
          _this.model.cfagit.recgrp.bas.founds1 == '' && _this.model.cfagit.recgrp.bas.founds2 == ''
          && _this.model.cfagit.recgrp.bas.founds3 == '' && _this.model.cfagit.recgrp.bas.founds4 == ''
          && _this.model.cfagit.recgrp.bas.founds5 == '' && _this.model.cfagit.recgrp.bas.founds6 == ''
          && _this.model.cfagit.recgrp.bas.founds7 == '' && _this.model.cfagit.recgrp.bas.founds8 == '') {
						return callback(new Error('当担保类型为“为境外发债担保”时,必填项,可多选'))
					}else{
						callback()
					}
        },
        trigger: ['blur', 'change']
      }],
      "cfagit.recgrp.bas.founds6":[{
        validator:(rule,value,callback) =>{
          if (_this.model.cfagit.recgrp.bas.guarantype === '1105' && 
          _this.model.cfagit.recgrp.bas.founds1 == '' && _this.model.cfagit.recgrp.bas.founds2 == ''
          && _this.model.cfagit.recgrp.bas.founds3 == '' && _this.model.cfagit.recgrp.bas.founds4 == ''
          && _this.model.cfagit.recgrp.bas.founds5 == '' && _this.model.cfagit.recgrp.bas.founds6 == ''
          && _this.model.cfagit.recgrp.bas.founds7 == '' && _this.model.cfagit.recgrp.bas.founds8 == '') {
						return callback(new Error('当担保类型为“为境外发债担保”时,必填项,可多选'))
					}else{
						callback()
					}
        },
        trigger: ['blur', 'change']
      }],
      "cfagit.recgrp.bas.founds7":[{
        validator:(rule,value,callback) =>{
          if (_this.model.cfagit.recgrp.bas.guarantype === '1105' && 
          _this.model.cfagit.recgrp.bas.founds1 == '' && _this.model.cfagit.recgrp.bas.founds2 == ''
          && _this.model.cfagit.recgrp.bas.founds3 == '' && _this.model.cfagit.recgrp.bas.founds4 == ''
          && _this.model.cfagit.recgrp.bas.founds5 == '' && _this.model.cfagit.recgrp.bas.founds6 == ''
          && _this.model.cfagit.recgrp.bas.founds7 == '' && _this.model.cfagit.recgrp.bas.founds8 == '') {
						return callback(new Error('当担保类型为“为境外发债担保”时,必填项,可多选'))
					}else{
						callback()
					}
        },
        trigger: ['blur', 'change']
      }],
      "cfagit.recgrp.bas.founds8":[{
        validator:(rule,value,callback) =>{
          if (_this.model.cfagit.recgrp.bas.guarantype === '1105' && 
          _this.model.cfagit.recgrp.bas.founds1 == '' && _this.model.cfagit.recgrp.bas.founds2 == ''
          && _this.model.cfagit.recgrp.bas.founds3 == '' && _this.model.cfagit.recgrp.bas.founds4 == ''
          && _this.model.cfagit.recgrp.bas.founds5 == '' && _this.model.cfagit.recgrp.bas.founds6 == ''
          && _this.model.cfagit.recgrp.bas.founds7 == '' && _this.model.cfagit.recgrp.bas.founds8 == '') {
						return callback(new Error('当担保类型为“为境外发债担保”时,必填项,可多选'))
					}else{
						callback()
					}
        },
        trigger: ['blur', 'change']
      }],
		}
	}
}