This commit is contained in:
aihe 2024-09-01 20:18:45 +08:00
parent ff9b32d490
commit c56226bedc
4 changed files with 265 additions and 283 deletions

View File

@ -101,6 +101,11 @@ export const exportWarehouseInTpl = (data = {})=> {
return coreRequest(url.exportWarehouseInTpl, data, {})
}
// 确认进仓单
export const cusConfirmWsIn = (data = {})=> {
return coreRequest(url.cusConfirmWsIn, data, {})
}
// 进仓单列表
export const getWarehouseInList = (data = {})=> {
return coreRequest(url.getWarehouseInList, data, {}, "GET")

View File

@ -27,9 +27,6 @@ export default {
getCaculteDestSite: `/oms2c/emisDestination/getDestSite`, // 自动计算目的地 -- DONE
getCaculteSendSite: `/oms2c/emisDestination/getSendSite`, // 自动计算寄件网点 -- DONE
getLisWarehouse: `/oms2c/emisWaybill/listWmsWarehouse`, // 仓库列表 -- DONE
exportWarehouseInTpl: `/oms2c/emisWaybill/exportWarehouseInTpl`, // 下载进仓单PDF-- DONE
getWarehouseInList: `/oms2c/emisWarehouseIn/listSimple`, // 进仓单列表-- DONE
getWarehouseInInfo: `/oms2c/emisWarehouseIn/getWarehouseInDetail`, // 获取进仓单详情-- DONE
getListBindSalesmen: `/oms2c/emisWaybill/listBindSalesmen`, // 绑定业务员列表 -- DONE
queryNewSalesmen: `/oms2c/emisWaybill/queryNewSalesmen`, // 查询所有业务员-根据手机号等条件 -- DONE
bindSalesmen: `/oms2c/emisWaybill/bindSalesmen`, // 绑定业务员 -- DONE
@ -60,5 +57,9 @@ export default {
getWxPayQrCode: `/oms2c/emisSettleBill/getWxPayQrCode`, // 获取微信支付二维码 -- DONE
sumbitWxPay: `/oms2c/emisSettleBill/sumbitWxPay`, // 账单-唤起微信立即支付 -- DONE
exportWarehouseInTpl: `/oms2c/emisWarehouseIn/exportWarehouseInTpl`, // 下载进仓单PDF-- DONE
getWarehouseInList: `/oms2c/emisWarehouseIn/listSimple`, // 进仓单列表-- DONE
getWarehouseInInfo: `/oms2c/emisWarehouseIn/getWarehouseInDetail`, // 获取进仓单详情-- DONE
cusConfirmWsIn: `/oms2c/emisWarehouseIn/cusConfirmWsIn`, // 确认进仓单- DONE
}

View File

@ -1,285 +1,227 @@
<template>
<tpx-layout>
<template v-slot:header></template>
<template v-slot:body>
<view class="dt-block">
<view class="dt-tle">
<view class="t1">订单号: Tw891823727001</view>
<view class="t2">
<text class="clr-prm">{{'待遗收'}}</text>
<tpx-page>
<tpx-layout>
<template v-slot:header></template>
<template v-slot:body>
<view class="dt-block">
<view class="dt-tle">
<view class="t1">订单号: {{postInfo.billCode}}</view>
<view class="t2">
<text class="clr-prm"></text>
</view>
</view>
<u-line margin="20rpx 0 20rpx"></u-line>
<view>
<bpe-addressjiami-tmp v-model:value="postInfo"></bpe-addressjiami-tmp>
</view>
</view>
<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>
</view>
<u-line margin="20rpx 0 20rpx"></u-line>
<view>
<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>
</view>
</view>
<u-line margin="20rpx 0 20rpx"></u-line>
<view>
<u-row custom-style="position:relative;" align="top"
justify="between">
<view>
<image style="height: 50rpx;width: 42rpx;" :src="getCdnUrl(`post/ji.png`)"></image>
<view class="dt-block">
<view class="dt-tle">
<view class="t1">进仓货物总览</view>
<view class="t2">
<tetx v-if="billInfo.status == 0">未入仓</tetx>
<tetx v-if="billInfo.status == 1">已入仓</tetx>
<tetx v-if="billInfo.status == 2">部分入仓</tetx>
<tetx v-if="billInfo.status == 3">全部入仓</tetx>
</view>
<view style="flex: 1;padding: 0 30rpx;">
<u-text text="寄件人信息" size="28" :bold="true"></u-text>
<view style="margin: 8rpx 0 0 0;">
<u-text text="请新建您的寄件地址信息" size="26" color="#999"></u-text>
</view>
<u-line margin="20rpx 0 20rpx"></u-line>
<view class="dt-item font-28">
<view>
<text class="pr-20 clr-sub">总重量:</text>
<text class="">{{billInfo. totalWeight }} kg</text>
</view>
<view>
<text class="pr-20 clr-sub">总体积:</text>
<text class="">{{billInfo.totalVolume}}m³</text>
</view>
<view>
<text class="pr-20 clr-sub">总件数:</text>
<text class="">{{billInfo.totalParcelQty}}</text>
</view>
</view>
</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> -->
</view>
</view>
<u-line margin="20rpx 0 20rpx"></u-line>
<view class="dt-item font-28">
<view>
<text class="pr-20 clr-sub">进仓时间:</text>
<text class="font-weight">{{item.entryDate}}</text>
</view>
<view>
<text class="pr-20 clr-sub">操作员:</text>
<text class="font-weight">{{item.createByName}}</text>
</view>
</view>
<view v-for="(clItem) in [{}, {}, {}]" class="yditem">
<view class="ydi-lab">
<text class="font-weight">塑料拉链</text>
<text>破损:1</text>
</view>
<view class="ydi-lab mt-10">
<text class="clr-sub">品牌 规格 原产地</text>
<text class="clr-prm">实入:10</text>
</view>
</view>
<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="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>
</u-row>
<view style="padding-left: 76rpx;">
<u-line margin="20rpx 0"></u-line>
</view>
<u-row custom-style="position:relative;" align="top"
justify="between">
<view style="position: absolute;left: 20rpx;top: -20rpx;bottom: 100%;">
<u-line custom-style="height:100%;" direction="col" dashed="true"></u-line>
</view>
<view>
<image style="height: 50rpx;width: 42rpx;" :src="getCdnUrl(`post/shou.png`)">
</image>
</view>
<view class="pr-30 pl-30" style="flex: 1;">
<u-text text="收件人信息" size="28" :bold="true"></u-text>
<view style="margin: 8rpx 0 0 0;">
<u-text text="请填写收件人国家、姓名,电话" size="26" color="#999"></u-text>
<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="flex-column-center">
<image style="height: 32rpx;width: 28rpx;" :src="getCdnUrl(`post/eye-line.svg`)">
</image>
<view class="dt-item font-28">
<view>
<text class="pr-20 clr-sub">同行快:</text>
<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>
</view>
</view>
<u-row justify="end">
<view style="display: inline-block;white-space: nowrap;" class="mt-10 pb-30">
<u-row>
<u-button @click="handleDialogClick(feedModal)" shape="circle" :plain="true"
custom-style="height: 54rpx;margin-left: 20rpx;">反馈异常</u-button>
<u-button @click="confirmJinCang(item.inNo)" shape="circle" type="primary"
custom-style="height: 54rpx;margin-left: 20rpx;">进仓确认</u-button>
</u-row>
</view>
</u-row>
</view>
</view>
<view class="dt-block">
<view class="dt-tle" @click="setClipboardData('xxxxxxx')">
<view class="t1">柯桥仓库联系信息</view>
<view class="t2">
<u-icon name="file-text" size="38" custom-style=""></u-icon>
</view>
</view>
<u-line margin="20rpx 0 20rpx"></u-line>
<view>
<view>
<text class="font-weight font-28 pr-20">李先生</text>
<text class="clr-sub font-28">18627068352</text>
</view>
<u-text :text="'上海市大世界大世界大世界大世界大世界大世界大世界大世界大世界大世界大世界大世界大世界大世界大世界大世界大世界大世界大世界大世界大世界'"
size="24" margin="20rpx 0 0 0" color="#999"
></u-text>
</view>
</view>
<view class="dt-block">
<view class="dt-tle">
<view class="t1">进仓货物总览</view>
<view class="t2">
<text class="clr-prm">{{'部分入仓'}}</text>
</view>
</view>
<u-line margin="20rpx 0 20rpx"></u-line>
<view class="dt-item font-28">
<view>
<text class="pr-20 clr-sub">总重量:</text>
<text class="">30 kg</text>
</view>
<view>
<text class="pr-20 clr-sub">总体积:</text>
<text class="">30m</text>
</view>
<view>
<text class="pr-20 clr-sub">总件数:</text>
<text class="">10</text>
</view>
</view>
<view v-for="(item) in ydList" class="yditem">
<view class="ydi-lab">
<text class="font-weight">女士针织棉上衣</text>
<text>预报: 300</text>
</view>
<view class="ydi-lab mt-10">
<text class="clr-sub">无 12L 中国内地</text>
<text>实入仓: 0</text>
</view>
<view class="ydi-lab mt-10">
<text class="clr-prm">12 CNY</text>
</view>
</view>
<!-- <u-row justify="end">
<view style="display: inline-block;white-space: nowrap;" class="mt-10">
<u-row>
<u-button 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 v-for="(item) in jcList" class="dt-block" style="padding-bottom: 2rpx;">
<view class="dt-tle">
<view class="t1">进仓单号:TAN-102032138002</view>
<view class="t2">
<!-- <text class="clr-prm">{{'部分入仓'}}</text> -->
</view>
</view>
<u-line margin="20rpx 0 20rpx"></u-line>
<view class="dt-item font-28">
<view>
<text class="pr-20 clr-sub">进仓时间:</text>
<text class="font-weight">2023-77-20 09:25</text>
</view>
<view>
<text class="pr-20 clr-sub">操作员:</text>
<text class="font-weight">王小明</text>
</view>
</view>
<view v-for="(clItem) in [{}, {}, {}]" class="yditem">
<view class="ydi-lab">
<text class="font-weight">塑料拉链</text>
<text>破损:1</text>
</view>
<view class="ydi-lab mt-10">
<text class="clr-sub">品牌 规格 原产地</text>
<text class="clr-prm">实入:10</text>
</view>
</view>
<view class="yditem" style="padding-bottom: 5rpx;">
<view class="dt-item font-28">
<view>
<text class="pr-20 clr-sub">重量:</text>
<text class="">30 kg</text>
</view>
<view>
<text class="pr-20 clr-sub">体积:</text>
<text class="">30m</text>
</view>
<view>
<text class="pr-20 clr-sub">件数:</text>
<text class="">10</text>
</view>
</view>
<view class="dt-item font-28">
<view>
<text class="pr-20 clr-sub">包装类型:</text>
<text class="">纸箱</text>
</view>
<view>
<text class="pr-20 clr-sub">供应商:</text>
<text class="">南京制衣有限公司</text>
</view>
</view>
<view class="dt-item font-28">
<view>
<text class="pr-20 clr-sub">同行快:</text>
<text class="">顺丰</text>
</view>
<view>
<text class="pr-20 clr-sub">快递单号:</text>
<text class="">SF01023293239</text>
</view>
</view>
<view class="dt-item font-28">
<view>
<text class="pr-20 clr-sub">代垫运费:</text>
<text class="font-weight clr-prm">¥30</text>
</view>
</view>
<view class="dt-item font-28">
<view>
<text class="pr-20 clr-sub">发货备注:</text>
<text class=" ">需要检查下产品规格型号是否一致,请拍照</text>
</view>
</view>
<view class="dt-item font-28" style="margin-bottom: 10rpx;">
<view>
<text class="pr-20 clr-sub">仓库收货备注:</text>
<text class=" ">发现有异常,见拍照图片</text>
</view>
</view>
<view class="mb-20">
<u-row>
<u-image @click="handlePreviewDiDan()" :src="getCdnUrl(`mine/kjcha.png`)" width="100" height="50" mode="aspectFill"
custom-style="margin: 20rpx 20rpx 0 0;"
></u-image>
<u-image @click="handlePreviewDiDan()" :src="getCdnUrl(`mine/kjcha.png`)" width="100" height="50" mode="aspectFill"
custom-style="margin: 20rpx 20rpx 0 0;"
></u-image>
</u-row>
</view>
</view>
<u-row justify="end">
<view style="display: inline-block;white-space: nowrap;" class="mt-10 pb-30">
<u-row>
<u-button @click="handleFeedSwitch" shape="circle" :plain="true"
custom-style="height: 54rpx;margin-left: 20rpx;">反馈异常</u-button>
<u-button shape="circle" type="primary"
custom-style="height: 54rpx;margin-left: 20rpx;">进仓确认</u-button>
</u-row>
</view>
</u-row>
</view>
</template>
<template v-slot:footer>
<view class="blcok-white-noradius">
<u-row justify="space-around">
<u-button @click="goto(`warehousing/pdfPreview?id=${112}`)" :plain="true" size="large" shape="circle" custom-style="margin: 0 10rpx;height:80rpx;font-size: 30rpx;"
>下载PDF
</u-button>
<u-button @click="goto(`post/post?id=${222}`)" type="primary" size="large" shape="circle" custom-style="margin: 0 10rpx;height:80rpx;font-size: 30rpx;"
>已确认可发货
</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>
</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>
<u-button @click="confirmJinCang()" type="primary" size="large" shape="circle" custom-style="margin: 0 10rpx;height:80rpx;font-size: 30rpx;"
>已确认可发货
</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>
</template>
<script>
import getCdnUrl from "@/common/getCdnUrl"
import { goto, goBack, setClipboardData, confirmModal, showLoading } from "@/common/untool"
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"
export default {
components: { BpeAddressjiamiTmp, BpeGoodstaticTmp },
props: {
// hasLeftWin: {
// type: Boolean
// }
},
computed: {
dicData() {
return this.$store.getters.dicData
},
},
data() {
return {
ydList: [
{}
],
jcList: [
{},{},{}
],
pageLoading: true,
queryOption: {
inNo: '', // 进仓单号
},
billInfo: {},
postInfo: {},
feedModal: {
show: false
}
@ -291,31 +233,62 @@
// path: 'TODO'
}
},
onLoad(queryOption) {
this.queryOption = queryOption
onLoad(option) {
this.queryOption = option
this.initData();
},
onUnload() {
},
methods: {
setClipboardData,
goto,
getCdnUrl,
initData(){
// showLoading()
initData() {
this.inNo = this.queryOption.inNo
this.inNo && (this.queryOrderDetail(this.queryOption))
},
handleFeedSwitch() {
this.feedModal.show = true
},
handleSubmitFeed() {
this.feedModal.show = false
},
handlePreviewDiDan() {
uni.previewImage({
urls: [
this.getCdnUrl(`mine/kjcha.png`)
]
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
},
handleDialogClick(curModal){
curModal.show = !curModal.show
},
handleCopyWareHouse(){
let { intoWarehouseName, intoWarehouseContact,intoWarehousePhone, intoWarehouseAddress } = this.postInfo
let text = `仓库名称:${intoWarehouseName}\n仓库联系人:${intoWarehouseContact}\n仓库联系人电话:${intoWarehousePhone}\n仓库地址:${intoWarehouseAddress}`
this.setClipboardData(text)
},
handlePreviewImgs(list = [], index) {
uni.previewImage({
current: index,
urls: list
})
},
async handleDownloadPdf(){
let res = await apiService.exportWarehouseInTpl({ orderSn: this.postInfo.orderSn })
debugger
},
async confirmJinCang(inNo) {
// "confirmStatus": "1-确认 2-部分确认"
let confirmStatus = '2'
if(!inNo) {
confirmStatus = '1'
inNo = this.billInfo.inNo
}
let res = await apiService.cusConfirmWsIn({ inNo, _loading: true })
debugger
this.initData()
},
}
}

View File

@ -74,7 +74,7 @@
</u-row>
<u-text margin="5rpx 0" :text="item.waybillDetail.goodsInfo"
size="26" color="#999"></u-text>
<view class="mt-10" @click="handleGoDetail(item)">
<view class="mt-10" @click="handleDealItem(item)">
<u-row justify="between" align="center">
<u-row custom-style="flex:1;" justify="between">
<u-col span="4">
@ -111,9 +111,9 @@
<u-row justify="end" custom-style="margin-top:20rpx;">
<u-row>
<u-button shape="circle" type="primary" :plain="true"
@click="goto(`warehousing/pdfPreview?id=${112}`)"
@click="handleDealItem(item, { type: 2 })"
custom-style="width: 180rpx;box-sizing: content-box;height: 54rpx;margin-left: 12rpx;">下载打印PDF</u-button>
<u-button v-if="item.confirmStatus!=1" shape="circle" type="primary" @click="handleGoDetail(item)"
<u-button v-if="item.confirmStatus!=1" shape="circle" type="primary" @click="handleDealItem(item)"
custom-style="width: 100rpx;box-sizing: content-box;height: 54rpx;margin-left: 12rpx;">去确认</u-button>
</u-row>
</u-row>
@ -197,13 +197,16 @@
initData() {
},
async handleDealItem(item, deal = { type: '1' }){
async handleDealItem(item, deal = { type: 1 }){
// 下载 exportWarehouseInTpl
let itemQuery = `?billCode=${item.billCode || ''}&orderSn=${item.orderSn || ''}`
let itemQuery = `?inNo=${item.inNo}`
switch (deal.type) {
case 1: // 运单详情
this.goto(`post/detail${itemQuery}`)
case 1: // 进仓单详情
this.goto(`warehousing/detail${itemQuery}`)
break;
case 2: // 下载PDF
// this.goto(`post/detail${itemQuery}`)
break;
default:
break;
}