This commit is contained in:
aihe 2024-06-11 17:35:55 +08:00
parent 6ef733ac9e
commit c9f0bd61b5
16 changed files with 373 additions and 207 deletions

View File

@ -1,6 +1,6 @@
<template>
<tpx-dialog :show="show" :title="title" @onClose="handleCloseModal()">
<view :style="`position: relative;height: calc(${percentHeight}vh);`">
<tpx-dialog :show="show" :title="title" @onClose="handleCloseModal()" rootStyle="min-height:auto;">
<view :style="cptStyle">
<tpx-layout>
<template v-slot:body>
<slot v-if="show" :value="submitVals"></slot>
@ -21,6 +21,12 @@
<script>
export default {
computed:{
cptStyle(){
let sty = `position: relative;height: calc(${this.percentHeight}vh);`
return sty
}
},
components: { },
watch: {
show(v){

View File

@ -190,6 +190,29 @@
</u-row>
</view>
<view class="dt-block">
<view class="dt-tle">
<view class="t1">底单图片</view>
<view class="t2"></view>
</view>
<u-line margin="20rpx 0 20rpx"></u-line>
<view class="blcok-grey-sm" style="margin-top: 0;">
<bpd-pic-preview-tmp label="货物图片" :list="modelInfo.billPicGoodsRmk" ></bpd-pic-preview-tmp>
</view>
<view class="blcok-grey-sm mt-20">
<bpd-pic-preview-tmp label="揽收底单图片" :list="modelInfo.billPicSendRmk" ></bpd-pic-preview-tmp>
</view>
<!-- <view class="blcok-grey-sm mt-20">
<bpd-pic-preview-tmp label="收件进仓单图片TODO" :list="modelInfo.TODO" ></bpd-pic-preview-tmp>
</view> -->
<view class="blcok-grey-sm mt-20">
<bpd-pic-preview-tmp label="签收货物图片" :list="modelInfo.billPicDispatchRmk" ></bpd-pic-preview-tmp>
</view>
<!-- <view class="blcok-grey-sm mt-20">
<bpd-pic-preview-tmp label="签收签名图片TODO" :list="modelInfo.TODO" ></bpd-pic-preview-tmp>
</view> -->
</view>
<view class="dt-block">
<view class="dt-tle">
<view class="t1">物流动态</view>
@ -203,29 +226,7 @@
</view>
</view>
<view class="dt-block">
<view class="dt-tle">
<view class="t1">底单图片</view>
<view class="t2"></view>
</view>
<u-line margin="20rpx 0 20rpx"></u-line>
<view class="blcok-grey-sm" style="margin-top: 0;">
<bpd-pic-preview-tmp label="货物图片" :list="modelInfo.billPicGoodsRmk" ></bpd-pic-preview-tmp>
</view>
<view class="blcok-grey-sm mt-20">
<bpd-pic-preview-tmp label="揽收底单图片" :list="modelInfo.billPicSendRmk" ></bpd-pic-preview-tmp>
</view>
<u-line margin="20rpx 0 20rpx"></u-line>
<view class="blcok-grey-sm mt-20">
<bpd-pic-preview-tmp label="收件进仓单图片TODO" :list="modelInfo.TODO" ></bpd-pic-preview-tmp>
</view>
<view class="blcok-grey-sm mt-20">
<bpd-pic-preview-tmp label="签收货物图片" :list="modelInfo.billPicDispatchRmk" ></bpd-pic-preview-tmp>
</view>
<view class="blcok-grey-sm mt-20">
<bpd-pic-preview-tmp label="签收签名图片TODO" :list="modelInfo.TODO" ></bpd-pic-preview-tmp>
</view>
</view>
<view style="height: 30rpx;"></view>
</tpx-page>

View File

@ -9,14 +9,22 @@
<slot name="titleRight"></slot>
</view>
</u-row>
<u-row justify="between" custom-style="margin-top: 20rpx;">
<u-row justify="between" custom-style="flex-wrap:wrap;">
<u-col span="6" align="center">
<view class="clr-prm font-34 font-weight">{{staticInfo.parcelQty}}</view>
<view class="mt-20 clr-sub font-28">总件数</view>
<view class="mt-20 clr-prm font-34 font-weight">{{staticInfo.parcelQty}}</view>
<view class="mt-10 clr-sub font-28">总件数</view>
</u-col>
<u-col span="6" align="center">
<view class="clr-prm font-34 font-weight">{{staticInfo.billWeight}}</view>
<view class="mt-20 clr-sub font-28">总重量(KG)</view>
<view class="mt-20 clr-prm font-34 font-weight">{{staticInfo.billWeight}}</view>
<view class="mt-21 clr-sub font-28">总重量(KG)</view>
</u-col>
<u-col span="6" align="center">
<view class="mt-20 clr-prm font-34 font-weight">{{staticInfo.totalVolume}}</view>
<view class="mt-10 clr-sub font-28">总体积(m³)</view>
</u-col>
<u-col span="6" align="center">
<view class="mt-20 clr-prm font-34 font-weight">{{staticInfo.piaoNum}}</view>
<view class="mt-10 clr-sub font-28">总票数</view>
</u-col>
</u-row>
</view>
@ -42,11 +50,16 @@
let data = {
parcelQty: 0,
billWeight: 0,
totalVolume: 0,
piaoNum: this.list?.length || 0
}
this.list.map(t=> {
data.parcelQty += t.parcelQty
data.billWeight += t.billWeight
data.totalVolume += t.totalVolume
})
return data
}
},

View File

@ -5,12 +5,12 @@
<view>
<image style="height: 50rpx;width: 42rpx;" :src="getCdnUrl(`post/ji.png`)"></image>
</view>
<view style="flex: 1;padding: 0 30rpx;">
<view style="flex: 1;">
<template v-if="modelInfo.sender && modelInfo.sender.name">
<view style="width: 420rpx;padding: 0 30rpx;">
<view>
<view v-if="modelInfo.sender && modelInfo.sender.name" style="word-wrap: break-word;">
<text class="font-weight pr-10">{{modelInfo.sender.name}}</text>
<text class="">{{modelInfo.sender.phone}}</text>
</template>
<text class="font-weight">{{modelInfo.sender.phone}}</text>
</view>
<template v-else>
<text class="font-weight">寄件人信息</text>
</template>
@ -41,12 +41,12 @@
<image style="height: 50rpx;width: 42rpx;" :src="getCdnUrl(`post/shou.png`)">
</image>
</view>
<view class="pr-30 pl-30" style="flex: 1;">
<view style="flex: 1;">
<template v-if="modelInfo.reciever && modelInfo.reciever.name">
<view style="width: 420rpx;padding: 0 30rpx;">
<view >
<view v-if="modelInfo.reciever && modelInfo.reciever.name" style="word-wrap: break-word;">
<text class="font-weight pr-10">{{modelInfo.reciever.name}}</text>
<text class="">{{modelInfo.reciever.phone}}</text>
</template>
<text class="font-weight">{{modelInfo.reciever.phone}}</text>
</view>
<template v-else>
<text class="font-weight">收件人信息</text>
</template>

View File

@ -19,10 +19,7 @@
<u-text :text="sendDetail" size="26" color="#999"></u-text>
</view>
</view>
<view class="flex-column-center">
<image style="height: 32rpx;width: 28rpx;" :src="getCdnUrl(`post/eye-off.svg`)">
</image>
</view>
<view style="position: absolute;left: 20rpx;bottom: -20rpx;top: 46rpx;">
<u-line custom-style="height:100%;" direction="col" dashed="true"></u-line>
</view>
@ -53,10 +50,7 @@
<u-text :text="recieverDetail" size="26" color="#999"></u-text>
</view>
</view>
<view class="flex-column-center">
<image style="height: 32rpx;width: 28rpx;" :src="getCdnUrl(`post/eye-line.svg`)">
</image>
</view>
</u-row>
</view>
</template>

View File

@ -32,31 +32,39 @@
<!-- 手动添加的才能删除 -->
<u-row justify="between">
<view >
<text class="">应收:</text> {{item.fee || 0}}
<text class="font-weight font-30">{{item.feeName}}</text>
</view>
<view v-if="item.blAutoGen == 0" @click="handleDelFee(index)" class="delicon">
<u-icon name="trash" size="32"></u-icon>
</view>
</u-row>
<u-row style="width:450rpx;margin-top:10rpx;">
<text class="font-26 pr-20">{{item.feeName}}</text>
<tpx-input v-model:value="item.realFee" @change="(val)=> { handleRlFeeChange(item, val) }" _digit="5" :isWhite="true" custom-style="width: 120rpx;height: 46rpx;"
:disabled="modelInfo.blSpecialQuote != 1" suffix="CNY"></tpx-input>
</u-row>
<u-row custom-style="gap: 20rpx;margin-top:10rpx;">
<u-row custom-style="flex: 1">
<text class="font-26 pr-10">续重单价</text>
<tpx-input v-model:value="item.addWeightPrice" @change="(val)=> { handleAwPriceChange(item, val) }" _digit="5" :isWhite="true"
:disabled="modelInfo.blSpecialQuote != 1" custom-style="width: 120rpx;height: 46rpx;" suffix="CNY"></tpx-input>
</u-row>
<u-row custom-style="flex: 1">
<text class="font-26 pr-10">首重费</text>
<tpx-input v-model:value="item.initialWeightFee" @change="(val)=> { handleIwFeeChange(item, val) }" _digit="5" :isWhite="true"
:disabled="modelInfo.blSpecialQuote != 1" custom-style="width: 120rpx;height: 46rpx;" suffix="CNY"></tpx-input>
</u-row>
<u-row custom-style="flex: 1">
<text class="font-26 pr-10">续重单价</text>
<tpx-input v-model:value="item.addWeightPrice" @change="(val)=> { handleAwPriceChange(item, val) }" _digit="5" :isWhite="true"
:disabled="modelInfo.blSpecialQuote != 1" custom-style="width: 120rpx;height: 46rpx;" suffix="CNY"></tpx-input>
</u-row>
</u-row>
<view v-if="item.calcExp" class="mt-10">
<u-row style="margin-top:10rpx;" justify="between">
<view>
<text class="">应收:</text> {{item.fee || 0}}
</view>
<u-row custom-style="width:360rpx;">
<text class="font-26 pr-20">实收</text>
<tpx-input v-model:value="item.realFee" @change="(val)=> { handleRlFeeChange(item, val) }" _digit="5" :isWhite="true" custom-style="width: 120rpx;height: 46rpx;"
:disabled="modelInfo.blSpecialQuote != 1" suffix="CNY"></tpx-input>
</u-row>
</u-row>
<!-- <view v-if="item.calcExp" class="mt-10">
<text class="">计算公式:</text> {{item.calcExp}}
</view> -->
<view class="mt-20">
<tpx-input v-model:value="item.remark" :disabled="modelInfo.blSpecialQuote != 1" placeholder="费用描述" isWhite="true"></tpx-input>
</view>
</view>
@ -71,14 +79,12 @@
</tpx-select>
<view class="pt-20">
<u-row custom-style="flex: 1" justify="between">
<u-row custom-style="flex:1;" justify="between">
<text class="font-26 pr-10">总费用</text>
<view v-if="modelInfo.calcFeeType==3">
<view style="width: 360rpx;">
<tpx-input v-model:value="modelInfo.freight" :isWhite="true" _digit="5"
inputAlign="right" custom-style="width: 460rpx;height: 46rpx;" suffix="CNY"></tpx-input>
</view>
<view v-else>
{{modelInfo.freight || 0}}<text class="clr-sub pl-10">CNY</text>
:disabled="modelInfo.calcFeeType!=3"
inputAlign="right" custom-style="height: 46rpx;" suffix="CNY"></tpx-input>
</view>
</u-row>
</view>
@ -87,6 +93,36 @@
maxlength="50" count></u-textarea>
</view>
</view>
<buns-edit-sheet percentHeight="40" :title="costModal.item.feeName" v-model:show="costModal.show" v-model:value="costModal.item" v-slot="tempObject" @onSure="handleCostItemSure">
<u-row custom-style="gap: 20rpx;margin-top:10rpx;">
<u-row custom-style="flex: 1">
<text class="font-26 pr-10">首重费</text>
<tpx-input v-model:value="tempObject.value.initialWeightFee" _digit="5" :isWhite="true"
custom-style="width: 120rpx;height: 46rpx;" suffix="CNY"></tpx-input>
</u-row>
<u-row custom-style="flex: 1">
<text class="font-26 pr-10">续重单价</text>
<tpx-input v-model:value="tempObject.value.addWeightPrice" _digit="5" :isWhite="true"
custom-style="width: 120rpx;height: 46rpx;" suffix="CNY"></tpx-input>
</u-row>
</u-row>
<u-row style="margin-top:30rpx;" justify="between">
<u-row custom-style="width:300rpx;">
<text class="pr-20">应收</text>
<tpx-input v-model:value="tempObject.value.fee" _digit="5" :isWhite="true" custom-style="width: 120rpx;height: 46rpx;"
suffix="CNY"></tpx-input>
</u-row>
<u-row custom-style="width:300rpx;">
<text class="font-26 pr-20">实收</text>
<tpx-input v-model:value="tempObject.value.realFee" _digit="5" :isWhite="true" custom-style="width: 120rpx;height: 46rpx;"
suffix="CNY"></tpx-input>
</u-row>
</u-row>
<view class="mt-30">
<tpx-input v-model:value="tempObject.value.remark" placeholder="费用描述" isWhite="true"></tpx-input>
</view>
</buns-edit-sheet>
</template>
<script>
@ -143,7 +179,9 @@
},
},
data() {
return {}
return {
costModal: { item: {}, show: false }
}
},
created() {
},
@ -157,13 +195,15 @@
methods: {
handleDelFee(index) {
this.modelInfo.feeItems.splice(index, 1)
this.calteFreight()
},
handleAddFee(val) {
this.modelInfo.feeItems.push({
this.costModal.show = {}
this.costModal.item = {
blAutoGen: 0, // 手动添加的费用标识
feeCode: val,
feeName: this.dicData.emis_fee_type.filter(t => t.val == val)[0].title
})
}
},
async calcWaybillFee(params = {}) {
let res = await apiService.calcWaybillFee({ custNo: this.modelInfo.custNo, ...params })
@ -172,10 +212,6 @@
},
handleRlFeeChange(item, val){
// 手动添加,需要更新应收
if(item.blAutoGen == 0) {
item.fee = val
}
setTimeout(()=> {
this.calteFreight()
}, 500)
@ -206,9 +242,15 @@
calteFreight(){
let total = 0
this.modelInfo.feeItems.map(t=> {
total += (+t.realFee)
total += (+(t.realFee || 0))
})
this.modelInfo.freight = total
},
handleCostItemSure(data){
this.modelInfo.feeItems.push({ ...data })
setTimeout(()=>{
this.calteFreight()
}, 500)
}
}
}

