import moment from 'moment';
import LimitbodyCheck from '~/components/business/limitbody/model/check.js';
import CfagitCheck from '~/components/business/Cfagit/model/check.js';
import Utils from "~/utils"
import RmbbopCheck from "../../../../components/business/rmb/rmbbop/model/check";

export default function () {
    return {
        "nitp.wzhflg": [
            {
                validator: (rule, value, callback) => {
                    if (this.model.nitp.wzhflgVsb == 'Y' && !value) {
                        callback(new Error('必输项'))
                    } else {
                        callback()
                    }
                }, trigger: ['blur', 'change']
            }
        ],
        ...new LimitbodyCheck(this).check,
        ...new RmbbopCheck(this).check,
        "nitp.xyflg": [
            {
                validator: (rule, value, callback) => {
                    if (this.model.nitp.yptxy == 'Y' && value == "") {
                        callback(new Error('请点击协议签署按钮!'))
                    }
                    callback()
                }, trigger: ['blur', 'change']
            }
        ],
        "nidgrp.rec.expdat": [
            {
                validator: (rule, value, callback) => {
                    if (this.model.nidgrp.rec.expflg == '' && !value) {
                        callback(new Error('必输项'))
                    } else if (moment(value).diff(moment(this.model.nidgrp.rec.opndat), 'days') < 0) {
                        callback(new Error('输入日期不得小于保函开立日期!'))
                    } else {
                        callback()
                    }
                }, trigger: ['blur', 'change']
            }
        ],

        "nidgrp.cbs.max.amt": [
            {type: "string", required: true, message: "必输项"},
            {
                validator(rule, value, callback) {
                    if (value <= 0) {
                        return callback(new Error('金额必须为正数'));
                    } else {
                        callback();
                    }
                }, trigger: ['blur', 'change']
            }
        ],

        "cfagit.cfaflg": [
            {
                type: "string", validator: (rule, value, callback) => {
                    if (this.model.nidgrp.rec.fingua == 'Y' && this.model.cfagit.cfaflg == '') {
                        callback(new Error('必输项'))
                    } else {
                        callback()
                    }
                }, trigger: 'change'
            },
        ],
        "addbcb.label5": [
            {
                type: "string", validator: (rule, value, callback) => {
                    if (this.model.addbcb.label5 == '') {
                        callback(new Error('必输项'))
                    } else {
                        callback()
                    }
                }, trigger: 'change'
            },
        ],
        "addbcb.expdat": [{
            required: true,
            message: '必输项'
        }],
        "addbcb.label6": [
            {
                type: "string", validator: (rule, value, callback) => {
                    if (this.model.addbcb.label6 == '') {
                        callback(new Error('必输项'))
                    } else {
                        callback()
                    }
                }, trigger: 'change'
            },
        ],
        "nidgrp.bdb.pts.nam": [
            {
                type: "string", validator: (rule, value, callback) => {
                    if (this.model.nidgrp.rec.fenlishi != '' && this.model.nidgrp.bdb.pts.nam == '') {
                        callback(new Error('必输项'))
                    } else {
                        callback()
                    }
                }, trigger: 'change'
            },
        ],

        "nidgrp.rec.cxmflg": [
            {required: true, message: "必输项"},
        ],

        "nidgrp.payeecountcode": [
            {type: "string", required: true, message: "必输项"},
        ],
        "cfagit.ownextkey": [
            {
                type: "string", validator: (rule, value, callback) => {
                    if (this.model.nidgrp.rec.fingua == 'Y' && this.model.cfagit.ownextkey == '') {
                        callback(new Error('必输项'))
                    } else {
                        callback()
                    }
                }, trigger: 'change'
            },
        ],
        "nidgrp.rec.grtjuscod": [
            {
                type: "string", validator: (rule, value, callback) => {
                    if (this.model.nidgrp.rec.fenlishi != '' && this.model.nidgrp.rec.grtjuscod == '') {
                        callback(new Error('必输项'))
                    } else {
                        callback()
                    }
                }, trigger: ['blur', 'change']
            },
        ],

        "nidgrp.rec.idcode": [
            {
                type: "string", validator: (rule, value, callback) => {
                    if (this.model.nidgrp.rec.othersno && this.model.nidgrp.rec.othersno == 'F0000002' && this.model.nidgrp.rec.idcode == '') {
                        callback(new Error('必输项'))
                    } else {
                        callback()
                    }
                }, trigger: ['blur', 'change']
            },
        ],

        "nidgrp.rec.benefitcode": [
            {
                type: "string", validator: (rule, value, callback) => {
                    if (this.model.nidgrp.rec.othersno && this.model.nidgrp.rec.othersno == 'F0000002' && this.model.nidgrp.rec.benefitcode == '') {
                        callback(new Error('必输项'))
                    } else {
                        callback()
                    }
                }, trigger: ['blur', 'change']
            },
        ],

        "addbcb.bccls2": [{type: "string", required: true, message: "必输项"}],
        "addbcb.bccls1": [{type: "string", required: true, message: "必输项"}],
        "addbcb.bccls4": null,
        // "addbcb.bccls3": [{ type: "string", required: true, message: "必输项"}],
        "addbcb.preexpdat": [
            {
                validator: (rule, value, callback) => {
                    if (!value && this.model.addbcb.bccls1 == 'Y') {
                        callback(new Error('必输项'))
                    } else {
                        callback()
                    }
                }, trigger: ['blur', 'change']
            }
        ],

        //====开立方式========================================
        "nidgrp.rec.fingua": [
            {type: "string", required: true, message: "必输项", trigger: 'change'},
        ],
        "nidgrp.rec.ownref": [
            {type: "string", required: true, message: "必输项"},
            {max: 16, message: "长度不能超过16"}
        ],
        //====基本信息========================================
        "nitp.usr.extkey": [
            {type: "string", required: false, message: "必输项"},
            {max: 8, message: "长度不能超过8"}
        ],
        "nidgrp.cbs.max.cur": [
            {type: "string", required: true, message: "必输项"},
        ],
        "nidgrp.rec.projnam": [
            {type: "string", required: true, message: "必输项"},
            {max: 100, message: "长度不能超过100"}
        ],
        "nidgrp.cbs.opn1.cur": [
            {type: "string", required: false, message: "必输项"},
            {max: 3, message: "长度不能超过3"}
        ],
        "nidgrp.rec.iscrotra": [
            {
                type: "string", validator: (rule, value, callback) => {
                    if (this.model.nidgrp.rec.hndtyp == 'OT' && !value) {
                        callback(new Error('必输项'))
                    } else {
                        callback()
                    }
                }, trigger: ['blur', 'change']
            },
        ],
        "nidgrp.cbs.opn1.amt": [
            {type: "string", required: false, message: "必输项"},
            {max: 17, message: "整数位不能超过14位"},
        ],
        "nidgrp.rec.hndtyp": [
            {type: "string", required: true, message: "必输项"},
            {max: 4, message: "长度不能超过4"}
        ],
        "nidgrp.rec.gartyp": [
            {type: "string", required: true, message: "必输项", trigger: 'change'},
        ],
        "nitp.lettername": [
            {type: "string", required: false, message: "必输项"},
            {max: 60, message: "长度不能超过60"}
        ],
        "nidgrp.blk.apprultxt": [
            {type: "string", required: false, message: "必输项"},
            {max: 35, message: "长度不能超过35"}
        ],
        "nidgrp.rec.vrfdat": [
            {type: "string", required: false, message: "输入正确的日期"}
        ],
        "nidgrp.rec.orddat": [
            {type: "string", required: false, message: "输入正确的日期"}
        ],
        "nidgrp.rec.opndat": [
            {type: "string", required: true, message: "输入正确的日期"},
            {
                validator: (rule, value, callback) => {
                    if (moment(value).diff(moment(new Date()), 'days') < 0) {
                        callback(new Error('输入日期不得小于当前日!'))
                    } else if (moment(value).diff(moment(new Date()), 'hours') > 0) {
                        callback(new Error('输入日期不得大于当前日!'))
                    } else {
                        callback()
                    }
                }, trigger: ['blur', 'change']
            }
        ],
        "nidgrp.rec.liadat": [
            {
                type: "string", validator: (rule, value, callback) => {
                    if (this.model.nidgrp.rec.liaflg == '' && this.model.nidgrp.rec.hndtyp == 'OC' && !value) {
                        callback(new Error('必输项'))
                    } else if (value && moment(value).diff(moment(this.model.nidgrp.rec.expdat), 'days') < 0) {
                        callback(new Error('反担保有效期不能早于保函有效期!'))
                    } else {
                        callback()
                    }
                }, trigger: ['change', 'blur']
            },
        ],
        "nidgrp.rec.inudat": [
            {type: "string", required: false, message: "输入正确的日期"}
        ],
        "nidgrp.rec.aplnam": [
            {type: "string", required: false, message: "必输项"},
            {max: 40, message: "长度不能超过40"}
        ],
        "nidgrp.rec.oppbnk": [{
            required: true,
            message: "必输项"
        }
        ],
        "nidgrp.rec.nam": [
            {type: "string", required: false, message: "必输项"},
            {max: 40, message: "长度不能超过40"}
        ],

        //=============================================================================
        // "nidgrp.blk.exptxt":[
        //     {type: "string", required: true, message: "必输项"},
        //     {max: 780,message:"长度不能超过780"}
        // ],
        // "nidgrp.blk.atxexptxt":[
        //     {type: "string", required: true, message: "必输项"},
        //     {max: 65,message:"长度不能超过65"}
        // ],
        // "nidgrp.blk.liatxtc":[
        //     {type: "string", required: true, message: "必输项"},
        //     {max: 780,message:"长度不能超过780"}
        // ],
        // "nidgrp.blk.atxliatxtc":[
        //     {type: "string", required: true, message: "必输项"},
        //     {max: 65,message:"长度不能超过65"}
        // ],
        //=============================================================================

        //====当事人描述========================================
        "nidgrp.apl.pts.ref": [
            {type: "string", required: false, message: "必输项"},
            {max: 16, message: "长度不能超过16"}
        ],
        "nidgrp.apl.pts.adrblk": [
            {type: "string", required: false, message: "必输项"},
            {max: 140, message: "长度不能超过140"}
        ],
        "nidgrp.apl.dbfadrblkcn": [
            {type: "string", required: false, message: "必输项"},
            {max: 140, message: "长度不能超过140"}
        ],
        "nidgrp.apl.adrelc": [
            {type: "string", required: false, message: "必输项"},
            {max: 140, message: "长度不能超过140"}
        ],
        "nidgrp.ctr.pts.ref": [
            {type: "string", required: false, message: "必输项"},
            {max: 16, message: "长度不能超过16"}
        ],
        "nidgrp.ctr.pts.extkey": [
            // { type: "string", required: false, message: "必输项" },
            {
                type: "string", validator: (rule, value, callback) => {
                    if (this.model.nidgrp.rec.hndtyp == 'OT' && this.model.nidgrp.ctr.pts.extkey == '') {
                        callback(new Error('必输项'))
                    } else {
                        callback()
                    }
                }, trigger: 'change'
            },
            {max: 16, message: "长度不能超过16"}
        ],
        "nidgrp.ctr.pts.nam": [
            // { type: "string", required: false, message: "必输项" },
            {
                type: "string", validator: (rule, value, callback) => {
                    if (this.model.nidgrp.rec.hndtyp == 'OT' && this.model.nidgrp.ctr.pts.nam == '') {
                        callback(new Error('必输项'))
                    } else {
                        callback()
                    }
                }, trigger: 'change'
            },
            {max: 40, message: "长度不能超过40"}
        ],
        "nidgrp.ctr.pts.adrblk": [
            {type: "string", required: false, message: "必输项"},
            {max: 140, message: "长度不能超过140"}
        ],
        "nidgrp.ctr.dbfadrblkcn": [
            {type: "string", required: false, message: "必输项"},
            {max: 140, message: "长度不能超过140"}
        ],
        "nidgrp.ctr.adrelc": [
            {type: "string", required: false, message: "必输项"},
            {max: 140, message: "长度不能超过140"}
        ],
        "nidgrp.iss.pts.ref": [
            {type: "string", required: false, message: "必输项"},
            {max: 16, message: "长度不能超过16"}
        ],
        "nidgrp.iss.pts.extkey": [
            {type: "string", required: true, message: "必输项"},
            {max: 16, message: "长度不能超过16"}
        ],
        "nidgrp.iss.pts.nam": [
            {type: "string", required: true, message: "必输项"},
            {max: 40, message: "长度不能超过40"}
        ],
        "nidgrp.iss.pts.adrblk": [
            {type: "string", required: false, message: "必输项"},
            {max: 140, message: "长度不能超过140"}
        ],
        "nidgrp.iss.dbfadrblkcn": [
            {type: "string", required: false, message: "必输项"},
            {max: 140, message: "长度不能超过140"}
        ],
        "nidgrp.iss.adrelc": [
            {type: "string", required: false, message: "必输项"},
            {max: 140, message: "长度不能超过140"}
        ],
        "nidgrp.ben.pts.ref": [
            {type: "string", required: false, message: "必输项"},
            {max: 16, message: "长度不能超过16"}
        ],
        "nidgrp.ben.pts.extkey": [
            {type: "string", required: false, message: "必输项"},
            {max: 16, message: "长度不能超过16"}
        ],
        "nidgrp.ben.pts.nam": [
            {type: "string", required: true, message: "必输项"},
            {max: 40, message: "长度不能超过40"}
        ],
        "nidgrp.ben.pts.adrblk": [
            {required: false, message: "必输项"},
        ],
        "nidgrp.ben.dbfadrblkcn": [
            {type: "string", required: false, message: "必输项"},
            {max: 140, message: "长度不能超过140"}
        ],
        "nidgrp.ben.adrelc": [
            {type: "string", required: false, message: "必输项"},
            {max: 140, message: "长度不能超过140"}
        ],
        "nidgrp.adv.pts.ref": [
            {type: "string", required: false, message: "必输项"},
            {max: 16, message: "长度不能超过16"}
        ],
        "nidgrp.adv.pts.extkey": [
            {
                type: "string", validator: (rule, value, callback) => {
                    if (this.model.nidgrp.rec.hndtyp != 'OL' || this.model.nidgrp.rec.hndtyp == '') {
                        callback(new Error('必输项'))
                    } else {
                        callback()
                    }
                }, trigger: 'change'
            },
            {max: 16, message: "长度不能超过16"}
        ],
        "nidgrp.adv.pts.nam": [
            {
                type: "string", validator: (rule, value, callback) => {
                    if (this.model.nidgrp.rec.hndtyp != 'OL' || this.model.nidgrp.rec.hndtyp == '') {
                        callback(new Error('必输项'))
                    } else {
                        callback()
                    }
                }, trigger: 'change'
            },
            {max: 40, message: "长度不能超过40"}
        ],
        "nidgrp.adv.pts.adrblk": [
            {type: "string", required: false, message: "必输项"},
            {max: 140, message: "长度不能超过140"}
        ],
        "nidgrp.adv.dbfadrblkcn": [
            {type: "string", required: false, message: "必输项"},
            {max: 140, message: "长度不能超过140"}
        ],
        "nidgrp.adv.adrelc": [
            {type: "string", required: false, message: "必输项"},
            {max: 140, message: "长度不能超过140"}
        ],

        //===演示/交付=============================
        "nidgrp.rec.deloritxt": [
            {type: "string", required: false, message: "必输项"},
            {max: 35, message: "长度不能超过35"}
        ],
        "nidgrp.blk.deltoadr": [
            {type: "string", required: false, message: "必输项"},
            {max: 210, message: "长度不能超过210"}
        ],
        "nidgrp.blk.trfcond": [
            {type: "string", required: false, message: "必输项"},
            {max: 6630, message: "长度不能超过6630"}
        ],
        "nidgrp.blk.feetxt": [
            {type: "string", required: true, message: "必输项"},
            {max: 210, message: "长度不能超过210"}
        ],
        "nidgrp.blk.preper": [
            {type: "string", required: true, message: "必输项"},
            {max: 6500, message: "长度不能超过6500"}
        ],
        "nidgrp.blk.atxpreper": [
            {type: "string", required: true, message: "必输项"},
            {max: 65, message: "长度不能超过65"}
        ],


        //===详细信息=============================
        "nidgrp.rec.orcref": [
            {type: "string", required: false, message: "必输项"},
            {max: 100, message: "长度不能超过100"}
        ],
        "nidgrp.rec.orcdat": [
            {type: "string", required: false, message: "输入正确的日期"}
        ],
        "nidgrp.rec.tenclsdat": [
            {type: "string", required: false, message: "输入正确的日期"}
        ],
        "nidgrp.blk.covgodsrv": [
            {type: "string", required: true, message: "必输项"},
            {max: 350, message: "长度不能超过350"}
        ],
        "nidgrp.blk.atxcovgodsrvc": [
            {type: "string", required: true, message: "必输项"},
            {max: 65, message: "长度不能超过65"}
        ],
        "nidgrp.rec.orcrat": [
            {type: "string", required: false, message: "必输项"},
            {max: 14, message: "长度不能超过14"}
        ],
        "nidgrp.rec.orcamt": [
            {type: "string", required: false, message: "必输项"},
            {max: 18, message: "整数位不能超过14位"},
        ],
        "nidgrp.blk.orcplc": [
            {type: "string", required: false, message: "必输项"},
            {max: 140, message: "长度不能超过140"}
        ],
        "nidgrp.rec.acc": [
            {type: "string", required: false, message: "必输项"},
            {max: 35, message: "长度不能超过35"}
        ],
        "nidgrp.rec.jurlaw": [
            {type: "string", required: false, message: "必输项"},
            {max: 35, message: "长度不能超过35"}
        ],
        "nidgrp.rec.jurplc": [
            {type: "string", required: false, message: "必输项"},
            {max: 35, message: "长度不能超过35"}
        ],
        "nidgrp.rec.projname": [
            {type: "string", required: true, message: "必输项"},
            {max: 100, message: "长度不能超过100"}
        ],
        "nidgrp.rec.guatyp": [
            {type: "string", required: true, message: "必输项"},
        ],
        "nidgrp.rec.tenref": [
            {type: "string", required: false, message: "必输项"},
            {max: 35, message: "长度不能超过35"}
        ],
        "nidgrp.rec.tendat": [
            {type: "string", required: false, message: "输入正确的日期"}
        ],
        "nidgrp.rec.trmdat": [
            {type: "string", required: false, message: "输入正确的日期"}
        ],
        "nidgrp.rec.mannum": [
            {type: "string", required: false, message: "必输项"},
            {max: 12, message: "长度不能超过12"}
        ],
        "nidgrp.rec.wahnum": [
            {type: "string", required: false, message: "必输项"},
            {max: 20, message: "长度不能超过20"}
        ],
        "nidgrp.rec.bennam": [
            {type: "string", required: false, message: "必输项"},
            {max: 80, message: "长度不能超过80"}
        ],
        "nidgrp.rec.bngcod": [
            {type: "string", required: false, message: "必输项"},
            {max: 10, message: "长度不能超过10"}
        ],
        "nidgrp.rec.juscod": [
            {type: "string", required: false, message: "必输项"},
            {max: 10, message: "长度不能超过10"}
        ],
        "nidgrp.rec.bilvvv": [
            {type: "string", required: false, message: "必输项"},
            {max: 8, message: "长度不能超过8"}
        ],
        "nitp.indirectswiadd": [
            {type: "string", required: true, message: "必输项"},
            {max: 9750, message: "长度不能超过9750"}
        ],
        "nidgrp.blk.addinf": [
            {type: "string", required: false, message: "必输项"},
            {max: 700, message: "长度不能超过700"}
        ],
        "nidgrp.rec.remark": [
            {type: "string", required: true, message: "必输项"},
            {max: 245, message: "长度不能超过245"}
        ],
        "nidgrp.blk.gidtxt": [
            // {type: "string", required: true, message: "必输项"},
            {
                validator: (rule, value, callback) => {
                    if (this.model.nidgrp.rec.giduil == 'EN' && value && !Utils.testSwiftZ(value)) {
                        callback("请清理标记的非法字符");
                        return
                    }
                    callback()
                },
                trigger: ['change', 'blur']
            },
            {
                validator: (rule, value, callback) => {
                    if (this.model.nitp.wzhflg == 'Y' && value && value.indexOf("银行签章") < 0) {
                        callback(new Error("请添加'银行签章'关键字,以在凭证无纸化系统盖章使用"));
                        return
                    }
                    callback()
                },
                trigger: ['change', 'blur']
            },
        ],

        "nidgrp.rec.cfaguatyp": [
            {
                type: "string", validator: (rule, value, callback) => {
                    if (this.model.nidgrp.rec.fingua == 'Y' && this.model.nidgrp.rec.cfaguatyp == '') {
                        callback(new Error('对外担保类型不能为空'))
                    } else {
                        callback()
                    }
                }, trigger: 'change'
            }
        ],

        "nidgrp.rec.countrycod": [
            {type: "string", required: true, message: "必输项", trigger: 'change'}
        ],
        "cfagit.recgrp.bas.guarantorcode": [{
            required: true,
            message: "必输项"
        }],
        "cfagit.recgrp.bas.guarancurr": [{
            required: true,
            message: "必输项"
        }],
        "cfagit.recgrp.bas.guaranamount": [{
            required: true,
            message: "必输项"
        }],
        "cfagit.recgrp.bas.bentype": [{
            required: true,
            message: "必输项"
        }],
        "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: "必输项"
        }],
        ...new CfagitCheck(this).check,
    }
}