This commit is contained in:
aihe 2024-06-19 14:26:41 +08:00
parent 89939a21aa
commit b9e72195af
2 changed files with 220 additions and 212 deletions

View File

@ -161,11 +161,14 @@
},
watch: {
searchParam: {
handler(newVal){
handler(newVal, oldVal){
let vals = Object.values(newVal)
// 所有关联入参都有值再 执行自动计算
// 所有关联入参都有值再 执行自动计算,数据未变化不做计算
if(vals.length == vals.filter(v => !!v).length) {
this.calcWaybillFee(newVal);
if(JSON.stringify(newVal) != JSON.stringify(oldVal || {})) {
console.log("====watch cost calcWaybillFee===")
this.calcWaybillFee(newVal);
}
}
},
deep: true,

View File

@ -1,6 +1,6 @@
<template>
<tpx-page>
<tpx-layout v-if="!pageLoading">
<tpx-layout>
<template v-slot:body>
<view class="com-jianju pos-rlt pb-30" style="padding-top: 2rpx;">
<view class="blcok-white">
@ -23,226 +23,228 @@
</u-row> -->
</view>
<view v-if="submitParam.orderSn" class="com-section mt-30" @click="goto(`post/detail?billCode=${submitParam.billCode}&orderSn=${submitParam.orderSn}`)">
<u-row justify="space-between">
<text>订单号:{{submitParam.orderSn}}</text>
<u-icon name="bag" size="42"></u-icon>
</u-row>
</view>
<view class="blcok-white">
<!-- 地址选择 -->
<bpe-addressinfo-tmp v-model:value="submitParam" @onChange="handleAddressChange"></bpe-addressinfo-tmp>
</view>
<view class="com-section mt-30">路线信息</view>
<view class="blcok-white" style="padding-top: 0;padding-bottom: 0;">
<view>
<template v-if="submitParam.reciever.country && submitParam.sender.country">
<view class="yunf-input-item">
<tpx-select v-model:value="submitParam.transLine" v-model:text="submitParam.transLineTypeName" v-model:resObject="wayRes"
:getListFun="getTransLineList" :transKeyVal="{valKey: 'lineCode',titleKey: 'lineName'}"
:searchParam="waySearchParam" @onChange="handleWayChange" placeholder="请选择路线"
>
<tpx-text-item label="路线" :value="submitParam.transLineTypeName"></tpx-text-item>
</tpx-select>
</view>
</template>
<template v-if="submitParam.transLine">
<view class="yunf-input-item">
<tpx-select v-model:value="submitParam.productType" v-model:text="submitParam.productTypeName" v-model:resObject="productRes" :getListFun="getTransProductList" :transKeyVal="{valKey: 'prodCode',titleKey: 'prodName'}" :isWhite="true"
:searchParam="productSearchParam" placeholder="请选择产品类型"
>
<tpx-text-item label="产品类型" :value="submitParam.productTypeName"></tpx-text-item>
</tpx-select>
</view>
</template>
<view class="yunf-input-item">
<tpx-select v-model:value="submitParam.customsEclaration" :list="dicData.emis_declare_mode"
mode="drop"
>
<tpx-text-item label="报关方式" :value="submitParam.customsEclaration" :list="dicData.emis_declare_mode"></tpx-text-item>
</tpx-select>
</view>
<view class="yunf-input-item">
<tpx-select v-model:value="submitParam.customsClear" :list="dicData.emis_customs_clear"
mode="drop"
>
<tpx-text-item label="清关方式" :value="submitParam.customsClear" :list="dicData.emis_customs_clear"></tpx-text-item>
</tpx-select>
</view>
<view class="yunf-input-item">
<tpx-select v-model:value="submitParam.pickupMethod" :list="dicData.emis_qujian_fangshi"
mode="drop"
>
<tpx-text-item label="取件方式" :value="submitParam.pickupMethod" :list="dicData.emis_qujian_fangshi"></tpx-text-item>
</tpx-select>
</view>
<view v-show="submitParam.pickupMethod == 1" class="yunf-input-item">
<tpx-select v-model:value="submitParam.operateEmployeeCode" v-model:resObject="caozuoRes" v-model:text="submitParam.operateEmployeeName" :getListFun="getOpStaffList" :transKeyVal="{valKey: 'empCode',titleKey: 'empName'}" placeholder="请选择操作员">
<tpx-text-item label="操作员" :value="submitParam.operateEmployeeName"></tpx-text-item>
</tpx-select>
</view>
<view v-show="submitParam.pickupMethod == 2" class="yunf-input-item">
<tpx-select v-model:value="submitParam.takePieceEmployeeCode" v-model:resObject="shoupaiRes" v-model:text="submitParam.takePieceEmployeeName" :getListFun="getRSDStaffList" :transKeyVal="{valKey: 'empCode',titleKey: 'empName'}" placeholder="请选择收派员">
<tpx-text-item label="收派员" :value="submitParam.takePieceEmployeeName"></tpx-text-item>
</tpx-select>
</view>
<view class="yunf-input-item">
<tpx-select v-model:value="submitParam.paymentType" :list="dicData.emis_payment_type"
mode="drop"
>
<tpx-text-item label="付款方式" :value="submitParam.paymentType" :list="dicData.emis_payment_type"></tpx-text-item>
</tpx-select>
</view>
<template v-if="isShowYueJie">
<view class="yunf-input-item">
<tpx-select v-model:value="submitParam.custNo" v-model:text="submitParam.customerName" v-model:resObject="yuejieRes" :getListFun="getMonthpayAccountList" :transKeyVal="{valKey: 'custNo',titleKey: 'custName'}"
@onChange="handleYueJieSelect" placeholder="请选择月结账户"
>
<tpx-text-item label="月结账户" :value="submitParam.customerName"></tpx-text-item>
</tpx-select>
</view>
<template v-if="submitParam.custNo">
<view v-if="!pageLoading">
<view v-if="submitParam.orderSn" class="com-section mt-30" @click="goto(`post/detail?billCode=${submitParam.billCode}&orderSn=${submitParam.orderSn}`)">
<u-row justify="space-between">
<text>订单号:{{submitParam.orderSn}}</text>
<u-icon name="bag" size="42"></u-icon>
</u-row>
</view>
<view class="blcok-white">
<!-- 地址选择 -->
<bpe-addressinfo-tmp v-model:value="submitParam" @onChange="handleAddressChange"></bpe-addressinfo-tmp>
</view>
<view class="com-section mt-30">路线信息</view>
<view class="blcok-white" style="padding-top: 0;padding-bottom: 0;">
<view>
<template v-if="submitParam.reciever.country && submitParam.sender.country">
<view class="yunf-input-item">
<tpx-text-item label="月结编号">
<template v-slot:right>{{submitParam.custNo}}</template>
</tpx-text-item>
<tpx-select v-model:value="submitParam.transLine" v-model:text="submitParam.transLineTypeName" v-model:resObject="wayRes"
:getListFun="getTransLineList" :transKeyVal="{valKey: 'lineCode',titleKey: 'lineName'}"
:searchParam="waySearchParam" @onChange="handleWayChange" placeholder="请选择路线"
>
<tpx-text-item label="路线" :value="submitParam.transLineTypeName"></tpx-text-item>
</tpx-select>
</view>
</template>
</template>
<template v-if="submitParam.paymentType">
<template v-if="submitParam.transLine">
<view class="yunf-input-item">
<tpx-select v-model:value="submitParam.productType" v-model:text="submitParam.productTypeName" v-model:resObject="productRes" :getListFun="getTransProductList" :transKeyVal="{valKey: 'prodCode',titleKey: 'prodName'}" :isWhite="true"
:searchParam="productSearchParam" placeholder="请选择产品类型"
>
<tpx-text-item label="产品类型" :value="submitParam.productTypeName"></tpx-text-item>
</tpx-select>
</view>
</template>
<view class="yunf-input-item">
<tpx-select v-model:value="submitParam.salesmen" v-model:text="submitParam.salesmen" v-model:resObject="salemanRes" :getListFun="getSalemanList" :transKeyVal="{valKey: 'empName',titleKey: 'empName'}"
placeholder="请选择销售联系人" :disabled="isShowYueJie"
<tpx-select v-model:value="submitParam.customsEclaration" :list="dicData.emis_declare_mode"
mode="drop"
>
<tpx-text-item label="销售联系人">
<template v-slot:right>
{{submitParam.salesmen || (isShowYueJie ? '': '请选择')}}
<u-icon v-if="!isShowYueJie" size="26" name="arrow-right" color="#333"></u-icon>
</template>
</tpx-text-item>
</tpx-select>
<tpx-text-item label="报关方式" :value="submitParam.customsEclaration" :list="dicData.emis_declare_mode"></tpx-text-item>
</tpx-select>
</view>
<view class="yunf-input-item">
<tpx-select v-model:value="submitParam.payee" v-model:text="submitParam.payee" v-model:resObject="paybeeRes" :getListFun="getPayeeList" :transKeyVal="{valKey: 'empName',titleKey: 'empName'}"
placeholder="请选择回款联系人" :disabled="isShowYueJie"
<tpx-select v-model:value="submitParam.customsClear" :list="dicData.emis_customs_clear"
mode="drop"
>
<tpx-text-item label="回款联系人">
<template v-slot:right>
{{submitParam.payee || (isShowYueJie ? '': '请选择')}}
<u-icon v-if="!isShowYueJie" size="26" name="arrow-right" color="#333"></u-icon>
</template>
</tpx-text-item>
<tpx-text-item label="清关方式" :value="submitParam.customsClear" :list="dicData.emis_customs_clear"></tpx-text-item>
</tpx-select>
</view>
</template>
<view v-if="submitParam.transLine" class="yunf-input-item">
<tpx-select v-model:value="submitParam.destinationCode" v-model:text="submitParam.destinationName" v-model:resObject="destPostRes" :getListFun="getDestPositionList" :transKeyVal="{valKey: 'destCode',titleKey: 'destName'}" :isWhite="true"
:searchParam="destPostParam" @onChange="handleDestPostChange" placeholder="请选择目的地"
>
<tpx-text-item label="目的地" :value="submitParam.destinationName"></tpx-text-item>
</tpx-select>
</view>
<view v-if="submitParam.destinationCode" class="yunf-input-item">
<tpx-text-item label="目的网点">
<template v-slot:right>{{submitParam.dispatchUnderlingSiteName}}</template>
</tpx-text-item>
</view>
<view class="yunf-input-item">
<tpx-select v-model:value="submitParam.warehouseInNo" v-model:resObject="wareRes" :getListFun="getWarehouseInList" :transKeyVal="{valKey: 'inNo',titleKey: 'inNo'}" :isWhite="true"
searchParam="" type="multiple" placeholder="请选择进仓单" minChecked="0"
>
<tpx-text-item label="进仓单" :value="submitParam.warehouseInNo"></tpx-text-item>
</tpx-select>
</view>
<view class="yunf-input-item">
<tpx-select v-model:value="submitParam.dispatchMethod" :list="dicData.emis_tab_dispatch_mode"
mode="drop"
>
<tpx-text-item label="派送方式" :value="submitParam.dispatchMethod" :list="dicData.emis_tab_dispatch_mode"></tpx-text-item>
</tpx-select>
</view>
<view class="yunf-input-item">
<tpx-text-item label="生成子单">
<template v-slot:right>
<u-switch v-model="submitParam.blGenSubbill" activeValue="1" inactiveValue="0" active-color="#B12D29" size="34"></u-switch>
<view class="yunf-input-item">
<tpx-select v-model:value="submitParam.pickupMethod" :list="dicData.emis_qujian_fangshi"
mode="drop"
>
<tpx-text-item label="取件方式" :value="submitParam.pickupMethod" :list="dicData.emis_qujian_fangshi"></tpx-text-item>
</tpx-select>
</view>
<view v-show="submitParam.pickupMethod == 1" class="yunf-input-item">
<tpx-select v-model:value="submitParam.operateEmployeeCode" v-model:resObject="caozuoRes" v-model:text="submitParam.operateEmployeeName" :getListFun="getOpStaffList" :transKeyVal="{valKey: 'empCode',titleKey: 'empName'}" placeholder="请选择操作员">
<tpx-text-item label="操作员" :value="submitParam.operateEmployeeName"></tpx-text-item>
</tpx-select>
</view>
<view v-show="submitParam.pickupMethod == 2" class="yunf-input-item">
<tpx-select v-model:value="submitParam.takePieceEmployeeCode" v-model:resObject="shoupaiRes" v-model:text="submitParam.takePieceEmployeeName" :getListFun="getRSDStaffList" :transKeyVal="{valKey: 'empCode',titleKey: 'empName'}" placeholder="请选择收派员">
<tpx-text-item label="收派员" :value="submitParam.takePieceEmployeeName"></tpx-text-item>
</tpx-select>
</view>
<view class="yunf-input-item">
<tpx-select v-model:value="submitParam.paymentType" :list="dicData.emis_payment_type"
mode="drop"
>
<tpx-text-item label="付款方式" :value="submitParam.paymentType" :list="dicData.emis_payment_type"></tpx-text-item>
</tpx-select>
</view>
<template v-if="isShowYueJie">
<view class="yunf-input-item">
<tpx-select v-model:value="submitParam.custNo" v-model:text="submitParam.customerName" v-model:resObject="yuejieRes" :getListFun="getMonthpayAccountList" :transKeyVal="{valKey: 'custNo',titleKey: 'custName'}"
@onChange="handleYueJieSelect" placeholder="请选择月结账户"
>
<tpx-text-item label="月结账户" :value="submitParam.customerName"></tpx-text-item>
</tpx-select>
</view>
<template v-if="submitParam.custNo">
<view class="yunf-input-item">
<tpx-text-item label="月结编号">
<template v-slot:right>{{submitParam.custNo}}</template>
</tpx-text-item>
</view>
</template>
</tpx-text-item>
</template>
<template v-if="submitParam.paymentType">
<view class="yunf-input-item">
<tpx-select v-model:value="submitParam.salesmen" v-model:text="submitParam.salesmen" v-model:resObject="salemanRes" :getListFun="getSalemanList" :transKeyVal="{valKey: 'empName',titleKey: 'empName'}"
placeholder="请选择销售联系人" :disabled="isShowYueJie"
>
<tpx-text-item label="销售联系人">
<template v-slot:right>
{{submitParam.salesmen || (isShowYueJie ? '': '请选择')}}
<u-icon v-if="!isShowYueJie" size="26" name="arrow-right" color="#333"></u-icon>
</template>
</tpx-text-item>
</tpx-select>
</view>
<view class="yunf-input-item">
<tpx-select v-model:value="submitParam.payee" v-model:text="submitParam.payee" v-model:resObject="paybeeRes" :getListFun="getPayeeList" :transKeyVal="{valKey: 'empName',titleKey: 'empName'}"
placeholder="请选择回款联系人" :disabled="isShowYueJie"
>
<tpx-text-item label="回款联系人">
<template v-slot:right>
{{submitParam.payee || (isShowYueJie ? '': '请选择')}}
<u-icon v-if="!isShowYueJie" size="26" name="arrow-right" color="#333"></u-icon>
</template>
</tpx-text-item>
</tpx-select>
</view>
</template>
<view v-if="submitParam.transLine" class="yunf-input-item">
<tpx-select v-model:value="submitParam.destinationCode" v-model:text="submitParam.destinationName" v-model:resObject="destPostRes" :getListFun="getDestPositionList" :transKeyVal="{valKey: 'destCode',titleKey: 'destName'}" :isWhite="true"
:searchParam="destPostParam" @onChange="handleDestPostChange" placeholder="请选择目的地"
>
<tpx-text-item label="目的地" :value="submitParam.destinationName"></tpx-text-item>
</tpx-select>
</view>
<view v-if="submitParam.destinationCode" class="yunf-input-item">
<tpx-text-item label="目的网点">
<template v-slot:right>{{submitParam.dispatchUnderlingSiteName}}</template>
</tpx-text-item>
</view>
<view class="yunf-input-item">
<tpx-select v-model:value="submitParam.warehouseInNo" v-model:resObject="wareRes" :getListFun="getWarehouseInList" :transKeyVal="{valKey: 'inNo',titleKey: 'inNo'}" :isWhite="true"
searchParam="" type="multiple" placeholder="请选择进仓单" minChecked="0"
>
<tpx-text-item label="进仓单" :value="submitParam.warehouseInNo"></tpx-text-item>
</tpx-select>
</view>
<view class="yunf-input-item">
<tpx-select v-model:value="submitParam.dispatchMethod" :list="dicData.emis_tab_dispatch_mode"
mode="drop"
>
<tpx-text-item label="派送方式" :value="submitParam.dispatchMethod" :list="dicData.emis_tab_dispatch_mode"></tpx-text-item>
</tpx-select>
</view>
<view class="yunf-input-item">
<tpx-text-item label="生成子单">
<template v-slot:right>
<u-switch v-model="submitParam.blGenSubbill" activeValue="1" inactiveValue="0" active-color="#B12D29" size="34"></u-switch>
</template>
</tpx-text-item>
</view>
<view class="yunf-input-item">
<tpx-text-item label="合同号">
<template v-slot:right>
<tpx-input v-model:value="submitParam.custOrderId" inputAlign="right"></tpx-input>
</template>
</tpx-text-item>
</view>
<view class="yunf-input-item">
<tpx-text-item label="寄件短信">
<template v-slot:right>
<text class="pr-20 clr-sub">是否短信</text>
<u-switch v-model="submitParam.blMessage" activeValue="1" inactiveValue="0" active-color="#B12D29" size="34"></u-switch>
</template>
</tpx-text-item>
</view>
<view class="yunf-input-item">
<tpx-text-item label="收件短信">
<template v-slot:right>
<text class="pr-20 clr-sub">是否短信</text>
<u-switch v-model="submitParam.blAcceptMessage" activeValue="1" inactiveValue="0" active-color="#B12D29" size="34"></u-switch>
</template>
</tpx-text-item>
</view>
</view>
<view class="yunf-input-item">
<tpx-text-item label="合同号">
<template v-slot:right>
<tpx-input v-model:value="submitParam.custOrderId" inputAlign="right"></tpx-input>
</template>
</tpx-text-item>
</view>
<view class="yunf-input-item">
<tpx-text-item label="寄件短信">
<template v-slot:right>
<text class="pr-20 clr-sub">是否短信</text>
<u-switch v-model="submitParam.blMessage" activeValue="1" inactiveValue="0" active-color="#B12D29" size="34"></u-switch>
</template>
</tpx-text-item>
</view>
<view class="yunf-input-item">
<tpx-text-item label="收件短信">
<template v-slot:right>
<text class="pr-20 clr-sub">是否短信</text>
<u-switch v-model="submitParam.blAcceptMessage" activeValue="1" inactiveValue="0" active-color="#B12D29" size="34"></u-switch>
</template>
</tpx-text-item>
</view>
</view>
</view>
<view class="com-section mt-30" @click="handleDialogClick(goodChooseModal)">
<u-row justify="space-between">
<text>发货信息(进仓情况)</text>
<u-icon name="edit-pen" size="42"></u-icon>
</u-row>
</view>
<view class="blcok-white">
<bpe-goodstatic-tmp v-model:value="submitParam"></bpe-goodstatic-tmp>
</view>
<view>
<view class="com-section mt-30">
<view class="com-section mt-30" @click="handleDialogClick(goodChooseModal)">
<u-row justify="space-between">
<text>计费信息</text>
<text>发货信息(进仓情况)</text>
<u-icon name="edit-pen" size="42"></u-icon>
</u-row>
</view>
<view class="blcok-white">
<bpe-cost-tmp v-model:value="submitParam" ref="bCostRef"></bpe-cost-tmp>
<bpe-goodstatic-tmp v-model:value="submitParam"></bpe-goodstatic-tmp>
</view>
<view>
<view class="com-section mt-30">
<u-row justify="space-between">
<text>计费信息</text>
</u-row>
</view>
<view class="blcok-white">
<bpe-cost-tmp v-model:value="submitParam" ref="bCostRef"></bpe-cost-tmp>
</view>
</view>
<view class="com-section mt-30">
<u-row justify="space-between">
<text>备注</text>
</u-row>
</view>
<view class="blcok-white">
<u-textarea v-model="submitParam.remark" border="surround" height="120" placeholder="备注"
maxlength="50" count></u-textarea>
</view>
</view>
<view class="com-section mt-30">
<u-row justify="space-between">
<text>备注</text>
</u-row>
</view>
<view class="blcok-white">
<u-textarea v-model="submitParam.remark" border="surround" height="120" placeholder="备注"
maxlength="50" count></u-textarea>
</view>
</view>
</template>
@ -251,13 +253,15 @@
<view v-if="submitParam.lockFlag == 'T'">
<view class="clr-prm font-weight font-30" style="padding: 20rpx 0;">{{submitParam.lockReason}}</view>
</view>
<u-row v-else>
<u-button @click="handleSave()" size="large" shape="circle"
custom-style="width: 260rpx;height:80rpx;font-size: 30rpx;" :plain="true" type="primary">保存</u-button>
<u-button @click="handleSave('print')" size="large" shape="circle"
custom-style="width: 400rpx;height:80rpx;font-size: 30rpx;" type="primary" >确认并打印</u-button>
</u-row>
<view v-else>
<u-row v-if="!pageLoading">
<u-button @click="handleSave()" size="large" shape="circle"
custom-style="width: 260rpx;height:80rpx;font-size: 30rpx;" :plain="true" type="primary">保存</u-button>
<u-button @click="handleSave('print')" size="large" shape="circle"
custom-style="width: 400rpx;height:80rpx;font-size: 30rpx;" type="primary" >确认并打印</u-button>
</u-row>
</view>
</view>
</template>
</tpx-layout>
@ -403,6 +407,7 @@
}
}
if(this.isEdit) {
this.pageLoading = true
let res = await apiService.getOrderDetail({...this.queryOption, _loading: true})
let data = res.data || {}
data.goodsPics = (data.goodsPics && data.goodsPics.split(",")) || []