This commit is contained in:
linfso 2024-07-06 11:12:02 +08:00
parent 9b7a8f4ad6
commit 5e91ea3e4b
6 changed files with 451 additions and 2115 deletions

View File

@ -120,13 +120,7 @@
this.dispatch('ElFormItem', 'el.form.change', [this.svalue]);
},
queryData() {
// if(this.isFistInit && !this.value){
// this.optionItems=[];
// return;
// }
this.optionItems=[];
let queryParams = {
pageNum: 1,
pageSize: 300,

View File

@ -129,7 +129,7 @@
if(val && this.queryParams.pageNum == 1){
this.dataList=[];
}
this.queryParams.queryData=val;
this.queryParams.searchValue=val;
getNextStationList(this.queryParams).then(response => {
this.dataList=response.rows;
response.rows.forEach(item => {

File diff suppressed because it is too large Load Diff

View File

@ -2014,7 +2014,7 @@ methods: {
newItem.cargoQty=1;
this.form.cargoList.splice(index+1, 0, newItem);
// this.form.cargoList.push(newItem);
handleCargoQtyChange();
this.handleCargoQtyChange();
},
showLocalTime(){

View File

@ -32,8 +32,8 @@
</el-row>
</el-col>
<el-col :span="24" v-if="applyType&&applyTypeArr.includes('4')">
<el-row :gutter="0" class="md-row">
<el-col :span="24" v-if="applyType&&(applyTypeArr.includes('4')||applyTypeArr.includes('30'))">
<el-row :gutter="0" class="md-row">
<el-col :span="3" class="md-title">
<span>线路调整</span>
</el-col>
@ -42,14 +42,14 @@
</el-col>
<el-col :span="14">
<el-form-item label="线路" prop="transLine">
<TransLinePicker v-model="form.transLine" :countryCode="billDetail.reciever.country" isInitiated="true" disabled></TransLinePicker>
<TransLinePicker v-model="form.transLine" :countryCode="billDetail.reciever.country" isInitiated="true"></TransLinePicker>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="24" v-if="applyType&&applyTypeArr.includes('4')">
<el-col :span="24" v-if="applyType&&(applyTypeArr.includes('4')||applyTypeArr.includes('30'))">
<el-row :gutter="0" class="md-row">
<el-col :span="3" class="md-title">
<span>产品类型调整</span>
@ -81,6 +81,24 @@
</el-row>
</el-col>
<el-col :span="24" v-if="applyType&&applyTypeArr.includes('37')" >
<el-row :gutter="0" class="md-row">
<el-col :span="3" class="md-title">
<span>货值调整</span>
</el-col>
<el-col :span="7" class="md-value">
<span >{{billDetail.realValue}}</span>
</el-col>
<el-col :span="14">
<el-form-item :label="$t('货值调整')" prop="remark" >
<el-input v-model="form.realValue" style="text-align: right;width: 120px" placeholder="货值" >
<span slot="suffix">(USD)</span>
</el-input>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="24" v-if="applyType&&applyTypeArr.includes('14')" >
<el-row :gutter="0" class="md-row">
<el-col :span="3" class="md-title">
@ -145,6 +163,64 @@
</el-row>
</el-col>
<el-col :span="24" v-if="applyType&&applyTypeArr.includes('31')" >
<el-row :gutter="0" class="md-row">
<el-col :span="3" class="md-title">
<span>取件方式调整</span>
</el-col>
<el-col :span="7" class="md-value">
<span ><dict-tag :options="dict.type.emis_qujian_fangshi" :value="billDetail.pickupMethod"/></span>
</el-col>
<el-col :span="14">
<el-form-item :label="$t('取件方式')" prop="pickupMethod">
<el-radio-group v-model="form.dispatchMethod">
<el-radio
v-for="dict in dict.type.emis_qujian_fangshi"
:key="dict.value"
:label="dict.value"
>
<span >{{ $t(dict.label) }}</span>
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="24" v-if="applyType&&(applyTypeArr.includes('13'))" >
<el-row :gutter="0" class="md-row">
<el-col :span="3" class="md-title">
<span>取件员调整</span>
</el-col>
<el-col :span="7" class="md-value">
<span >{{ billDetail.takePieceEmployeeName }}</span>
</el-col>
<el-col :span="14">
<el-form-item :label="$t('取件员')" prop="takePieceEmployeeCode" >
<EmisUserSimplePicker0 :placeholder="$t('取件员')" v-model="form.takePieceEmployeeCode" postCode="RSD" ></EmisUserSimplePicker0>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="24" v-if="applyType&&(applyTypeArr.includes('34'))" >
<el-row :gutter="0" class="md-row">
<el-col :span="3" class="md-title">
<span>操作员调整</span>
</el-col>
<el-col :span="7" class="md-value">
<span >{{ billDetail.operateEmployeeName }}</span>
</el-col>
<el-col :span="14">
<el-form-item :label="$t('操作员')" prop="operateEmployeeCode" >
<EmisUserSimplePicker0 :placeholder="$t('操作员')" v-model="form.operateEmployeeCode" postCode="OP" ></EmisUserSimplePicker0>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="24" v-if="applyType&&applyTypeArr.includes('11')" >
<el-row :gutter="0" class="md-row">
<el-col :span="3" class="md-title">
@ -169,19 +245,47 @@
</el-row>
</el-col>
<el-col :span="24" v-if="applyType&&applyTypeArr.includes('13')" >
<el-col :span="24" v-if="applyType&&applyTypeArr.includes('35')" >
<el-row :gutter="0" class="md-row">
<el-col :span="3" class="md-title">
<span>取件员调整</span>
<span>包装类型调整</span>
</el-col>
<el-col :span="7" class="md-value">
<span >{{ billDetail.takePieceEmployeeName }}</span>
<span ><dict-tag :options="dict.type.emis_tab_packing_type" :value="billDetail.packType"/></span>
</el-col>
<el-col :span="14">
<el-form-item :label="$t('取件员')" prop="takePieceEmployeeCode" >
<EmisUserSimplePicker0 :placeholder="$t('取件员')" v-model="form.takePieceEmployeeCode" postCode="RSD" ></EmisUserSimplePicker0>
</el-form-item>
<el-form-item :label="$t('包装类型')" prop="packType" label-width="70px"">
<el-select multiple="" v-model="form.packType" placeholder="">
<el-option
v-for="dict in dict.type.emis_tab_packing_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="24" v-if="applyType&&applyTypeArr.includes('36')" >
<el-row :gutter="0" class="md-row">
<el-col :span="3" class="md-title">
<span>计费方式调整</span>
</el-col>
<el-col :span="7" class="md-value">
<span ><dict-tag :options="dict.type.emis_calc_fee_type" :value="billDetail.calcFeeType"/></span>
</el-col>
<el-col :span="14">
<el-form-item :label="$t('计费方式')" prop="calcFeeType" label-width="70px">
<el-radio-group v-model="form.calcFeeType" @change="calcBillFee" >
<el-radio
v-for="dict in dict.type.emis_calc_fee_type"
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
</el-col>
@ -236,6 +340,39 @@
</el-row>
</el-col>
<el-col :span="24" v-if="applyType&&(applyTypeArr.includes('32'))" >
<el-row :gutter="0" class="md-row">
<el-col :span="3" class="md-title">
<span>销售联系人</span>
</el-col>
<el-col :span="7" class="md-value">
<span >{{ billDetail.salesmen }}</span>
</el-col>
<el-col :span="14">
<el-form-item :label="$t('销售联系人')" prop="salesmen" >
<SalemanPicker :placeholder="$t('销售联系人')" v-model="form.salesmen" ></SalemanPicker>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="24" v-if="applyType&&(applyTypeArr.includes('33'))" >
<el-row :gutter="0" class="md-row">
<el-col :span="3" class="md-title">
<span>回款联系人</span>
</el-col>
<el-col :span="7" class="md-value">
<span >{{ billDetail.payee }}</span>
</el-col>
<el-col :span="14">
<el-form-item :label="$t('回款联系人')" prop="payee" >
<PayeePicker :placeholder="$t('回款联系人')" v-model="form.payee" ></PayeePicker>
</el-form-item>
</el-col>
</el-row>
</el-col>
<!-- <el-col :span="24" v-if="applyType&&applyTypeArr.includes('9')" >
<el-row :gutter="0" class="md-row">
<el-col :span="3" class="md-title">
@ -267,7 +404,7 @@
</el-row>
</el-col>
<el-col :span="24" v-if="applyType&&applyTypeArr.includes('2')" >
<el-col :span="24" v-if="applyType&&(applyTypeArr.includes('2')||applyTypeArr.includes('38'))" >
<el-row :gutter="0" class="md-row">
<el-col :span="3" class="md-title">
<span>件数调整</span>
@ -276,14 +413,14 @@
<span >{{billDetail.parcelQty}}</span>
</el-col>
<el-col :span="14">
<el-form-item :label="$t('件数')" prop="parcelQty" >
<el-input v-model="form.parcelQty" type="text" placeholder="" style="text-align: right;width: 120px"/>
<el-form-item :label="$t('总件数')" prop="parcelQty" >
<el-input v-model="form.parcelQty" type="text" placeholder="" style="text-align: right;width: 120px" @blur="handleCargoQtyChangeDebounce" @keyup.enter.native="handleCargoQtyChangeDebounce"/>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="24" v-if="applyType&&applyTypeArr.includes('3')" >
<el-col :span="24" v-if="applyType&&(applyTypeArr.includes('3')||applyTypeArr.includes('38'))" >
<el-row :gutter="0" class="md-row">
<el-col :span="3" class="md-title">
<span>体积调整</span>
@ -301,6 +438,134 @@
</el-row>
</el-col>
<el-col :span="24" v-if="applyType&&applyTypeArr.includes('38')">
<el-row :gutter="0" class="md-row">
<el-col :span="3" class="md-title">
<span style="font-weight:600">货物尺寸调整</span>
</el-col>
<el-col :span="7" class="md-value">
<el-table
class="cargoList"
:cell-style="{
'padding': '0px!important',
'padding-left': '0px!important',
'padding-right': '0px!important',
'font-size':'11px'
}"
:header-cell-style="{
'font-size':'11px'
}"
border
stripe
:data="billDetail.cargoList"
size="small"
style="width: 100%"
max-height="300px"
>
<el-table-column :label="$t('序号')" align="center" width="60">
<template slot-scope="scope">
<span > {{scope.$index+1}}</span>
</template>
</el-table-column>
<el-table-column prop="length" :label="$t('长(cm)')" align="center" width="60">
<template slot-scope="scope">
{{ scope.row.length }}
</template>
</el-table-column>
<el-table-column prop="width" :label="$t('宽(cm)')" align="center" width="60">
<template slot-scope="scope">
{{ scope.row.width }}
</template>
</el-table-column>
<el-table-column prop="height" :label="$t('高(cm)')" align="center" width="60">
<template slot-scope="scope">
{{ scope.row.height }}
</template>
</el-table-column>
<el-table-column prop="cargoQty" :label="$t('件数')" align="center" width="60">
<template slot-scope="scope">
{{ scope.row.cargoQty }}
</template>
</el-table-column>
<el-table-column prop="volume" :label="$t('体积(m³)')" align="center" width="80">
<template slot-scope="scope">
{{ scope.row.volume }}
</template>
</el-table-column>
</el-table>
</el-col>
<el-col :span="14" style="text-align: center">
<el-table
class="cargoList"
:cell-style="{
'padding': '0px!important',
'padding-left': '0px!important',
'padding-right': '0px!important',
'font-size':'11px'
}"
:header-cell-style="{
'font-size':'11px'
}"
border
stripe
:data="form.cargoList"
size="small"
style="width: 100%"
max-height="300px"
>
<el-table-column :label="$t('序号')" align="center" width="60">
<template slot-scope="scope">
<span > {{scope.$index+1}}</span>
</template>
</el-table-column>
<el-table-column prop="length" :label="$t('长(cm)')" align="center" width="60">
<template slot-scope="scope">
<el-input v-model="scope.row.length" @input="(val)=>handleCalcVolumeDebounce(scope.row)" size="mini" placeholder=""></el-input>
</template>
</el-table-column>
<el-table-column prop="width" :label="$t('宽(cm)')" align="center" width="60">
<template slot-scope="scope">
<el-input v-model="scope.row.width" @input="(val)=>handleCalcVolumeDebounce(scope.row)" size="mini" placeholder=""></el-input>
</template>
</el-table-column>
<el-table-column prop="height" :label="$t('高(cm)')" align="center" width="60">
<template slot-scope="scope">
<el-input v-model="scope.row.height" @input="(val)=>handleCalcVolumeDebounce(scope.row)" size="mini" placeholder=""></el-input>
</template>
</el-table-column>
<el-table-column prop="cargoQty" :label="$t('件数')" align="center" width="60">
<!-- @keyup.enter.native="(val)=>handleCargoQtyChange(scope.row)" -->
<template slot-scope="scope">
<el-input v-model="scope.row.cargoQty" @input="(val)=>handleCargoQtyChangeDebounce(scope.row)" size="mini" placeholder=""></el-input>
</template>
</el-table-column>
<el-table-column prop="volume" :label="$t('体积(m³)')" align="center" width="80">
<template slot-scope="scope">
<el-input v-model="scope.row.volume" size="mini" placeholder="" disabled></el-input>
</template>
</el-table-column>
<el-table-column :label="$t('操作')" align="left" min-width="50">
<template slot-scope="scope">
<span class="icon iconfont"
style="cursor: pointer;font-size: 21px;color: #6e6e6e;"
@click="()=>deleteGoodsItem(scope.row,scope.$index)">&#xe7ae;</span>
<span class="icon iconfont"
style="cursor: pointer;font-size: 21px;color: #6e6e6e;"
@click="()=>copyGoodsItem(scope.row,scope.$index)">&#xe620;</span>
</template>
</el-table-column>
</el-table>
</el-col>
</el-row>
</el-col>
<el-col :span="24" v-if="applyType&&applyTypeArr.includes('1')" >
<el-row :gutter="0" class="md-row">
<el-col :span="3" class="md-title">
@ -464,10 +729,12 @@
</el-col>
</el-row>
</el-col>
<el-col :span="24" class="feeDesc">
<span>运费相关调整变化</span>
</el-col>
<el-col :span="24" v-if="billDetail.freight!=form.freight">
<el-col :span="24" v-if="billDetail.totalVolume!=form.totalVolume">
<el-row :gutter="0" class="md-row">
<el-col :span="3" class="md-title">
<span>总体积变化(m³)</span>
@ -481,7 +748,7 @@
</el-col>
</el-row>
</el-col>
<el-col :span="24" v-if="billDetail.freight!=form.freight">
<el-col :span="24" v-if="billDetail.volumeWeight!=form.volumeWeight">
<el-row :gutter="0" class="md-row">
<el-col :span="3" class="md-title">
<span>体积重量变化(kg)</span>
@ -495,7 +762,7 @@
</el-col>
</el-row>
</el-col>
<el-col :span="24" v-if="billDetail.freight!=form.freight">
<el-col :span="24" v-if="billDetail.billWeight!=form.billWeight">
<el-row :gutter="0" class="md-row">
<el-col :span="3" class="md-title">
<span>实际重量变化(kg)</span>
@ -509,7 +776,7 @@
</el-col>
</el-row>
</el-col>
<el-col :span="24" v-if="billDetail.freight!=form.freight">
<el-col :span="24" v-if="billDetail.settlementWeight!=form.settlementWeight">
<el-row :gutter="0" class="md-row">
<el-col :span="3" class="md-title">
<span style="font-weight:600">结算重量变化(kg)</span>
@ -663,6 +930,9 @@ import SalemanPicker from '@/views/emis/EmisBaseTools/SalemanPicker.vue';
import TransProductCasPicker from '@/views/emis/EmisBaseTools/TransProductCasPicker.vue';
import { debounce } from 'throttle-debounce'
import { deepClone } from '@/utils/index'
export default {
name: "AdjustPanel",
@ -919,6 +1189,17 @@ export default {
console.log("====>this.applyTypeArr==>",this.applyTypeArr);
this.reset();
this.form=Object.assign({},this.newValue);
// Object.assign({},this.newValue);
// if(this.newValue.cargoList){
// this.form.cargoList=[...this.newValue.cargoList];
// }
// if(this.newValue.feeItems){
// this.form.feeItems=[...this.newValue.feeItems];
// }
console.log("====>this.oldValue==>",this.oldValue);
console.log("====>this.form==>",this.form);
this.billDetail=this.oldValue;
@ -1056,6 +1337,153 @@ export default {
},
handleCalcVolumeDebounce(row){
// 控制触发频率
debounce(250, this.handleCalcVolume(row))
},
handleInitGenGoods(){
if(this.form.parcelQty>0){
let currentParcelQty = 0;
if(!this.form.cargoList){
this.form.cargoList=[];
}
this.form.cargoList.forEach(item=>{
currentParcelQty = currentParcelQty+parseInt(item.cargoQty);
});
// 新件数大于
if(this.form.parcelQty>currentParcelQty){
let len=this.form.parcelQty-currentParcelQty;
if(this.form.parcelQty>10){
let cargo={
"goodsCode": "",
"goodsName": "",
"cargoQty": len,
"length": 0,
"width": 0,
"height": 0,
"volume": 0,
}
this.form.cargoList.push(cargo);
}
else{
for(let i=0;i<len;i++){
let cargo={
"goodsCode": "",
"goodsName": "",
"cargoQty": 1,
"length": 0,
"width": 0,
"height": 0,
"volume": 0,
}
this.form.cargoList.push(cargo);
}
}
}
else{
let newList=[];
let incQty=0;
let zeroItem={
"goodsCode": "",
"goodsName": "",
"cargoQty": 1,
"length": 0,
"width": 0,
"height": 0,
"volume": 0,
};
for(let i=0;i<this.form.cargoList.length;i++){
let item=this.form.cargoList[i];
// 忽略未填写体积的数据
if(item.length==0&&item.width==0&&item.height==0){
continue;
}
if((incQty+parseInt(item.cargoQty))<this.form.parcelQty){
incQty = incQty+parseInt(item.cargoQty);
newList.push(item)
}else{
item.cargoQty=this.form.parcelQty-incQty;
newList.push(item)
incQty = incQty+parseInt(item.cargoQty);
break;
}
}
// 补足数量
let bzLen=this.form.parcelQty-incQty;
if(bzLen>0){
if(newList.length>=10 || this.form.parcelQty>=10){
let newItem=Object.assign({},zeroItem);
newItem.cargoQty=bzLen;
newList.push(newItem);
}else{
for(let i=0;i<bzLen;i++){
let newItem=Object.assign({},zeroItem);
newList.push(newItem);
}
}
}
this.form.cargoList=newList;
}
}else{
this.form.cargoList=[];
}
},
handleCargoQtyChangeDebounce(row){
// 控制触发频率
debounce(250, this.handleCargoQtyChange(row))
},
handleCargoQtyChange(row){
// this.handleGenSubbill();
this.handleInitGenGoods();
this.handleCalcVolume(row);
},
deleteGoodsItem(row,index){
this.$confirm('确定删除?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.form.cargoList.splice(index,1)
this.handleCalcVolume(row);
}).catch(() => {
})
},
copyGoodsItem(row,index){
let newItem = Object.assign({},row);
newItem.cargoQty=1;
this.form.cargoList.splice(index+1, 0, newItem);
// this.form.cargoList.push(newItem);
this.handleCargoQtyChange();
},
handleCalcVolume(row){
// 初始化不计算
if(row!=null){
let singleVolume=parseFloat(row.length)*parseFloat(row.width)*parseFloat(row.height);
let singleTotalVolume=singleVolume*parseFloat(row.cargoQty);
row.volume=parseFloat( (singleTotalVolume/1000000).toFixed(5) );
}
let totalVolume=0.0;
this.form.cargoList.forEach(item=>{
totalVolume=totalVolume+item.volume;
});
this.form.totalVolume = parseFloat(totalVolume.toFixed(5));
this.handleCalcVolumeWeight();
},
// 计算目的站点
handleCalcDestSite(){
this.calcDestSite();

View File

@ -51,7 +51,7 @@ import AdjustPanel from '@/views/emis/emisWaybillAjustApply/adjustPanel.vue';
import AjustApplyTypePicker from '@/views/emis/EmisBaseTools/AjustApplyTypePicker.vue';
import EmisSiteSimplePicker from '@/views/emis/EmisBaseTools/EmisSiteSimplePicker.vue';
import { deepClone } from '@/utils/index'
export default {
name: "emisWaybillAjustApplyForm",
props:{
@ -155,8 +155,8 @@ export default {
this.form.billCode=this.billDetail.billCode;
this.form.jsonDataObj.oldValue=Object.assign({},this.billDetail);
this.form.jsonDataObj.newValue=Object.assign({},res.data);
this.form.jsonDataObj.oldValue=deepClone(this.billDetail);
this.form.jsonDataObj.newValue=deepClone(this.billDetail);
this.isEditDisabled=false;