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

export default {
	data() {
		return {
			rules: {
				"swiadd.amenbr": [
					{ required: true, message: "必输项" },
				],
				"swiadd.amedat":[
					{ required: true, message: "必输项" },
				],
				"swiadd.newexpdat":[
					{
						validator: (rule, value, callback) => {
							if (value!=null&&value!="") {
								if (moment(value).diff(moment(this.model.didgrp.rec.opndat).add(1,"days"), 'years') >0) {
									callback(new Error('效期超一年'));
								}
								if (moment(value).diff(moment(this.model.swiadd.amedat), 'days') <0) {
									callback(new Error('新效期不能早于修改当日'));
								}
								let shpdat;
								let info;
								switch(this.model.didgrp.rec.mytype){
									case "H":
									case "":
										info = "最迟货物装运日";
										break;
									case "F":
										info = "最迟服务提供日";
										break;
									case "3":
										info = "最迟货物装运/服务提供日";
										break;
									default:
										info = "最迟货物装运日";
								}
								if (this.model.swiadd.newshpdat==null||this.model.swiadd.newshpdat=="") {
									shpdat =this.model.olddidgrp.rec.shpdat;
								}
								else{
									shpdat=this.model.swiadd.newshpdat;
								}
								if (moment(value).diff(moment(shpdat), 'days') < 0) {
									callback(new Error('新到期日不得早于'+info));
								}
								callback();
							}
							callback();
						}, trigger: ['blur', 'change']
					},
				],
				"swiadd.newshpdat":[
					{
						validator: (rule, value, callback) => {
							if (value!=null&&value!="") {
								let expdat;
								let info;
								switch(this.model.didgrp.rec.mytype){
									case "H":
									case "":
										info = "新最迟货物装运日";
										break;
									case "F":
										info = "新最迟服务提供日";
										break;
									case "3":
										info = "新最迟货物装运/服务提供日";
										break;
									default:
										info = "新最迟货物装运日";
								}
								if (this.model.swiadd.newexpdat==null||this.model.swiadd.newexpdat=="") {
									expdat =this.model.olddidgrp.rec.expdat;
								}
								else{
									expdat=this.model.swiadd.newexpdat;
								}
								if (moment(value).diff(moment(expdat), 'days') > 0) {
									callback(new Error(info+'不得晚于有效期'));
								}
								callback();
							}
							callback();
						}, trigger: ['blur', 'change']
					},
				],
				"didgrp.rec.hmyamt": [
					{
						validator: (rule, value, callback) => {
							if (this.model.didgrp.rec.mytype == '3'&&this.model.olddidgrp.rec.mytype != '3') {
								if (value == "" || value == 0) {
									callback(new Error('必输项'))
								}
							}
							if (this.model.didgrp.rec.mytype == '3') {
								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'&&this.model.olddidgrp.rec.mytype != '3') {
								if (value == "" || value == 0) {
									callback(new Error('必输项'))
								}
							}
							if (this.model.didgrp.rec.mytype == '3') {
								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.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.shppar":[
					{ required: true, message: "必输项" },
				],
				"didgrp.rec.fenctg":[
					{ required: true, message: "必输项" },
				],
				"didgrp.rec.finrenflg": [
					{ required: true, message: "必输项" }
				],
				"didgrp.rec.bsisaeflg": [
					{ required: true, message: "必输项" }
				],
				"didgrp.rec.guaflg": [
					{ required: true, message: "必输项" }
				],

				"didgrp.rec.shpdat": [
					{ type: "string", required: false, message: "输入正确的日期" }
				],


				"didgrp.rec.tzref": [
					{ type: "string", required: false, message: "必输项" },
					{ max: 35, message: "长度不能超过35" }
				],

				"didgrp.rec.tenmaxday": [

					{
						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.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: "必输项" },
				],

				"bchname": [
					{ type: "string", required: false, message: "必输项" },
				],
				"issadr": [
					{ type: "string", required: false, message: "必输项" },
				],
				"pobzip": [
					{ type: "string", required: false, message: "必输项" },
					{ max: 10, message: "长度不能超过10" }
				],
				"tel": [
					{ type: "string", required: false, message: "必输项" },
					{ max: 16, message: "长度不能超过16" }
				],
				"fax": [
					{ type: "string", required: false, message: "必输项" },
					{ max: 16, message: "长度不能超过16" }
				],
				"ditp.signam": [
					{ type: "string", required: false, message: "必输项" },
				],
				"ditp.remark": [
					{ type: "string", required: true, message: "必输项" },
				],

				//明细
				"didgrp.rec.avbby": [
					{ required: true, message: "必输项" }
				],
				//备查表
				"litameadv":[
					{ required: true, message: "必输项" }
				],
				"swiadd.lcrgod":[
					{
						validator: (rule, value, callback) => {
							if(this.model.ditamep.hwmsupdate=='X'){
								if(value==""){
									return callback(new Error('必输项'));
								}
								else{
									if(this.model.didgrp.rec.elcflg=="Y"){
										if (/["]+/g.test(value)) {
											return callback(new Error('电证时,此栏位不能输入英文双引号字符'));
										}
									}
								}
							}
							callback();
						},
						trigger: ['blur', 'change']
					}
				],
				"swiadd.lcrdoc": [
					{
						validator: (rule, value, callback) => {
							if(this.model.ditamep.djyqupdate=='X'){
								if(value==""){
									return callback(new Error('必输项'));
								}
								else{
									if(this.model.didgrp.rec.elcflg=="Y"){
										if (/["]+/g.test(value)) {
											return callback(new Error('电证时,此栏位不能输入英文双引号字符'));
										}
									}
								}
							}
							callback();
						},
						trigger: ['blur', 'change']
					}
				],
				"swiadd.adlcnd": [
					{
						validator: (rule, value, callback) => {
							if(this.model.ditamep.fjtkupdate=='X'){
								if(value==""){
									return callback(new Error('必输项'));
								}
								else{
									if(this.model.didgrp.rec.elcflg=="Y"){
										if (/["]+/g.test(value)) {
											return callback(new Error('电证时,此栏位不能输入英文双引号字符'));
										}
									}
								}
							}
							callback();
						},
						trigger: ['blur', 'change']
					}
				],
				"swiadd.insbnk": [
					{
						validator: (rule, value, callback) => {
							if(this.model.ditamep.zsupdate=='X'){
								if(value==""){
									return callback(new Error('必输项'));
								}
								else{
									if(this.model.didgrp.rec.elcflg=="Y"){
										if (/["]+/g.test(value)) {
											return callback(new Error('电证时,此栏位不能输入英文双引号字符'));
										}
									}
								}
							}
							callback();
						},
						trigger: ['blur', 'change']
					}
				],
			}
		}
	}
}