View File

@ -6,92 +6,60 @@
<tpx-text-item label="包装类型" :value="modelInfo.packType" :list="dicData.emis_tab_packing_type" ></tpx-text-item>
</tpx-select>
</view>
<view class="edm-input-item">
<tpx-select v-model:value="modelInfo.prepareInExpress" :list="dicData.emis_express_code"
mode="drop"
>
<tpx-text-item label="同行快递">
<view v-if="modelInfo.pickupMethod == 1">
<view class="edm-input-item">
<tpx-select v-model:value="modelInfo.prepareInExpress" :list="dicData.emis_express_code"
mode="drop"
>
<tpx-text-item label="同行快递">
<template v-slot:right>
<tpx-input v-model:value="modelInfo.prepareInExpress" inputAlign="right"></tpx-input>
</template>
</tpx-text-item>
</tpx-select>
</view>
<view class="edm-input-item">
<tpx-text-item label="快递单号">
<template v-slot:right>
<u-input placeholder="" v-model="modelInfo.prepareInExpress" inputAlign="right"
custom-style="border:0;border-radius: 10rpx;background-color: #F6F6F6;padding: 11rpx 20rpx;"
placeholder-style="color: #999; "
></u-input>
<tpx-input v-model:value="modelInfo.prepareInBillCode" inputAlign="right"></tpx-input>
</template>
</tpx-text-item>
</tpx-select>
</view>
<view class="edm-input-item">
<tpx-text-item label="是否需要代垫运费">
<template v-slot:right>
<u-switch v-model="modelInfo.blPrepareInFreight" activeValue="1" inactiveValue="0" active-color="#B12D29" size="34"></u-switch>
</template>
</tpx-text-item>
</view>
<view v-if="modelInfo.blPrepareInFreight" class="edm-input-item">
<tpx-text-item label="代垫预估">
<template v-slot:right>
<tpx-input v-model:value="modelInfo.prepareInEstFee" _digit="5" inputAlign="right" suffix="CNY"></tpx-input>
</template>
</tpx-text-item>
</view>
<view class="edm-input-item">
<tpx-text-item label="供应商">
<template v-slot:right>
<tpx-input v-model:value="modelInfo.prepareInSupplier" inputAlign="right"></tpx-input>
</template>
</tpx-text-item>
</view>
<view class="edm-input-item">
<tpx-text-item label="自定义标记">
<template v-slot:right>
<tpx-input v-model:value="modelInfo.prepareInRemark" inputAlign="right"></tpx-input>
</template>
</tpx-text-item>
</view>
</view>
<view class="edm-input-item">
<tpx-text-item label="快递单号">
<template v-slot:right>
<u-input placeholder="" v-model="modelInfo.prepareInBillCode" inputAlign="right"
custom-style="border:0;border-radius: 10rpx;background-color: #F6F6F6;padding: 11rpx 20rpx;"
placeholder-style="color: #999; "
></u-input>
</template>
</tpx-text-item>
</view>
<view class="edm-input-item">
<tpx-text-item label="是否需要代垫运费">
<template v-slot:right>
<u-switch v-model="modelInfo.blPrepareInFreight" activeValue="1" inactiveValue="0" active-color="#B12D29" size="34"></u-switch>
</template>
</tpx-text-item>
</view>
<view v-if="modelInfo.blPrepareInFreight" class="edm-input-item">
<tpx-text-item label="代垫预估">
<template v-slot:right>
<u-input placeholder="" v-model="modelInfo.prepareInEstFee" inputAlign="right"
custom-style="width: 366rpx;flex: none;border:0;border-radius: 10rpx;background-color: #F6F6F6;padding: 11rpx 20rpx;"
placeholder-style="color: #999; " _digit="5"
>
<template #suffix>
<text class="font-26 clr-sub pl-10">CNY</text>
</template>
</u-input>
</template>
</tpx-text-item>
</view>
<view class="edm-input-item">
<tpx-text-item label="供应商">
<template v-slot:right>
<u-input placeholder="" v-model="modelInfo.prepareInSupplier" inputAlign="right"
custom-style="border:0;border-radius: 10rpx;background-color: #F6F6F6;padding: 11rpx 20rpx;"
placeholder-style="color: #999; "
></u-input>
</template>
</tpx-text-item>
</view>
<view class="edm-input-item">
<tpx-text-item label="自定义标记">
<template v-slot:right>
<u-input placeholder="" v-model="modelInfo.prepareInRemark" inputAlign="right"
custom-style="border:0;border-radius: 10rpx;background-color: #F6F6F6;padding: 11rpx 20rpx;"
placeholder-style="color: #999; "
></u-input>
</template>
</tpx-text-item>
</view>
<!-- <view class="edm-input-item">
<u-row justify="between">
<u-col span="4">
<text class="font-26 font-weight">备注</text>
</u-col>
<u-col span="7">
<u-input placeholder="" v-model="value1" inputAlign="right"
custom-style="border:0;border-radius: 10rpx;background-color: #F6F6F6;padding: 11rpx 20rpx;"
placeholder-style="color: #999; "
></u-input>
</u-col>
</u-row>
</view> -->
</template>
<script>

