import moment from 'moment';
import BigNumber from 'bignumber.js';

export default {
	data() {
		return {
			rules: {
				"didgrp.rec.godnam":[
					{ required: true, message: "必输项" },
				],
				"didgrp.rec.shppar":[
					{ required: true, message: "必输项" },
				],
				"didgrp.rec.fenctg":[
					{ required: true, message: "必输项" },
				],
				"didgrp.cbs.nom1.cur":[
					{ required: true, message: "必输项" },
				],
				"didgrp.cbs.nom1.amt": [
					{ required: true, message: "必输项" },
					{
						validator(rule, value, callback) {
							if (value <= 0) {
								return callback(new Error('金额必须为正数'));
							} else {
								callback();
							}
						}, trigger: ['blur', 'change']
					}
				],
				"didgrp.rec.hmyamt": [
					{
						validator: (rule, value, callback) => {
							if (this.model.didgrp.rec.mytype == '3') {
								if (value == "" || value == 0) {
									callback(new Error('必输项'))
								}
								else if (value < 0) {
									callback(new Error('金额必须为正数'))
								}
								else {
									if (value > 0 && this.model.didgrp.rec.fmyamt > 0 && (new BigNumber(value).plus(new BigNumber(this.model.didgrp.rec.fmyamt)).comparedTo(new BigNumber(this.model.didgrp.cbs.max.amt)) != 0)) {
										callback(new Error('货物贸易金额与服务贸易金额之和应等于信用证最大金额'))
									}
								}
							}
							callback();
						}, trigger: ['blur', 'change']
					}
				],
				"didgrp.rec.fmyamt": [
					{
						validator: (rule, value, callback) => {
							if (this.model.didgrp.rec.mytype == '3') {
								if (value == "" || value == 0) {
									callback(new Error('必输项'))
								}
								else if (value < 0) {
									callback(new Error('金额必须为正数'))
								}
								else {
									if (value > 0 && this.model.didgrp.rec.hmyamt > 0 && (new BigNumber(value).plus(new BigNumber(this.model.didgrp.rec.hmyamt)).comparedTo(new BigNumber(this.model.didgrp.cbs.max.amt)) != 0)) {
										callback(new Error('货物贸易金额与服务贸易金额之和应等于信用证最大金额'))
									}
								}
							}
							callback();
						}, trigger: ['blur', 'change']
					}
				],
				"didgrp.rec.bsisaeflg": [
					{ required: true, message: "必输项" }
				],
				"didgrp.apb.pts.jigomc": [
					{
						validator: (rule, value, callback) => {
							if (this.model.didgrp.rec.elcflg == 'Y') {
								if (value == null || value == "") {
									callback(new Error('必输项'))
								}
							}
							//校验通过
							callback();
						}, trigger: ['blur', 'change']
					}
				],
				"didgrp.rec.opndat": [
					{ required: true, message: "必输项" },
					{
						validator: (rule, value, callback) => {
							if (moment(value).diff(moment(new Date()).format('YYYY-MM-DD'), 'days') != 0) {
								callback(new Error('开证日期必须为当前日期!'))
							}
							callback()
						},
						trigger: ['blur', 'change']
					}
				],
				"didgrp.rec.shpdat": [
					{ required: true, message: "必输项" },
					{
						validator: (rule, value, callback) => {
							if (this.model.didgrp.rec.elcflg == 'Y') {
								if (value == null || value == "") {
									callback(new Error('必输项'))
								}
							}
							if (moment(value).diff(moment(this.model.didgrp.rec.expdat), 'days') > 0) {
								callback(new Error('最迟装运日不得晚于有效期'));
							}
							//校验通过
							callback();
						}, trigger: ['blur', 'change']
					}
				],
				"didgrp.rec.expdat": [
					{ required: true, message: "必输项" },
					{
						validator: (rule, value, callback) => {
							if (moment(value).diff(moment(this.model.didgrp.rec.opndat), 'days') < 0) {
								callback(new Error('有效期不得早于开证日期'));
							}
							if (moment(value).diff(moment(this.model.didgrp.rec.shpdat), 'days') < 0) {
								callback(new Error('有效期不得早于最迟装运日'));
							}
							// if (this.model.didgrp.rec.elcflg == 'Y') {
							// 	if (moment(value).diff(moment(this.model.didgrp.rec.opndat), 'days') > 366) {
							// 		callback(new Error('有效期最长不超过自开证日起算366天'));
							// 	}
							// }
							if (moment(value).diff(moment(this.model.didgrp.rec.opndat).add(1,"days"), 'years') >0) {
								callback(new Error('效期超一年'));
							}
							//校验通过
							callback();
						}, trigger: ['blur', 'change']
					}
				],

				"didgrp.rec.idcode": [
					{ type: "string", required: false, message: "必输项" },
					{ max: 18, message: "长度不能超过18" }
				],
				"ditp.yptxy":[
					{
						validator: (rule, value, callback) => {
							if(this.model.ditp.xyflg == '' && value=="Y"){
								callback(new Error('请点击协议签署按钮!'))
							}
							callback()
					  	}, trigger: ['blur', 'change']
					}
				],


				"didgrp.rec.tenmaxday": [
					{ type: "integer", required: false, message: "请输入正确的数字" },
					{
						validator: (rule, value, callback) => {
							if (this.model.didgrp.rec.avbby == 'D') {
								if (value <= 0) {
									callback(new Error('必输项'));
								}
								if (value > 366) {
									callback(new Error('付款期限不应超过366天'));
								}
								callback();
							}
							callback();
						}, trigger: ['blur', 'change']
					},
				],
				"didgrp.ben.pts.extact":[
					{ type: "string", required: true, message: "必输项" },
				],
				"didgrp.rec.shpfro": [
					{ type: "string", required: false, message: "必输项" },
				],
				"didgrp.rec.shpto": [
					{ type: "string", required: false, message: "必输项" },
				],
				"didgrp.rec.conno": [
					{ required: true, message: "必输项" },
				],
				"didgrp.rec.shppro": [
					{ type: "string", required: false, message: "必输项" },
				],
				"didgrp.rec.concur": [
					{ required: true, message: "必输项" },
				],
				"didgrp.rec.conamt": [
					{ required: true, message: "必输项" },
					{
						validator(rule, value, callback) {
							if (value < 0) {
								return callback(new Error('金额不能为负数'));
							} else {
								callback();
							}
						}, trigger: ['blur', 'change']
					}
				],
				"didgrp.rec.tzref": [
					{ type: "string", required: false, message: "必输项" },
				],
				"didgrp.blk.lcrgod":[
					{
						validator: (rule, value, callback) => {
							if(this.model.didgrp.rec.elcflg=="Y"){
								if(value==""){
									return callback(new Error('必输项'));
								}
								else{
									if (/["]+/g.test(value)) {
										return callback(new Error('电证时,此栏位不能输入英文双引号字符'));
									}
								}
							}
							callback();
						},
						trigger: ['blur', 'change']
					}
				],
				"didgrp.blk.lcrdoc": [
					{
						validator: (rule, value, callback) => {
							if(this.model.didgrp.rec.elcflg=="Y"){
								if(value==""){
									return callback(new Error('必输项'));
								}
								else{
									if (/["]+/g.test(value)) {
										return callback(new Error('电证时,此栏位不能输入英文双引号字符'));
									}
								}
							}
							callback();
						},
						trigger: ['blur', 'change']
					}
				],
				"didgrp.blk.adlcnd": [
					{
						validator: (rule, value, callback) => {
							if(this.model.didgrp.rec.elcflg=="Y"){
								if (/["]+/g.test(value)) {
									return callback(new Error('电证时,此栏位不能输入英文双引号字符'));
								}
							}
							callback();
						},
						trigger: ['blur', 'change']
					}
				],
				"didgrp.blk.insbnk": [
					{
						validator: (rule, value, callback) => {
							if(this.model.didgrp.rec.elcflg=="Y"){
								if (/["]+/g.test(value)) {
									return callback(new Error('电证时,此栏位不能输入英文双引号字符'));
								}
							}
							callback();
						},
						trigger: ['blur', 'change']
					}
				],
				"didgrp.rec.finrenflg": [
					{ required: true, message: "必输项" }
				],
				"didgrp.rec.elcflg": [
					{ required: true, message: "必输项" }
				],
				"didgrp.rec.guaflg": [
					{ required: true, message: "必输项" }
				],
				//银行明细detp1
				"didgrp.rec.avbwth": [
					{
						validator: (rule, value, callback) => {
							if (this.model.didgrp.rec.opndat != null && this.model.didgrp.rec.opndat != "") {
								if (this.model.didgrp.rec.fenctg == "Y") {
									if (value == null || value == "") {
										callback(new Error("必输项"));
									}
								}
								//校验通过
								callback();
							}
							//校验通过
							callback();
						}, trigger: ['blur', 'change']
					}
				],
				//明细
				"didgrp.rec.avbby": [
					{ required: true, message: "必输项" }
				],
				//备查表
				"litameadv":[
					{ required: true, message: "必输项" }
				]
			}
		}
	}
}