From 1be934fb729f6209138499d3511253ee7b2bce63 Mon Sep 17 00:00:00 2001 From: wuteng <419274783@qq.com> Date: Thu, 17 Jul 2025 13:33:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BD=E5=AE=B6=E4=B8=8E=E7=9C=81=E4=BB=BD?= =?UTF-8?q?=E5=8C=B9=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../emis/EmisBaseTools/ProvincePicker.vue | 5 +- src/views/emis/emisWaybill/waybillModify.vue | 52 +++++++++++++-- src/views/emis/emisWaybill/waybillRecord.vue | 6 +- .../emisWaybillAjustApply/adjustPanel.vue | 63 +++++++++++++++++-- 4 files changed, 112 insertions(+), 14 deletions(-) diff --git a/src/views/emis/EmisBaseTools/ProvincePicker.vue b/src/views/emis/EmisBaseTools/ProvincePicker.vue index d1fa2024..dd65dbc3 100644 --- a/src/views/emis/EmisBaseTools/ProvincePicker.vue +++ b/src/views/emis/EmisBaseTools/ProvincePicker.vue @@ -81,8 +81,9 @@ methods: { }, onChange() { this.$emit("input", this.svalue); - this.$emit("onChange"); - }, + //传选中值对象 + let selItem = this.optionItems.find(item => item.regionCode == this.svalue); + this.$emit("onChange", selItem);}, queryData(val,key) { this.optionItems =[]; diff --git a/src/views/emis/emisWaybill/waybillModify.vue b/src/views/emis/emisWaybill/waybillModify.vue index 26ff9e31..64092780 100644 --- a/src/views/emis/emisWaybill/waybillModify.vue +++ b/src/views/emis/emisWaybill/waybillModify.vue @@ -242,7 +242,7 @@
- +
@@ -306,7 +306,7 @@
- +
@@ -939,6 +939,31 @@ data() { callback(); } } + //校验寄件国家地区国家和省份是否匹配 + var checkSenderCountryProvince = (rule, value, callback) => { + if (this.form.sender.country && this.senderCountryCode) { + if (this.form.sender.country != this.senderCountryCode) { + callback(new Error('寄件国家和省份不一致')); + } else { + callback(); + } + } else { + callback(); + } + } + //校验收件国家地区国家和省份是否匹配 + var checkRecieverCountryProvince = (rule, value, callback) => { + console.log('value',value, this.form.reciever.country , this.recieverCountryCode) + if (this.form.reciever.country && this.recieverCountryCode) { + if (this.form.reciever.country != this.recieverCountryCode) { + callback(new Error('收件国家和省份不一致')); + } else { + callback(); + } + } else { + callback(); + } + } return { activeNames:['1','2','3','4'], exchangeRate:null, @@ -968,6 +993,9 @@ data() { subHasCnt:0 }, sendSiteSelectCount:0,//寄件网点变化次数 + //寄件人省份的国家 + senderCountryCode:null, + recieverCountryCode:null, // 表单校验 rules: { billCode: [ @@ -987,7 +1015,9 @@ data() { { required: true, message: "收货人国家不能为空", trigger: ["blur",'change'] } ], province: [ - { required: true, message: "收货省不能为空", trigger: ["blur",'change'] } + { required: true, message: "收货省不能为空", trigger: ["blur",'change'] }, { + validator: checkRecieverCountryProvince, trigger: ['blur', 'change'] + } ], company: [ { required: true, message: "收货公司不能为空", trigger: ["blur",'change'] } @@ -1013,7 +1043,8 @@ data() { { required: true, message: "寄件人国家不能为空", trigger: ["blur",'change'] } ], province: [ - { required: true, message: "寄件省不能为空", trigger: ["blur",'change'] } + { required: true, message: "寄件省不能为空", trigger: ["blur",'change'] },{ + validator: checkSenderCountryProvince, trigger: ['blur', 'change'] } ], company: [ { required: true, message: "寄件公司不能为空", trigger: ["blur",'change'] } @@ -2486,6 +2517,19 @@ methods: { this.form.remark = this.form.remark.replace(/该单为虚拟单:对应主单为[\da-zA-Z]+/g, ''); } } + }, + //寄件省份变化 + onChangeSenderProvince(val){ + if(val){ + this.senderCountryCode = val.countryCode; + } + }, + //收件省份变化 + onChangeRecieverProvince(val){ + if(val){ + this.recieverCountryCode = val.countryCode; + } + this.handleCalcDestSite(); } } }; diff --git a/src/views/emis/emisWaybill/waybillRecord.vue b/src/views/emis/emisWaybill/waybillRecord.vue index 63ec01dd..d179d2dc 100644 --- a/src/views/emis/emisWaybill/waybillRecord.vue +++ b/src/views/emis/emisWaybill/waybillRecord.vue @@ -943,10 +943,9 @@ data() { } //校验寄件国家地区国家和省份是否匹配 var checkSenderCountryProvince = (rule, value, callback) => { - console.log('value',value, this.form.sender.country , this.senderCountryCode) if (this.form.sender.country && this.senderCountryCode) { if (this.form.sender.country != this.senderCountryCode) { - callback(new Error('国家和省份不一致')); + callback(new Error('寄件国家和省份不一致')); } else { callback(); } @@ -956,10 +955,9 @@ data() { } //校验收件国家地区国家和省份是否匹配 var checkRecieverCountryProvince = (rule, value, callback) => { - console.log('value',value, this.form.reciever.country , this.recieverCountryCode) if (this.form.reciever.country && this.recieverCountryCode) { if (this.form.reciever.country != this.recieverCountryCode) { - callback(new Error('国家和省份不一致')); + callback(new Error('收件国家和省份不一致')); } else { callback(); } diff --git a/src/views/emis/emisWaybillAjustApply/adjustPanel.vue b/src/views/emis/emisWaybillAjustApply/adjustPanel.vue index 2ff2800e..47394c34 100644 --- a/src/views/emis/emisWaybillAjustApply/adjustPanel.vue +++ b/src/views/emis/emisWaybillAjustApply/adjustPanel.vue @@ -634,7 +634,7 @@
- +
@@ -691,7 +691,7 @@
- +
@@ -1297,6 +1297,30 @@ export default { callback(); } } + //校验寄件国家地区国家和省份是否匹配 + var checkSenderCountryProvince = (rule, value, callback) => { + if (this.form.sender.country && this.senderCountryCode) { + if (this.form.sender.country != this.senderCountryCode) { + callback(new Error('寄件国家和省份不一致')); + } else { + callback(); + } + } else { + callback(); + } + } + //校验收件国家地区国家和省份是否匹配 + var checkRecieverCountryProvince = (rule, value, callback) => { + if (this.form.reciever.country && this.recieverCountryCode) { + if (this.form.reciever.country != this.recieverCountryCode) { + callback(new Error('收件国家和省份不一致')); + } else { + callback(); + } + } else { + callback(); + } + } return { triggerCount:0, activeNames:['1','2','3','4'], @@ -1314,6 +1338,9 @@ export default { masterBillProductType:null, // 表单参数 form:{}, + //寄件人省份的国家 + senderCountryCode:null, + recieverCountryCode:null, // 表单校验 rules: { billCode: [ @@ -1333,7 +1360,9 @@ export default { { required: true, message: "收货人国家不能为空", trigger: ["blur",'change'] } ], province: [ - { required: true, message: "收货省不能为空", trigger: ["blur",'change'] } + { required: true, message: "收货省不能为空", trigger: ["blur",'change'] }, { + validator: checkRecieverCountryProvince, trigger: ['blur', 'change'] + } ], company: [ { required: true, message: "发件公司不能为空", trigger: ["blur",'change'] } @@ -1359,7 +1388,8 @@ export default { { required: true, message: "寄件人国家不能为空", trigger: ["blur",'change'] } ], province: [ - { required: true, message: "寄件省不能为空", trigger: ["blur",'change'] } + { required: true, message: "寄件省不能为空", trigger: ["blur",'change'] },{ + validator: checkSenderCountryProvince, trigger: ['blur', 'change'] } ], company: [ { required: true, message: "发件公司不能为空", trigger: ["blur",'change'] } @@ -1498,6 +1528,7 @@ export default { this.applyTypeArr=[]; } console.log("====>this.applyTypeArr==>",this.applyTypeArr); + this.initCountryCode(); }, deep: true }, @@ -2140,6 +2171,30 @@ export default { this.form.startSiteCode = item.siteCode; this.form.startSiteName = item.siteName; }, + //寄件省份变化 + onChangeSenderProvince(val){ + console.log('onChangeSenderProvince',val) + if(val){ + this.senderCountryCode = val.countryCode; + } + }, + //收件省份变化 + onChangeRecieverProvince(val){ + console.log('val++++++',val) + if(val){ + this.recieverCountryCode = val.countryCode; + } + this.handleCalcDestSite(); + }, + //初始化选中省份的国家 + initCountryCode(){ + if(this.form.sender){ + this.senderCountryCode = this.form.sender.country; + } + if(this.form.reciever){ + this.recieverCountryCode = this.form.reciever.country; + } + } } };