View File

@ -6,12 +6,20 @@
<tpx-text-item label="货物大类" :value="modelInfo.goodsType"></tpx-text-item>
</tpx-select>
</view>
<view class="edm-input-item">
<tpx-text-item label="货物名称">
<template v-slot:right>
<tpx-input v-model:value="modelInfo.goodsInfo" inputAlign="right"></tpx-input>
</template>
</tpx-text-item>
<view class="edm-input-item ">
<u-row align="top">
<text class="font-weight pr-30">货物名称</text>
<u-textarea v-model="modelInfo.goodsInfo" border="surround" height="100" placeholder=""
count></u-textarea>
</u-row>
</view>
<view class="edm-input-item mb-10">
<u-row justify="between">
<text class="font-28 font-weight">总件数</text>
<view>
<u-number-box v-model="modelInfo.parcelQty" :min="1" :max="100000" buttonSize="50" inputWidth="100" iconStyle="font-size: 18rpx;"></u-number-box>
</view>
</u-row>
</view>
<view v-for="(item, index) in modelInfo.cargoList" class="yditem">
@ -35,6 +43,24 @@
</u-row>
</u-button>
<view class="edm-input-item mt-20">
<u-row justify="between">
<text class="font-28 font-weight">包裹重量</text>
<view>
<tpx-input v-model:value="modelInfo.billWeight" placeholder="" inputAlign="right" suffix="kg" _digit="5"></tpx-input>
</view>
</u-row>
</view>
<view class="edm-input-item">
<u-row justify="between" align="top">
<text class="font-28 pt-20 font-weight">总体积</text>
<view v-if="totalVolume || true">
<tpx-input v-model:value="modelInfo.totalVolume" placeholder="" inputAlign="right" suffix="m³" _digit="5"></tpx-input>
</view>
</u-row>
</view>
</template>
<script>
@ -51,6 +77,15 @@
},
dicData() {
return this.$store.getters.dicData
},
totalVolume() {
let totalVolume = this.modelInfo.totalVolume
return totalVolume
},
isCargoListOnchange() {
return this.modelInfo.cargoList
}
},
watch: {
@ -70,6 +105,13 @@
this.modelInfo.cargoList.splice(maxCaIndex + 1, this.modelInfo.cargoList.length -1 - maxCaIndex)
}
}
},
isCargoListOnchange: {
handler(newVal){
console.log("===bpe-goodsize-tmp isCargoListOnchange===")
this.handleCargoChange(newVal)
},
deep: true,
}
},
props: {
@ -110,6 +152,27 @@
},
handleChooseGood(val, name){
this.modelInfo.goodsInfo = name
},
handleCargoChange(list){
let parcelQty = 0, totalVolume = 0
list.map(t=> {
totalVolume += (+t.volume) || 0
})
this.modelInfo.totalVolume = totalVolume.toFixed(5)
},
async calceOther() {
let { totalVolume, productType, billWeight } = this.modelInfo
let voRes = await apiService.calcVolumeWeight({ productType, totalVolume })
let { volumeWeight } = voRes.data
let stRes = await apiService.calcSetteldWeight({ volumeWeight, productType, billWeight })
const { settlementWeight } = stRes.data
this.modelInfo.volumeWeight = volumeWeight
this.modelInfo.settlementWeight = this.modelInfo.totalWeight = settlementWeight
//
},
async validData() {
await this.calceOther()
}
}
}
@ -119,7 +182,7 @@
.yditem{
padding: 20rpx 20rpx;
// background-color: #F6F6F6;
background-color: #e1e1e1;
background-color: #F6F6F6;
border-radius: 10rpx;
margin-bottom: 20rpx;
}

