import moment from 'moment';
import {checkRuleOfECA} from "CFARules"

export default class CfaecaCheck {
    constructor(_this) {
        // 可以再当前方法中取_this,此_this即为根组件的this
        //高阶函数返回的数组
        let thiz = {model:_this.model.cfabop.cfaeca,root:_this,isCom:true,trnName:_this.trnName}
        let checks = checkRuleOfECA().call({module:"ECACOM"}).call(thiz,_this,moment)
        let target = {}
        //映射路径
        Object.keys(checks).forEach(key=>target['cfabop.cfaeca.'+key]=checks[key])
        this.check = target
        // this.check = {
        //     "cfabop.cfaeca.recgrp.bas.debtorname": [
        //         {
        //             required: true,
        //             message: "必输项"
        //         },
        //     ],
        //
        //     "cfabop.cfaeca.recgrp.bas.lenagree": [
        //         {
        //             validator: (rule, value, callback) => {
        //                 if (_this.model.cfabop.cfaeca.recgrp.bas.dofoexlotype === '1300') {
        //                     if (value === '') {
        //                         callback(new Error('必输项'));
        //                     }
        //                 }
        //                 callback()
        //             },
        //             trigger: ['blur', 'change']
        //         }
        //     ],
        //
        //     "cfabop.cfaeca.recgrp.bas.lenproname": [
        //         {
        //             validator: (rule, value, callback) => {
        //                 if (_this.model.cfabop.cfaeca.recgrp.bas.dofoexlotype === '1300') {
        //                     if (value === '') {
        //                         callback(new Error('必输项'));
        //                     }
        //                 }
        //                 callback()
        //             },
        //             trigger: ['blur', 'change']
        //         }
        //     ],
        //
        //     "cfabop.cfaeca.recgrp.bas.actiontype": [
        //         {
        //             required: true,
        //             message: "必输项"
        //         },
        //     ],
        //
        //     "cfabop.cfaeca.recgrp.bas.actiondesc": [
        //         {
        //             validator: (rule, value, callback) => {
        //                 if (_this.model.cfabop.cfaeca.recgrp.bas.actiontype === 'D') {
        //                     if (value === '') {
        //                         callback(new Error('必输项'));
        //                     }
        //                 }
        //                 callback()
        //             },
        //             trigger: ['blur', 'change']
        //         }
        //     ],
        //
        //     "cfabop.cfaeca.recgrp.bas.anninrate": [
        //         {
        //             pattern: /^-?[1-9]\d{0,4}(\.\d{1,8})?$|^0(\.\d{1,8})?$/,
        //             message: "整数位不能超过5位,小数位不能超过8位",
        //         },
        //         {
        //             validator: (rule, value, callback) => {
        //                 if (value === null || value === "") {
        //                     return callback(new Error('必输项'))
        //                 } else if (value < 0) {
        //                     callback(new Error('年化利率必须大于等于0'));
        //                 }
        //                 callback()
        //             },
        //         }
        //     ],
        //
        //     "cfabop.cfaeca.recgrp.bas.contractamount": [
        //         {
        //             validator: (rule, value, callback) => {
        //                 if (value === null || value === "") {
        //                     return callback(new Error('必输项'))
        //                 } else if (value < 0) {
        //                     return callback(new Error('签约金额不能小于0'))
        //                 }
        //                 callback()
        //             },
        //             trigger: 'change'
        //         }
        //     ],
        //
        //     "cfabop.cfaeca.recgrp.bas.creditorcode": [
        //         {
        //             required: true,
        //             message: "必输项"
        //         },
        //     ],
        //
        //     "cfabop.cfaeca.recgrp.bas.currence": [
        //         {
        //             required: true,
        //             message: "必输项"
        //         },
        //     ],
        //
        //     "cfabop.cfaeca.recgrp.bas.debtorcode": [
        //         {
        //             validator: (rule, value, callback) => {
        //                 if (value === null || value === "") {
        //                     return callback(new Error('必输项'))
        //                 } else if (value.length != 9) {
        //                     return callback(new Error('组织机构代码位数错误(9位)'))
        //                 }
        //                 callback()
        //             },
        //             trigger: ['blur', 'change']
        //         }
        //     ],
        //
        //     "cfabop.cfaeca.recgrp.bas.dofoexlotype": [
        //         {
        //             required: true,
        //             message: "必输项"
        //         },
        //     ],
        //
        //     "cfabop.cfaeca.recgrp.bas.valuedate": [
        //         {
        //             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']
        //         }],
        //
        //     // "cfabop.cfaeca.recgrp.bas.maturity": [
        //     //     {
        //     //         validator: (rule, value, callback) => {
        //     //             if (!value) {
        //     //                 return callback(new Error('必输项'))
        //     //             } else if (
        //     //                 (_this.model.cfabop.cfaeca.recgrp.bas.valuedate != "" && _this.model.cfabop.cfaeca.recgrp.bas.valuedate != null) &&
        //     //                 moment(value).diff(moment(_this.model.cfabop.cfaeca.recgrp.bas.valuedate), 'days') < 0) {
        //     //                 return callback(new Error('到期日必须大于等于起息日!'))
        //     //             }
        //     //             callback()
        //     //         },
        //     //         trigger: ['blur', 'change']
        //     //     }],
        //
        //
        // }
    }
}