From febc2d0150b974ab4dafd528a233648dbb0fd5e6 Mon Sep 17 00:00:00 2001 From: wuteng <419274783@qq.com> Date: Thu, 9 Oct 2025 11:46:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8B=E5=8D=95=E5=9B=BD=E5=AE=B6=E5=92=8C?= =?UTF-8?q?=E7=9C=81=E4=BB=BD=E4=B8=8D=E4=B8=80=E8=87=B4=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oms/EmisBaseTools/ProvincePicker1.vue | 114 ++++++++++++++++++ src/views/oms/emisWaybill/OrderRecord.vue | 58 ++++++++- 2 files changed, 166 insertions(+), 6 deletions(-) create mode 100644 src/views/oms/EmisBaseTools/ProvincePicker1.vue diff --git a/src/views/oms/EmisBaseTools/ProvincePicker1.vue b/src/views/oms/EmisBaseTools/ProvincePicker1.vue new file mode 100644 index 0000000..2b0e2d5 --- /dev/null +++ b/src/views/oms/EmisBaseTools/ProvincePicker1.vue @@ -0,0 +1,114 @@ + + diff --git a/src/views/oms/emisWaybill/OrderRecord.vue b/src/views/oms/emisWaybill/OrderRecord.vue index f69b9aa..4192ad5 100644 --- a/src/views/oms/emisWaybill/OrderRecord.vue +++ b/src/views/oms/emisWaybill/OrderRecord.vue @@ -87,7 +87,7 @@
- +
@@ -158,7 +158,7 @@
- +
@@ -818,12 +818,12 @@ import TransProductPicker from '@/views/oms/EmisBaseTools/TransProductPicker.vue import CountryPicker0 from '@/views/oms/EmisBaseTools/CountryPicker.vue'; import CountryPicker1 from '@/views/oms/EmisBaseTools/CountryPicker.vue'; -import ProvincePicker1 from '@/views/oms/EmisBaseTools/ProvincePicker.vue'; +import ProvincePicker1 from '@/views/oms/EmisBaseTools/ProvincePicker1.vue'; import CityPicker1 from '@/views/oms/EmisBaseTools/CityPicker.vue'; import DistrictPicker1 from '@/views/oms/EmisBaseTools/DistrictPicker.vue'; import CountryPicker2 from '@/views/oms/EmisBaseTools/CountryPicker.vue'; -import ProvincePicker2 from '@/views/oms/EmisBaseTools/ProvincePicker.vue'; +import ProvincePicker2 from '@/views/oms/EmisBaseTools/ProvincePicker1.vue'; import CityPicker2 from '@/views/oms/EmisBaseTools/CityPicker.vue'; import DistrictPicker2 from '@/views/oms/EmisBaseTools/DistrictPicker.vue'; @@ -910,6 +910,30 @@ dicts: ['emis_qujian_fangshi','emis_declare_mode','emis_customs_clear', 'emis_tab_packing_type','emis_tab_dispatch_mode','emis_payment_type', 'emis_calc_fee_type','emis_print_type'], data() { + //校验寄件国家地区国家和省份是否匹配 + 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 { activeNames:['1','2','3','4','5'], billCode:null, @@ -940,6 +964,8 @@ data() { } }, lastBillCode: '', // 手动缓存上一次的billCode + senderCountryCode:null, // 寄件人省份国家 + recieverCountryCode:null, // 收件人 省份国家 // 表单校验 rules: { // billCode: [ @@ -956,7 +982,8 @@ data() { { required: true, message: "收货人手机号不能为空", trigger: ["blur",'change'] } ], country: [ - { required: true, message: "收货人国家不能为空", trigger: ["blur",'change'] } + { required: true, message: "收货人国家不能为空", trigger: ["blur",'change'] }, + { validator: checkRecieverCountryProvince, trigger: ['blur', 'change'] } ], province: [ { required: true, message: "收货省不能为空", trigger: ["blur",'change'] } @@ -982,7 +1009,8 @@ data() { { required: true, message: "寄件人手机号不能为空", trigger: ["blur",'change'] } ], country: [ - { required: true, message: "寄件人国家不能为空", trigger: ["blur",'change'] } + { required: true, message: "寄件人国家不能为空", trigger: ["blur",'change'] }, + { validator: checkSenderCountryProvince, trigger: ['blur', 'change'] } ], province: [ { required: true, message: "寄件省不能为空", trigger: ["blur",'change'] } @@ -1838,6 +1866,15 @@ methods: { handleCalcSendSite(){ this.calcSendSite(); }, + // 发货地址省份发生变化 + onHandleProvinceChange(val){ + this.senderCountryCode=val.countryCode; + this.calcSendSite(); + // 省份选择后,强制校验国家是否匹配 + this.$nextTick(() => { + this.$refs.form.validateField("sender.country"); + }); + }, calcSendSite(){ console.log("===>this.form.pickupMethod===>",this.form.pickupMethod); @@ -1864,6 +1901,15 @@ methods: { handleCalcDestSite(){ this.calcDestSite(); }, + // 接收地址省份发生变化 + onHandleRecieverProvinceChange(val){ + this.recieverCountryCode=val.countryCode; + this.calcDestSite(); + // 省份选择后,强制校验国家是否匹配 + this.$nextTick(() => { + this.$refs.form.validateField("reciever.country"); + }); + }, calcDestSite(){ let queryParams = { province:this.form.reciever.province,