View File

@ -26,16 +26,15 @@
</tpx-select>
</view>
<view class="edm-input-item">
<tpx-text-item label="物品数量">
<!-- <view class="edm-input-item">
<tpx-text-item label="件数">
<template v-slot:right>
<tpx-input placeholder="请填写" v-model:value="modelInfo.cargoQty" inputAlign="right" type="number" suffix="件" :_maxNum="cargoQtyMaxNum"></tpx-input>
</template>
</tpx-text-item>
</view>
</view> -->
<bpe-gooditemsize-tmp v-model:value="modelInfo"></bpe-gooditemsize-tmp>
<bpe-gooditemsize-tmp v-model:value="modelInfo" :submitVal="submitVal"></bpe-gooditemsize-tmp>
<view v-if="showMode!=1">
<view class="edm-input-item">

View File

@ -3,8 +3,8 @@
<view class="jsfm-item">
<u-row justify="between" align="top">
<text class="font-28 pt-20 font-weight">尺寸</text>
<view style="width: 70%;">
<!-- <text class="font-28 pt-20 font-weight">尺寸</text> -->
<view style="width: 100%;">
<u-row justify="between">
<u-col span="3.7">
<tpx-input v-model:value="modelInfo.length" placeholder="长" inputAlign="right" suffix="cm" _digit="5"></tpx-input>
@ -20,12 +20,20 @@
</u-row>
</view>
<view class="jsfm-item">
<u-row justify="between" align="top">
<text class="font-28 font-weight">体积</text>
<view style="">
{{modelInfo.volume || '0'}}
<text class="clr-sub">m³</text>
</view>
<u-row justify="between">
<u-row>
<text class="font-28 font-weight pr-10">件数</text>
<view style="width: 200rpx;">
<tpx-input placeholder="请填写" v-model:value="modelInfo.cargoQty" inputAlign="right" type="number" suffix="件" :_maxNum="cargoQtyMaxNum"></tpx-input>
</view>
</u-row>
<u-row>
<text class="font-28 font-weight pr-10">体积</text>
<view style="">
{{modelInfo.volume || '0'}}
<text class="clr-sub">m³</text>
</view>
</u-row>
</u-row>
</view>
</view>
@ -44,6 +52,21 @@
return {
length, width, height, cargoQty
}
},
cargoQtyMaxNum(){
// 限制数量的最大值
let { cargoList, parcelQty } = this.submitVal
let curQty = (+this.modelInfo.cargoQty) || 0
let qtMaxNum = parcelQty + curQty
cargoList.map(t=> {
if(t.cargoQty) {
qtMaxNum = qtMaxNum - t.cargoQty
}
})
if(qtMaxNum < 0) {
qtMaxNum = 0
}
return qtMaxNum
}
},
watch: {
@ -59,7 +82,12 @@
default () {
return { }
}
}
},
submitVal: {
default () {
return {}
}
},
},
data() {
return {

View File

@ -1,6 +1,6 @@
<template>
<view class="shet-cont">
<view class="jsfm-item">
<view class="jsfm-item" style="margin-top: 0;">
<u-row justify="between">
<text class="font-28 font-weight">总件数</text>
<view>

View File

@ -1,25 +1,20 @@
<template>
<view class="pb-20">
<view>
<text class="clr-sub pr-10">货物名称</text> {{modelInfo.goodsInfo}}
</view>
<!-- <view class="pt-10">
<text class="clr-sub pr-10">货物大类</text> {{modelInfo.goodsType}}
</view> -->
</view>
<view v-for="(item) in modelInfo.cargoList" class="yditem">
<view class="ydi-lab">
<text class="font-weight">{{item.goodsName}}</text>
</view>
<u-row justify="between" custom-style="flex-wrap: wrap;">
<u-col v-if="item.nationArea" span="6">
<view class="pt-5">
<text class="clr-sub pr-10">产地</text>{{item.nationArea}}
</view>
</u-col>
<u-col span="6">
<view class="pt-5">
<text class="clr-sub pr-10">件数</text> {{item.cargoQty}}
</view>
</u-col>
<u-col v-if="item.price" span="6">
<view class="pt-5">
<text class="clr-sub pr-10">单价</text>{{item.price}} CNY
</view>
</u-col>
<u-col span="12">
<view class="pt-5">
<text class="clr-sub pr-10">尺寸</text>
@ -28,12 +23,29 @@
{{item.length || '0'}}cm
</view>
</u-col>
<u-col span="12">
<u-col v-if="item.nationArea" span="6">
<view class="pt-5">
<text class="clr-sub pr-10">体积</text>
{{item.volume || '0'}}m³
<text class="clr-sub pr-10">产地</text>{{item.nationArea}}
</view>
</u-col>
<u-col span="12">
<u-row justify="between">
<view class="pt-5">
<text class="clr-sub pr-10">件数</text> {{item.cargoQty}}
</view>
<view class="pt-5">
<text class="clr-sub pr-10">体积</text>
{{item.volume || '0'}}m³
</view>
</u-row>
</u-col>
<u-col v-if="item.price" span="6">
<view class="pt-5">
<text class="clr-sub pr-10">单价</text>{{item.price}} CNY
</view>
</u-col>
</u-row>
</view>
@ -56,29 +68,29 @@
</view>
<view class="sta-t-item">
<view class="">
<text class="font-weight">{{modelInfo.billWeight || '-'}}</text>
<text class="font-weight">{{modelInfo.volumeWeight || '-'}}</text>
<text class="clr-sub">kg</text>
</view>
<view class="sta-lbl clr-sub">实际重量</view>
<view class="sta-lbl clr-sub">体积重量</view>
</view>
</u-row>
</view>
<view class="font-28 mt-20">
<u-row justify="space-between">
<view class="sta-t-item">
<!-- <view class="sta-t-item">
<view class="">
<text class="font-weight">{{modelInfo.totalWeight || '-'}}</text>
<text class="clr-sub">kg</text>
</view>
<view class="sta-lbl clr-sub">总重量</view>
</view>
</view> -->
<view class="sta-t-item">
<view class="">
<text class="font-weight">{{modelInfo.volumeWeight || '-'}}</text>
<text class="font-weight">{{modelInfo.billWeight || '-'}}</text>
<text class="clr-sub">kg</text>
</view>
<view class="sta-lbl clr-sub">体积重量</view>
<view class="sta-lbl clr-sub">实际重量</view>
</view>
<view class="sta-t-item">
@ -90,6 +102,12 @@
</view>
</u-row>
</view>
<view class="pt-30">
<u-row justify="">
<text class="clr-sub pr-10">包装类型</text>
<tpx-text-dic :value="modelInfo.packType" :list="dicData.emis_tab_packing_type"></tpx-text-dic>
</u-row>
</view>
</view>
</template>
@ -97,6 +115,9 @@
<script>
export default {
computed: {
dicData() {
return this.$store.getters.dicData
},
modelInfo: {
get(){
return this.value

View File

@ -3,7 +3,7 @@
mut-bind:touchmove="true">
<view @touchmove.stop="" class="dialog-mask" @click="handleClose()"></view>
<view :class="`dialog-content ${type} pos-${closePosType}`"
:style="`padding: 20rpx 0rpx;background-color:${bgColor};`">
:style="compRootStyle">
<view v-if="title" style="margin-bottom: 30rpx;" >
<u-row @touchmove.stop="" justify="between" custom-style="padding: 0 30rpx 20rpx; 30rpx;">
<view class="lgd-title">{{title}}</view>
@ -22,6 +22,13 @@
<script>
export default {
computed:{
compRootStyle(){
let sty = `padding: 20rpx 0rpx;background-color:${this.bgColor};`
sty += `${this.rootStyle || ''};`
return sty
}
},
props: {
show: {
default () {
@ -58,6 +65,11 @@
return ''
}
},
rootStyle: {
default () {
return ''
}
},
zIndex: {
default () {
return 990

View File

@ -2,7 +2,8 @@
<u-input shape="circle" :placeholder="placeholder" :modelValue="value" :clearable="clearable"
:custom-style="inputStyle" :readonly="readonly" :type="type" :inputAlign="inputAlign"
:placeholder-style="`color: #999;${placeholderStyle};` " @change="handleChange"
:formatter="formatter" :disabled="disabled"
@blur="handleFocus" @focus="handleBlur"
:formatter="formatter" :disabled="disabled" :focus="autoFocus"
>
<template v-if="suffix" #suffix>
<text class="font-26 clr-sub pl-10">{{suffix}}</text>
@ -17,7 +18,11 @@
inputStyle(){
let bgColor = '#F6F6F6'
let sty1 = 'border:0;border-radius: 10rpx;padding: 11rpx 20rpx;'
if(this.isWhite) {
// if(this.isWhite) {
// bgColor = '#fff'
// sty1 += 'border: 1rpx solid #dadbde;'
// }
if(true) {
bgColor = '#fff'
sty1 += 'border: 1rpx solid #dadbde;'
}
@ -87,6 +92,11 @@
return ''
}
},
autoFocus: {
default () {
return false
}
},
},
data() {
return {
@ -102,6 +112,12 @@
unmounted() {},
methods: {
handleFocus(){
this.$emit('focus')
},
handleBlur(){
this.$emit('blur')
},
handleChange(val){
this.$emit('change', val)
this.$emit('update:value', val)

View File

@ -16,7 +16,10 @@
computed: {
contClass() {
let pre = ['radius-10']
if (this.isWhite) {
// if (this.isWhite) {
// pre.push('c-white')
// }
if (true) {
pre.push('c-white')
} else {
pre.push('c-grey')

View File

@ -16,7 +16,7 @@
<view style="height: calc(60vh);">
<tpx-scroll-view :resObject="filResObject" :searchParam="filDataSearchParam" :getListFun="getListFun" size="sm" :showLoadedAll="false" @onListChange="onListChange">
<view v-if="showKeyWord" class="mb-10">
<tpx-input v-model:value="keyword" placeholder="请输入关键字" @change="handleKeyWordChange"></tpx-input>
<tpx-input v-model:value="keyword" :autoFocus="show" placeholder="请输入关键字" @change="handleKeyWordChange"></tpx-input>
</view>
<content-items :value="value" :list="filDataList" :checkedList="filDatacheckedList" :minChecked="minChecked" :type="type"
:text="text" :vdataType="vdataType" :transKeyVal="transKeyVal"
@ -31,7 +31,7 @@
<view v-if="mode == modeEnum.drop && show" class="md-drop-cont">
<tpx-scroll-view :maxHeight="dropMaxHeight" :resObject="filResObject" :searchParam="filDataSearchParam" :getListFun="getListFun" size="sm" :showLoadedAll="false" @onListChange="onListChange">
<view v-if="showKeyWord" class="mb-10">
<tpx-input v-model:value="keyword" placeholder="请输入关键字" @change="handleKeyWordChange"></tpx-input>
<tpx-input v-model:value="keyword" :autoFocus="show" placeholder="请输入关键字" @change="handleKeyWordChange"></tpx-input>
</view>
<content-items :value="value" :list="filDataList" :minChecked="minChecked" :type="type"
:text="text" :vdataType="vdataType" :transKeyVal="transKeyVal"