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,