emis-app/components/buns-order-templates/bo-detail-tmp.vue
2025-06-26 11:08:47 +08:00

487 lines
14 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<tpx-page>
<view class="dt-block" style="margin-top: 0;">
<!-- <tpx-text-dic :value="modelInfo.waybillStatus" :list="dicData.emis_waybill_status" ></tpx-text-dic> -->
<!-- <view class="dt-tle">
<view class="t1">订单号: {{modelInfo.orderSn}}</view>
<view class="t2">
<view class="clr-prm">
<tpx-text-dic :value="modelInfo.orderStatus" :list="dicData.emis_order_status" ></tpx-text-dic>
</view>
</view>
</view> -->
<view class="dt-tle">
<view class="t1">
<u-row @click="setClipboardData(modelInfo.billCode)">
运单号: {{modelInfo.billCode}}
<view class="pl-10">
<u-icon name="file-text" size="32" custom-style=""></u-icon>
</view>
</u-row>
</view>
<view class="t2">
<view class="clr-prm">
<tpx-text-dic :value="modelInfo.waybillStatus" :list="dicData.emis_waybill_status" ></tpx-text-dic>
</view>
</view>
</view>
<u-line margin="20rpx 0 20rpx"></u-line>
<view>
<bpe-addressjiami-tmp v-model:value="modelInfo"></bpe-addressjiami-tmp>
</view>
</view>
<view v-if="modelInfo.blIsQuestion == '1'" class="dt-block">
<view class="dt-tle">
<view class="t1 clr-prm">问题件</view>
</view>
<u-line margin="20rpx 0 20rpx"></u-line>
<view class="blcok-grey-sm">
<view class="dt-item">
<u-row>
<text class="clr-sub pr-10">问题类型</text>
<text class="clr-prm">{{modelInfo.problemTypeName || '-'}}</text>
</u-row>
</view>
<view class="dt-item">
<u-row>
<text class="clr-sub pr-10">问题原因</text>
<text class="clr-prm">{{modelInfo.problemCause || '-'}}</text>
</u-row>
</view>
</view>
</view>
<view class="dt-block">
<view class="dt-tle">
<view class="t1">托寄货物描述</view>
</view>
<u-line margin="20rpx 0 20rpx"></u-line>
<view class="">
<bpe-goodstatic-tmp v-model:value="modelInfo"></bpe-goodstatic-tmp>
</view>
<u-line margin="20rpx 0 20rpx"></u-line>
<u-row justify="end">
<view style="display: inline-block;white-space: nowrap;" class="mt-10">
<u-row>
<u-button v-if="modelInfo.pickupMethod == 1 && modelInfo.intoWarehouseBillCode"
@click="goto(`warehousing/detail?inNo=${modelInfo.intoWarehouseBillCode}`)" shape="circle" type="primary"
custom-style="height: 54rpx;margin-left: 20rpx;">入仓单</u-button>
<u-button shape="circle" type="primary" :plain="true"
custom-style="height: 54rpx;margin-left: 20rpx;">单证</u-button>
</u-row>
</view>
</u-row>
</view>
<view class="dt-block">
<view class="dt-tle">
<view class="t1">产品类型</view>
<view class="t2">
<view class="clr-prm">
<tpx-text-dic :value="modelInfo.paymentStatus" :list="dicData.emis_payment_status" ></tpx-text-dic>
</view>
</view>
</view>
<u-line margin="20rpx 0 20rpx"></u-line>
<view class="blcok-grey-sm">
<view class="dt-item">
<view v-if="modelInfo.reciever">
<text class="clr-sub pr-10">寄件网点</text>
<text class="">{{ modelInfo.sendSiteName }}</text>
</view>
<view>
<text class="clr-sub pr-10">目的网点</text>
<text class="">{{ modelInfo.dispatchUnderlingSiteName }}</text>
</view>
</view>
<view class="dt-item">
<view>
<text class="clr-sub pr-10">始发网点</text>
<text class="">{{ modelInfo.startSiteName }}</text>
</view>
</view>
<view class="dt-item">
<view>
<text class="clr-sub pr-10">目的地</text>
<text class="">{{ modelInfo.destinationName }}</text>
</view>
<view v-if="modelInfo.reciever">
<text class="clr-sub pr-10">目的国家</text>
<text class="">{{ modelInfo.reciever.countryName }}</text>
</view>
</view>
<view class="dt-item">
<view>
<text class="clr-sub pr-10">线路</text>
<text class="">{{ modelInfo.transLineTypeName }}</text>
</view>
<view>
<text class="clr-sub pr-10">产品类型</text>
<text class="">{{ modelInfo.productTypeName }}</text>
</view>
</view>
<view class="dt-item">
<view>
<text class="clr-sub pr-10">时效</text>
<text class="">{{modelInfo.timeType}}</text>
</view>
</view>
<view class="dt-item">
<u-row>
<text class="clr-sub pr-10">报关方式</text>
<view class="">
<tpx-text-dic :value="modelInfo.customsEclaration" :list="dicData.emis_declare_mode" ></tpx-text-dic>
</view>
</u-row>
<u-row>
<text class="clr-sub pr-10">清关方式</text>
<view class="">
<tpx-text-dic :value="modelInfo.customsClear" :list="dicData.emis_customs_clear" ></tpx-text-dic>
</view>
</u-row>
</view>
<view class="dt-item" v-if="modelInfo.blVirtual && modelInfo.blVirtual === '1'">
<view>
<text class="clr-sub pr-10">是否为虚拟单</text>
<text class="">{{ modelInfo.blVirtual==='1'?'是':'否' }}</text>
</view>
<view>
<text class="clr-sub pr-10">关联主单</text>
<text class="">{{ modelInfo.masterBillCode }}</text>
</view>
</view>
<view class="dt-item">
<u-row>
<text class="clr-sub pr-10">寄件时间</text>
<text>{{modelInfo.sendDate || '-'}}</text>
</u-row>
</view>
<view class="dt-item">
<u-row>
<text class="clr-sub pr-10">预计到达时间</text>
<text>{{modelInfo.estimateDate || '-'}}</text>
</u-row>
</view>
</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="">
<view class="dt-item">
<u-row>
<text class="clr-sub pr-10">付款方式</text>
<view class="">
<tpx-text-dic :value="modelInfo.paymentType" :list="dicData.emis_payment_type" ></tpx-text-dic>
</view>
</u-row>
</view>
<view v-if="isShowYueJie">
<view class="dt-item">
<u-row>
<text class="clr-sub pr-10">月结客户</text>
<text class="">{{modelInfo.custName}}</text>
</u-row>
</view>
</view>
<view class="dt-item">
<u-row>
<text class="clr-sub pr-10">回款联系人</text>
<text class="">{{modelInfo.payee || '-'}}</text>
</u-row>
<u-row>
<text class="clr-sub pr-10">销售联系人</text>
<text class="">{{modelInfo.salesmen || '-'}}</text>
</u-row>
</view>
<bpe-coststatic-tmp v-model:value="modelInfo"></bpe-coststatic-tmp>
</view>
</view>
<view class="dt-block">
<view class="dt-tle">
<view class="t1">取件、派件信息</view>
</view>
<u-line margin="20rpx 0 20rpx"></u-line>
<view class="blcok-grey-sm">
<view class="mb-10 font-weight">取件信息</view>
<view class="dt-item">
<u-row>
<text class="clr-sub pr-10">取货方式</text>
<view class="">
<tpx-text-dic :value="modelInfo.pickupMethod" :list="dicData.emis_qujian_fangshi" ></tpx-text-dic>
</view>
</u-row>
</view>
<view v-if="modelInfo.pickupMethod == 2" class="dt-item">
<view>
<text class="clr-sub pr-10">预约上门</text>
<text class=""> {{modelInfo.pickStartDate || '-'}}</text>
</view>
</view>
<view class="dt-item">
<view>
<text class="clr-sub pr-10">安排信息</text>
<text >
<text v-if="modelInfo.pickupMethod == 1">{{modelInfo.operateEmployeeName}}</text>
<text v-if="modelInfo.pickupMethod == 2">{{modelInfo.takePieceEmployeeName}}</text>
</text>
</view>
</view>
</view>
<view class="blcok-grey-sm">
<view class="mb-10 font-weight">派件信息</view>
<view class="dt-item">
<u-row>
<text class="clr-sub pr-10">派送方式</text>
<view class="">
<tpx-text-dic :value="modelInfo.dispatchMethod" :list="dicData.emis_tab_dispatch_mode" ></tpx-text-dic>
</view>
</u-row>
<u-row>
<text class="clr-sub pr-10">派件员</text>
<text>{{modelInfo.dispatchManName || '-'}}</text>
</u-row>
</view>
<view class="dt-item">
<u-row>
<text class="clr-sub pr-10">派送网点</text>
<text>{{modelInfo.dispatchSiteName || '-'}}</text>
</u-row>
</view>
<view class="dt-item">
<u-row>
<text class="clr-sub pr-10">派送时间</text>
<text>{{modelInfo.dispatchDate || '-'}}</text>
</u-row>
</view>
</view>
<view class="blcok-grey-sm">
<view class="mb-10 font-weight">签收信息</view>
<view class="dt-item">
<u-row>
<text class="clr-sub pr-10">签收人</text>
<text>{{modelInfo.signMan || '-'}}</text>
</u-row>
</view>
<view class="dt-item">
<u-row>
<text class="clr-sub pr-10">签收站点</text>
<text>{{modelInfo.signSiteName || '-'}}</text>
</u-row>
</view>
<view class="dt-item">
<u-row>
<text class="clr-sub pr-10">签收时间</text>
<text>{{modelInfo.signDate || '-'}}</text>
</u-row>
</view>
</view>
<!-- <u-line margin="20rpx 0 10rpx 0"></u-line>
<u-row justify="between">
<u-text text="快递员" size="28" :bold="true"></u-text>
<u-row>
<u-text :text="modelInfo.takePieceEmployeeName" size="28" :bold="true" margin="0 30rpx 0 0"></u-text>
<view>
<u-avatar size="50" :src="''"></u-avatar>
</view>
</u-row>
</u-row> -->
</view>
<view class="dt-block">
<view class="dt-tle">
<view class="t1">运单备注</view>
</view>
<u-line margin="20rpx 0 20rpx"></u-line>
<view class="blcok-grey-sm">
<view class="dt-item">{{remarkFormat(modelInfo) || '-'}}</view>
</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>
<!-- <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>
<view class="t2">
<u-button @click="goto(`post/locus?billCode=${billCode}`)" shape="circle" :plain="true" custom-style="height: 50rpx;font-size:28rpx;">查看轨迹</u-button>
</view>
</view>
<u-line margin="20rpx 0 20rpx"></u-line>
<view class="mb-20">
<buns-locus-pos :billCode="billCode"></buns-locus-pos>
</view>
</view>
<view style="height: 30rpx;"></view>
</tpx-page>
</template>
<script>
import BpeAddressjiamiTmp from "@/components/buns-post-edit-templates/bpe-addressjiami-tmp"
import BpdPicPreviewTmp from "@/components/buns-post-detail-templates/bpd-pic-preview-tmp"
import BpeGoodstaticTmp from "@/components/buns-post-edit-templates/bpe-goodstatic-tmp"
import BpeCoststaticTmp from "@/components/buns-post-edit-templates/bpe-coststatic-tmp"
import * as apiService from "@/common/api"
export default {
components: { BpeAddressjiamiTmp, BpdPicPreviewTmp, BpeGoodstaticTmp, BpeCoststaticTmp },
computed: {
dicData() {
return this.$store.getters.dicData
},
modelInfo: {
get(){
return this.value
}
},
isShowYueJie(){
let { modelInfo } = this
return modelInfo.paymentType == 2 || modelInfo.paymentType == 4 || modelInfo.paymentType == 5
},
},
props: {
value: {
default () {
return { }
}
},
billCode: {
default () {
return ''
}
}
},
data() {
return {
}
},
created() {
},
mounted(){
this.initData()
},
onHide() {
},
unmounted() {
},
methods: {
//拼接虚拟单后6位
conCatVirtualRemark(virtualRemark) {
if (virtualRemark != null) {
return virtualRemark.split(',').map((item) => {
return item.substring(item.length - 6);
}).join(',');
}
},
//拼接备注
remarkFormat(modelInfo) {
let remark = modelInfo.remark;
if (modelInfo.blVirtual === '0' && modelInfo.virtualRemark !== '' && modelInfo.virtualRemark !== null && modelInfo.transLine === '002' && modelInfo.sendDate > '2025-06-23 20:00:00') {
if (remark && remark.trim() !== '' && !remark.endsWith(',')) {
remark = remark + ','
}
remark = `${remark}该运单为主单,对应虚拟单为${this.conCatVirtualRemark(modelInfo.virtualRemark)}`;
}
return remark;
},
async initData(){
if(this.billCode) {
let res = await apiService.getOrderDetail({billCode: this.billCode, _loading: true})
// 通过对象合并才能修改父级 数据
Object.assign(this.modelInfo, res.data || {})
}
}
}
}
</script>
<style lang="scss">
@import '@/common/uni-nvue.scss';
</style>
<style scoped lang="scss">
.dt-block {
margin-top: 30rpx;
padding: 30rpx;
background-color: #FFF;
position: relative;
}
.dt-tle {
display: flex;
flex-direction: row;
justify-content: space-between;
.t1 {
font-size: 30rpx;
font-weight: 700;
}
.t2{
font-size: 30rpx;
}
}
.dt-item {
display: flex;
flex-direction: row;
margin-bottom: 20rpx;
justify-content: space-between;
}
.yditem{
padding: 20rpx 20rpx;
background-color: #F6F6F6;
border-radius: 10rpx;
margin-bottom: 20rpx;
}
.ydi-lab{
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
</style>