emis-sapp/pages/warehousing/detail.vue

341 lines
10 KiB
Vue
Raw Normal View History

2023-12-17 15:28:03 +00:00
<template>
2024-09-01 12:18:45 +00:00
<tpx-page>
<tpx-layout>
<template v-slot:header></template>
<template v-slot:body>
<view class="dt-block">
<view class="dt-tle">
2024-09-01 14:56:12 +00:00
<view @click="setClipboardData(postInfo.billCode)" class="t1">订单号: {{postInfo.billCode}}</view>
2024-09-01 12:18:45 +00:00
<view class="t2">
<text class="clr-prm"></text>
2023-12-17 15:28:03 +00:00
</view>
</view>
2024-09-01 12:18:45 +00:00
<u-line margin="20rpx 0 20rpx"></u-line>
2023-12-17 15:28:03 +00:00
<view>
2024-09-01 12:18:45 +00:00
<bpe-addressjiami-tmp v-model:value="postInfo"></bpe-addressjiami-tmp>
2023-12-17 15:28:03 +00:00
</view>
2024-09-01 12:18:45 +00:00
2023-12-17 15:28:03 +00:00
</view>
2024-09-01 12:18:45 +00:00
<view class="dt-block">
<view class="dt-tle" @click="handleCopyWareHouse()">
<view class="t1">{{postInfo.intoWarehouseName}}联系信息</view>
<view class="t2">
<u-icon name="file-text" size="38" custom-style=""></u-icon>
</view>
2023-12-17 15:28:03 +00:00
</view>
2024-09-01 12:18:45 +00:00
<u-line margin="20rpx 0 20rpx"></u-line>
2023-12-17 15:28:03 +00:00
<view>
2024-09-01 12:18:45 +00:00
<view>
<text class="font-weight font-28 pr-20">{{postInfo.intoWarehouseContact}}</text>
<text class="clr-sub font-28">{{postInfo.intoWarehousePhone}}</text>
</view>
<u-text :text="postInfo.intoWarehouseAddress"
size="24" margin="20rpx 0 0 0" color="#999"
></u-text>
2023-12-17 15:28:03 +00:00
</view>
</view>
2024-09-01 12:18:45 +00:00
<view class="dt-block">
<view class="dt-tle">
<view class="t1">进仓货物总览</view>
<view class="t2">
2024-09-02 15:14:22 +00:00
<tpx-text-dic :value="billInfo.confirmStatus" :list="dicData.emis_wsin_tab"></tpx-text-dic>
2024-09-01 12:18:45 +00:00
</view>
2023-12-17 15:28:03 +00:00
</view>
2024-09-01 12:18:45 +00:00
<u-line margin="20rpx 0 20rpx"></u-line>
2023-12-17 15:28:03 +00:00
<view class="dt-item font-28">
<view>
2024-09-01 12:18:45 +00:00
<text class="pr-20 clr-sub">总重量:</text>
<text class="">{{billInfo. totalWeight }} kg</text>
2023-12-17 15:28:03 +00:00
</view>
<view>
2024-09-01 12:18:45 +00:00
<text class="pr-20 clr-sub">总体积:</text>
<text class="">{{billInfo.totalVolume}}m³</text>
2023-12-17 15:28:03 +00:00
</view>
<view>
2024-09-01 12:18:45 +00:00
<text class="pr-20 clr-sub">总件数:</text>
<text class="">{{billInfo.totalParcelQty}}</text>
2023-12-17 15:28:03 +00:00
</view>
</view>
2024-09-01 12:18:45 +00:00
</view>
<view v-for="(item) in billInfo.stockInBatchList" class="dt-block" style="padding-bottom: 2rpx;">
<view class="dt-tle">
<view class="t1">进仓单号:{{item.inNo}}</view>
<view class="t2">
<!-- <text class="clr-prm">{{'部分入仓'}}</text> -->
2023-12-17 15:28:03 +00:00
</view>
</view>
2024-09-01 12:18:45 +00:00
<u-line margin="20rpx 0 20rpx"></u-line>
2023-12-17 15:28:03 +00:00
<view class="dt-item font-28">
<view>
2024-09-01 12:18:45 +00:00
<text class="pr-20 clr-sub">进仓时间:</text>
<text class="font-weight">{{item.entryDate}}</text>
2023-12-17 15:28:03 +00:00
</view>
<view>
2024-09-01 12:18:45 +00:00
<text class="pr-20 clr-sub">操作员:</text>
<text class="font-weight">{{item.createByName}}</text>
2023-12-17 15:28:03 +00:00
</view>
</view>
2024-09-01 14:56:12 +00:00
<view v-for="(gdItem) in item.cargoList" class="yditem">
2024-09-01 12:18:45 +00:00
<view class="ydi-lab">
2024-09-01 14:56:12 +00:00
<text class="font-weight">{{gdItem.goodsName}}</text>
<text>异常:{{gdItem.abnormalQty}}</text>
2024-09-01 12:18:45 +00:00
</view>
<view class="ydi-lab mt-10">
2024-09-01 14:56:12 +00:00
<text class="clr-sub">{{gdItem.brand}} - {{gdItem.nationArea}}</text>
<text class="clr-prm">实入:{{gdItem.cargoQty}}</text>
2023-12-17 15:28:03 +00:00
</view>
</view>
2024-09-01 12:18:45 +00:00
<view class="yditem" style="padding-bottom: 5rpx;">
<view class="dt-item font-28">
<view>
<text class="pr-20 clr-sub">重量:</text>
<text class="">{{item.totalWeight}} kg</text>
</view>
<view>
<text class="pr-20 clr-sub">体积:</text>
<text class="">{{item.totalVolume}}m³</text>
</view>
<view>
<text class="pr-20 clr-sub">件数:</text>
<text class="">{{item.totalParcelQty}}</text>
</view>
</view>
<view class="dt-item font-28">
<u-row>
<text class="pr-20 clr-sub">包装类型:</text>
<tpx-text-dic :value="item.packType" :list="dicData.emis_tab_packing_type"></tpx-text-dic>
</u-row>
<view>
<text class="pr-20 clr-sub">供应商:</text>
<text class="">{{item.prepareInSupplier}}</text>
</view>
</view>
<view class="dt-item font-28">
<view>
2024-12-29 15:39:01 +00:00
<text class="pr-20 clr-sub">同行快递:</text>
2024-09-01 12:18:45 +00:00
<text class="">{{item.prepareInExpress}}</text>
</view>
<view>
<text class="pr-20 clr-sub">快递单号:</text>
<text class="">{{item.prepareInBillCode}}</text>
</view>
</view>
<view v-if="item.blPrepareInFreight == '1'" class="dt-item font-28">
<view>
<text class="pr-20 clr-sub">代垫运费:</text>
<text class="font-weight clr-prm">¥{{item.prepareInEstFee}}</text>
</view>
</view>
<view class="dt-item font-28">
<view>
<text class="pr-20 clr-sub">发货备注:</text>
<text class=" ">{{item.prepareInRemark}}</text>
</view>
</view>
<view class="dt-item font-28" style="margin-bottom: 10rpx;">
<view>
<text class="pr-20 clr-sub">仓库收货备注:</text>
<text class=" ">{{item.remark}}</text>
</view>
</view>
<view class="mb-20">
<u-row>
<u-image v-for="(sImgUrl, simIndex) in item.picUrl"
@click="handlePreviewImgs(item.picUrl, simIndex)" :src="sImgUrl" width="100" height="50" mode="aspectFill"
custom-style="margin: 20rpx 20rpx 0 0;"
></u-image>
</u-row>
2023-12-17 15:28:03 +00:00
</view>
</view>
2024-09-01 12:18:45 +00:00
<u-row justify="end">
<view style="display: inline-block;white-space: nowrap;" class="mt-10 pb-30">
<u-row>
2024-09-02 15:14:22 +00:00
<u-button v-if="item.confirmStatus!=1" @click="handleDialogClick(feedModal)" shape="circle" :plain="true"
2024-09-01 12:18:45 +00:00
custom-style="height: 54rpx;margin-left: 20rpx;">反馈异常</u-button>
2024-09-01 14:56:12 +00:00
2024-09-02 15:14:22 +00:00
<u-button v-if="billInfo.stockInFlag == 1" :disabled="item.confirmStatus==1" @click="confirmJinCang(item.inNo)" shape="circle" type="primary"
2024-09-01 14:56:12 +00:00
custom-style="height: 54rpx;margin-left: 20rpx;">
2024-09-02 15:14:22 +00:00
{{item.confirmStatus==1?'已确认进仓':'进仓确认'}}
2024-09-01 14:56:12 +00:00
</u-button>
2024-09-02 15:14:22 +00:00
2024-09-01 12:18:45 +00:00
</u-row>
</view>
</u-row>
2023-12-17 15:28:03 +00:00
</view>
2024-09-01 12:18:45 +00:00
</template>
<template v-slot:footer>
<view class="blcok-white-noradius">
<u-row justify="space-around">
<u-button @click="handleDownloadPdf()" :plain="true" size="large" shape="circle" custom-style="margin: 0 10rpx;height:80rpx;font-size: 30rpx;"
>下载PDF
</u-button>
2024-09-02 15:14:22 +00:00
<u-button v-if="billInfo.stockInFlag == 1" :disabled="billInfo.confirmStatus==1" @click="confirmJinCang()" type="primary" size="large" shape="circle" custom-style="margin: 0 10rpx;height:80rpx;font-size: 30rpx;"
>{{billInfo.confirmStatus==1?'已确认进仓':'确认可发货'}}
2024-09-01 12:18:45 +00:00
</u-button>
</u-row>
</view>
</template>
</tpx-layout>
<tpx-com-dialog v-model:show="feedModal.show" title="反馈内容" @onSure="handleSubmitFeed">
<template v-slot:body>
<u-input placeholder="请输入" custom-style="height: 56rpx;font-size: 28rpx;"></u-input>
</template>
</tpx-com-dialog>
</tpx-page>
2023-12-17 15:28:03 +00:00
</template>
<script>
2024-09-01 12:18:45 +00:00
import BpeAddressjiamiTmp from "@/components/buns-post-edit-templates/bpe-addressjiami-tmp"
import BpeGoodstaticTmp from "@/components/buns-post-edit-templates/bpe-goodstatic-tmp"
import * as apiService from "@/common/api"
2024-09-02 09:06:25 +00:00
import { saveNetFile } from "@/common/untool"
2024-09-01 12:18:45 +00:00
2023-12-17 15:28:03 +00:00
export default {
2024-09-01 12:18:45 +00:00
components: { BpeAddressjiamiTmp, BpeGoodstaticTmp },
2023-12-17 15:28:03 +00:00
props: {
// hasLeftWin: {
// type: Boolean
// }
},
computed: {
2024-09-01 12:18:45 +00:00
dicData() {
return this.$store.getters.dicData
},
2023-12-17 15:28:03 +00:00
},
data() {
return {
2024-09-01 12:18:45 +00:00
pageLoading: true,
queryOption: {
inNo: '', // 进仓单号
},
billInfo: {},
postInfo: {},
2023-12-17 15:28:03 +00:00
feedModal: {
show: false
}
}
},
onShareAppMessage() {
return {
// title: '',
// path: 'TODO'
}
},
2024-09-01 12:18:45 +00:00
onLoad(option) {
this.queryOption = option
2023-12-17 15:28:03 +00:00
this.initData();
},
onUnload() {
2024-09-01 12:18:45 +00:00
2023-12-17 15:28:03 +00:00
},
methods: {
2024-09-01 12:18:45 +00:00
initData() {
this.inNo = this.queryOption.inNo
this.inNo && (this.queryOrderDetail(this.queryOption))
},
async queryOrderDetail(params) {
let res = await apiService.getWarehouseInInfo({...params, _loading: true})
if(!res.data) {
this.showToast("进仓单号数据不存在")
}
let data = res.data || {}
data?.stockInBatchList?.map?.(t=> {
t.picUrl && (t.picUrl = t.picUrl.split(","))
})
this.billInfo = data
if(data.billCode) {
let ores = await apiService.getOrderDetail({ billCode: data.billCode })
this.postInfo = ores.data
}
this.pageLoading = false
2023-12-17 15:28:03 +00:00
},
2024-09-01 12:18:45 +00:00
handleDialogClick(curModal){
curModal.show = !curModal.show
2023-12-17 15:28:03 +00:00
},
2024-09-01 12:18:45 +00:00
handleCopyWareHouse(){
let { intoWarehouseName, intoWarehouseContact,intoWarehousePhone, intoWarehouseAddress } = this.postInfo
let text = `仓库名称:${intoWarehouseName}\n仓库联系人:${intoWarehouseContact}\n仓库联系人电话:${intoWarehousePhone}\n仓库地址:${intoWarehouseAddress}`
this.setClipboardData(text)
2023-12-17 15:28:03 +00:00
},
2024-09-01 12:18:45 +00:00
handlePreviewImgs(list = [], index) {
2023-12-17 15:28:03 +00:00
uni.previewImage({
2024-09-01 12:18:45 +00:00
current: index,
urls: list
2023-12-17 15:28:03 +00:00
})
},
2024-09-01 12:18:45 +00:00
async handleDownloadPdf(){
let res = await apiService.exportWarehouseInTpl({ orderSn: this.postInfo.orderSn })
2024-09-02 09:06:25 +00:00
let sres = await saveNetFile(res)
2024-09-01 12:18:45 +00:00
},
async confirmJinCang(inNo) {
2024-09-01 15:23:35 +00:00
let confirmStatus = '2' // 部分入仓
2024-09-01 12:18:45 +00:00
if(!inNo) {
2024-09-01 15:23:35 +00:00
confirmStatus = '1' // 全部入仓
2024-09-01 12:18:45 +00:00
inNo = this.billInfo.inNo
}
2024-09-01 14:56:12 +00:00
let res = await apiService.cusConfirmWsIn({ inNo, confirmStatus, _loading: true })
2024-09-01 12:18:45 +00:00
this.initData()
},
2023-12-17 15:28:03 +00:00
}
}
</script>
<style lang="scss">
@import '@/common/uni-nvue.scss';
page {
background-color: #F6F6F6;
height: 100% !important;
}
</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: 600;
}
.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>