运单录入、修改、接单、弹窗提醒省份改为特区

This commit is contained in:
wuteng 2026-01-31 16:27:55 +08:00
parent ed469d9877
commit d3cda36cf5
4 changed files with 140 additions and 13 deletions

View File

@ -354,7 +354,7 @@
</el-col>
<el-col :span="24">
<el-form-item :label="$t('收件地址')" prop="reciever.address">
<el-input v-model="form.reciever.address" type="textarea" rows="3" placeholder="" @change="handleRecieverAddressChange"/>
<el-input v-model="form.reciever.address" type="textarea" rows="3" placeholder="" @change="handleRecieverAddressChange" @blur="handleRecieverAddressBlur"/>
</el-form-item>
</el-col>
@ -881,7 +881,7 @@ import { parseTime } from "@/utils/custom";
import { debounce } from 'throttle-debounce'
import { getDestSite } from "@/api/emis/emisDestination";
import { getValidExchangeRate } from "@/api/emis/emisExchangeRate";
import { matchByAddress } from "@/api/emis/emisSpecialZone";
import DestinationPicker from '@/views/emis/EmisBaseTools/DestinationPicker.vue';
@ -2752,7 +2752,40 @@ methods: {
},
//收件地址失去焦点时
handleRecieverAddressChange() {
this.openSpecialZone(this.recieverCountryCode,this.form.reciever.address , this.recieverRegionName);
setTimeout(()=>{
this.openSpecialZone(this.recieverCountryCode,this.form.reciever.address , this.recieverRegionName);
},500)
},
async handleRecieverAddressBlur(){
//如果目的国是柬埔寨、孟加拉国 匹配特区标签
if (['0855', '0880'].includes(this.form.destinationCountry)) {
const res = await matchByAddress({
address: this.form.reciever.address
});
// if(res.data){
// this.recieverCountryCode = res.data.countryCode;
// this.form.reciever.country = res.data.countryCode;
// this.form.reciever.province = res.data.provinceCode;
// this.recieverRegionName = res.data.provinceName;
// }
if(res.data && res.data.provinceName !== this.recieverRegionName){
// 弹出确认框
this.$confirm(`收件地址在"${res.data.provinceName}",请仔细核对,并将其设为收件省份吗?`, "提示", {
confirmButtonText: "确定",
type: "warning",
distinguishCancelAndClose: true,
closeOnClickModal: false,
showCancelButton: true,
showClose: false
}).then(() => {
this.recieverCountryCode = res.data.countryCode;
this.form.reciever.country = res.data.countryCode;
this.form.reciever.province = res.data.provinceCode;
this.recieverRegionName = res.data.provinceName;
this.handleCalcDestSite();
});
}
}
},
// 弹出柬埔寨特区提醒
openSpecialZone(countryCode, address, recieverRegionName) {

View File

@ -63,7 +63,7 @@
</el-col>
<!-- 运单修改 end -->
<el-col :span="6">
<el-col :span="6">
<el-form-item :label="$t('目的国')" prop="destinationCountry">
<CountryPicker0 v-model="form.destinationCountry" @onChange="onDestCountryChange"></CountryPicker0>
</el-form-item>
@ -356,7 +356,7 @@
</el-col>
<el-col :span="24">
<el-form-item :label="$t('收件地址')" prop="reciever.address">
<el-input v-model="form.reciever.address" type="textarea" rows="3" placeholder="" @change="handleRecieverAddressChange"/>
<el-input v-model="form.reciever.address" type="textarea" rows="3" placeholder="" @change="handleRecieverAddressChange" @blur="handleRecieverAddressBlur"/>
</el-form-item>
</el-col>
@ -880,6 +880,7 @@ import { parseTime } from "@/utils/custom";
import { debounce } from 'throttle-debounce'
import { getDestSite } from "@/api/emis/emisDestination";
import { getValidExchangeRate } from "@/api/emis/emisExchangeRate";
import { matchByAddress } from "@/api/emis/emisSpecialZone";
import DestinationPicker from '@/views/emis/EmisBaseTools/DestinationPicker.vue';
@ -2753,7 +2754,39 @@ methods: {
},
//收件地址失去焦点时
handleRecieverAddressChange() {
this.openSpecialZone(this.recieverCountryCode,this.form.reciever.address , this.recieverRegionName);
setTimeout(() => {
this.openSpecialZone(this.recieverCountryCode,this.form.reciever.address , this.recieverRegionName);
}, 500);
},
async handleRecieverAddressBlur(){
//如果目的国是柬埔寨、孟加拉国 匹配特区标签
if (['0855', '0880'].includes(this.form.destinationCountry)) {
const res = await matchByAddress({
address: this.form.reciever.address
});
// if(res.data){
// this.recieverCountryCode = res.data.countryCode;
// this.form.reciever.country = res.data.countryCode;
// this.form.reciever.province = res.data.provinceCode;
// this.recieverRegionName = res.data.provinceName;
// }
if(res.data && res.data.provinceName !== this.recieverRegionName){
this.$confirm(`收件地址在"${res.data.provinceName}",请仔细核对,并将其设为收件省份吗?`, "提示", {
confirmButtonText: "确定",
type: "warning",
distinguishCancelAndClose: true,
closeOnClickModal: false,
showCancelButton: true,
showClose: false
}).then(() => {
this.recieverCountryCode = res.data.countryCode;
this.form.reciever.country = res.data.countryCode;
this.form.reciever.province = res.data.provinceCode;
this.recieverRegionName = res.data.provinceName;
this.handleCalcDestSite();
});
}
}
},
// 弹出柬埔寨特区提醒
openSpecialZone(countryCode, address, recieverRegionName) {

View File

@ -357,7 +357,7 @@
</el-col>
<el-col :span="24">
<el-form-item :label="$t('收件地址')" prop="reciever.address">
<el-input v-model="form.reciever.address" type="textarea" rows="3" placeholder="" @change="handleRecieverAddressChange"/>
<el-input v-model="form.reciever.address" type="textarea" rows="3" placeholder="" @change="handleRecieverAddressChange" @blur="handleRecieverAddressBlur"/>
</el-form-item>
</el-col>
@ -879,6 +879,7 @@
import { realMatchWaybill,getTotalAvailablePag } from "@/api/emis/emisCommon";
import { checkWaybillIsExists,getWaybillDetail,realSubmitOrder,calcWaybillFee,calcSetteldWeight,calcVolumeWeight} from "@/api/emis/emisWaybill";
import { listCustomsLevel } from "@/api/emis/emisCustomsLevel";
import { matchByAddress } from "@/api/emis/emisSpecialZone";
import { parseTime } from "@/utils/custom";
import { debounce } from 'throttle-debounce'
import { getDestSite } from "@/api/emis/emisDestination";
@ -2717,11 +2718,38 @@ methods: {
this.recieverRegionName = null;
}
this.handleCalcDestSite();
this.openSpecialZone(this.recieverCountryCode,this.form.reciever.address , this.recieverRegionName);
this.openSpecialZone(this.recieverCountryCode,this.form.reciever.address , this.recieverRegionName);
},
//收件地址失去焦点时
handleRecieverAddressChange() {
this.openSpecialZone(this.recieverCountryCode,this.form.reciever.address , this.recieverRegionName);
//收件地址值变化
handleRecieverAddressChange() {
setTimeout(()=>{
this.openSpecialZone(this.recieverCountryCode, this.form.reciever.address, this.recieverRegionName);
},500)
},
async handleRecieverAddressBlur(){
//如果目的国是柬埔寨、孟加拉国 匹配特区标签
if (['0855', '0880'].includes(this.form.destinationCountry)) {
const res = await matchByAddress({
address: this.form.reciever.address
});
if(res.data && res.data.provinceName !== this.recieverRegionName){
// 弹出确认框
this.$confirm(`收件地址在"${res.data.provinceName}",请仔细核对,并将其设为收件省份吗?`, "提示", {
confirmButtonText: "确定",
type: "warning",
distinguishCancelAndClose: true,
closeOnClickModal: false,
showCancelButton: true,
showClose: false
}).then(() => {
this.recieverCountryCode = res.data.countryCode;
this.form.reciever.country = res.data.countryCode;
this.form.reciever.province = res.data.provinceCode;
this.recieverRegionName = res.data.provinceName;
this.handleCalcDestSite();
});
}
}
},
// 弹出柬埔寨特区提醒

View File

@ -736,7 +736,7 @@
</el-col>
<el-col :span="24">
<el-form-item :label="$t('收件地址')" prop="reciever.address">
<el-input v-model="form.reciever.address" type="textarea" rows="3" placeholder="" @change="handleRecieverAddressChange"/>
<el-input v-model="form.reciever.address" type="textarea" rows="3" placeholder="" @change="handleRecieverAddressChange" @blur="handleRecieverAddressBlur"/>
</el-form-item>
</el-col>
</el-row>
@ -1222,6 +1222,7 @@
import { checkWaybillIsExists,getWaybillDetail,realSubmitOrder,calcWaybillFee,calcSetteldWeight,calcVolumeWeight} from "@/api/emis/emisWaybill";
import { listCustomsLevel } from "@/api/emis/emisCustomsLevel";
import { getDestSite } from "@/api/emis/emisDestination";
import { matchByAddress } from "@/api/emis/emisSpecialZone";
import DestinationPicker from '@/views/emis/EmisBaseTools/DestinationPicker.vue';
@ -2397,7 +2398,39 @@ export default {
this.calcBillFee();
},
handleRecieverAddressChange() {
this.openSpecialZone(this.recieverCountryCode,this.form.reciever.address , this.recieverRegionName);
setTimeout(()=>{
this.openSpecialZone(this.recieverCountryCode,this.form.reciever.address , this.recieverRegionName);
},500)
},
async handleRecieverAddressBlur(){
//如果目的国是柬埔寨、孟加拉国 匹配特区标签
if (['0855', '0880'].includes(this.form.reciever.country)) {
const res = await matchByAddress({
address: this.form.reciever.address
});
// if(res.data){
// this.recieverCountryCode = res.data.countryCode;
// this.form.reciever.country = res.data.countryCode;
// this.form.reciever.province = res.data.provinceCode;
// this.recieverRegionName = res.data.provinceName;
// }
if(res.data && res.data.provinceName !== this.recieverRegionName){
this.$confirm(`收件地址在"${res.data.provinceName}",请仔细核对,并将其设为收件省份吗?`, "提示", {
confirmButtonText: "确定",
type: "warning",
distinguishCancelAndClose: true,
closeOnClickModal: false,
showCancelButton: true,
showClose: false
}).then(() => {
this.recieverCountryCode = res.data.countryCode;
this.form.reciever.country = res.data.countryCode;
this.form.reciever.province = res.data.provinceCode;
this.recieverRegionName = res.data.provinceName;
this.handleCalcDestSite();
});
}
}
},
// 弹出柬埔寨特区提醒
openSpecialZone(countryCode, address, recieverRegionName) {