You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
cy_pda/pages/checkAccept/checkHomeworks.vue

447 lines
10 KiB

<template>
<view>
<view v-if="result.businInReceivingDForPdaVo" class="receiveBody">
<view class="titleValue1">
<span class="title">商品编号:</span>
<span class="value"
v-if="result.businInReceivingDForPdaVo">{{result.businInReceivingDForPdaVo.bgGoodNo}}</span>
</view>
<view class="titleValue1">
<span class="title">商品名称:</span>
<span class="value"
v-if="result.businInReceivingDForPdaVo">{{result.businInReceivingDForPdaVo.bgGoodName}}</span>
</view>
<view class="titleValue1">
<span class="title">规 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;格:</span>
<span class="value"
v-if="result.businInReceivingDForPdaVo">{{result.businInReceivingDForPdaVo.bgSpecifications}}</span>
</view>
<view class="titleValue1">
<span class="title">库 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;别:</span>
<u-input v-model="kubevalue" type="select" placeholder="请选择库别" class="u-input"
placeholder-style="color:#000000" @click="kube = true" />
<u-select v-model="kube" :list="storageList" @confirm="confirmKube"></u-select>
</view>
<view class="titleValue1">
<span class="title">容 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;器:</span>
<u-input v-model="dataForm.containerCode" border placeholder="请输入或扫描容器条码"></u-input>
</view>
<!-- <view class="titleValue">
<span class="title">件装量:</span>
<span v-if="result.businInReceivingDForPdaVo"> {{result.businInReceivingDForPdaVo.bpPackageQty}}</span>
</view> -->
<view class='recommend'>
<text class='recommend-title'>验货数量确认</text>
</view>
<view class="orderList" v-for="item in orderNoList">
<view class="titleValue">
<span class="title">单据编号:</span>
<span class="value">{{item.orderNo|| '-'}}</span>
</view>
<view class="titleValue">
<span class="title">验收数量:</span>
<view style="width: 80px;">
<u-input v-model="item.actualQty" border placeholder="请输入件装量" width="110">
</u-input>
</view>
<span class="title" style="margin-left: 15px;">可验收数量:</span>
<span class="title" style="margin-left: 10px;text-align: center;">{{item.ableQty}}</span>
</view>
<view class="titleValue">
<span class="title">是否缠膜:</span>
<view style="width: 80px;">
<span class="title" style="margin-left: 10px;text-align: center;">{{item.isWrap == '1'?'是':'否'}}</span>
</view>
<span class="title" style="margin-left: 15px;">是否验重:</span>
<span class="title" style="margin-left: 10px;text-align: center;">{{item.isVerWeight == '1'?'是':'否'}}</span>
</view>
<!-- <view class="titleValue">
<span class="title">件 数:</span>
<u-input v-model="dataForm.actualCaseQty" border placeholder="请输入件数" @input="changeCase"></u-input>
</view> -->
</view>
<!-- <view class="footer">
<u-button type="primary" @click='confirmFinish()'>确认验货</u-button>
</view> -->
<view class="enter-button">
<button class="smell-button" @click="confirmFinish">确认验收</button>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
barCode: '',
result: {},
dataForm: {
billingStatus: '',
checkCaseQty: 0,
checkPieceQty: 0,
result: '',
actualQty: '',
// 件数
actualCaseQty: 0,
// 零散数
actualPieceQty: 0,
batchNo: '',
productionDate: '',
expiredDate: '',
storageId: '',
billingStatus: '',
reason: '',
containerCode: ''
},
resust: false,
billingStatusValue: '',
resustValue: '',
kubevalue: '',
receonclusion: false,
kube: false,
starttime: false,
endtime: false,
storageList: [],
recelist: [],
resustlist: [],
sid: '',
detailId: '',
detailIds: [],
recet: '',
bos: []
};
},
onLoad: function(options) {
this.did = options.did
this.sid = options.sid
// this.detailIds = JSON.parse(options.detailIds)
this.orderNoList = JSON.parse(options?.orderNoList)
// this.allableQty = JSON.parseoptions.allableQty
this.loadStorageList()
this.getList({
did: this.did,
sid: this.sid,
})
},
methods: {
// 件数更改
changeCase(e) {
this.dataForm.actualQty = e
},
loadStorageList() {
this.storageList = [];
this.$u.api.storageList().then(res => {
let dataArry = res.data;
for (var i = 0; i < dataArry.length; i++) {
var obj = {
value: dataArry[i].id,
label: dataArry[i].storageName,
};
this.storageList.push(obj);
}
});
},
getList(params) {
this.$u.api.acceptance.getReceiving(params).then(res => {
if (res.code === 200) {
this.result = res.data
if (!this.result.businInReceivingDForPdaVo) {
this.$u.toast('当前商品待验收信息')
}
//库别
this.dataForm.storageId = res.data.businInReceivingDForPdaVo.storageId
this.dataForm.containerCode = res.data.businInReceivingDForPdaVo.containerCode
this.dataForm.batchNo = res.data.businInReceivingDForPdaVo.batchNo
const storageInfo = this.storageList.find((item) => Number(item.value) === Number(res.data
.businInReceivingDForPdaVo.storageId))
if (storageInfo) {
this.kubevalue = storageInfo.label
}
}
});
},
// 提报异常
confirmError() {
this.$u.api.acceptance.confirmError({
id: this.sid
}).then((res) => {
if (res.code === 200) {
this.$u.toast('提报异常成功');
this.dataForm = {
billingStatus: '',
checkCaseQty: '',
checkPieceQty: '',
result: '',
actualQty: '',
actualCaseQty: '',
actualPieceQty: '',
batchNo: '',
productionDate: '',
expiredDate: '',
storageId: '',
billingStatus: '',
reason: '',
containerCode: '',
checkCaseQty: ''
}
} else {
this.$u.toast(res.msg)
}
})
},
// 验收:
confirmFinish() {
if (!this.dataForm.containerCode) {
this.$u.toast('请扫码或输入容器号');
return
}
if (!this.result.businInReceivingDForPdaVo) {
this.$u.toast('请输入或扫描要验收的商品');
return
}
for (var i = 0; i < this.orderNoList.length; i++) {
if (this.orderNoList[i].actualQty === null ||
this.orderNoList[i].actualQty === '' ||
this.orderNoList[i].actualQty === 0 ||
this.orderNoList[i].actualQty === undefined ||
this.orderNoList[i].actualQty === 'undefined') {
this.$u.toast('输入数量不能为0/空');
return;
}
}
for (var i = 0; i < this.orderNoList.length; i++) {
if (this.orderNoList[i].actualQty > this.orderNoList[i].ableQty) {
this.$u.toast('验收数量大于未收数量');
return;
}
}
this.bos = []
this.orderNoList.forEach((item, index) => {
item.containerCode = this.dataForm.containerCode
item.storageId = this.dataForm.storageId
item.actualQty = Number(item.actualQty)
})
this.$u.api.acceptance.multipleConfirmBillingList({
containerCode: this.dataForm.containerCode,
storageId: this.dataForm.storageId,
bos: this.orderNoList,
}).then(res => {
if (res.code === 200) {
this.$u.toast('验收成功');
this.result = {}
this.orderNoList = []
setTimeout(() => {
this.$u.route({
url: 'pages/checkAccept/index',
type: 'navigateBack'
})
}, 500)
} else {
this.$u.toast(res.msg);
}
});
},
queryFun() {
},
change(e) {
this.endTimeValue = e.result
this.endtime = false
this.dataForm.expiredDate = e.result
},
// 确定库别
confirmKube(e) {
this.kube = false
this.kubevalue = e[0].label
this.dataForm.storageId = e[0].value
},
},
onUnload() {
var pages = getCurrentPages(); //当前页面栈
if (pages.length > 1) {
var beforePage = pages[pages.length - 1]; //获取上一个页面实例对象
beforePage._data.refreshIfNeeded = true;
}
}
}
</script>
<style lang="scss">
.goodsNumber {
padding: 20rpx 50rpx;
display: flex;
align-items: center;
.goodsNumberCode {
color: #333333;
font-size: 36rpx;
margin-right: 20rpx;
}
}
.orderList {
margin: 22px 5px;
.titleValue {
.value {
font-weight: 600;
}
}
}
.receiveBody {
height: 550px;
.titleValue1 {
display: flex;
align-items: center;
font-size: 28rpx;
padding: 5px 50rpx;
// margin: 15px 10px 15px 5px;
.title {
// color: red;
width: 180rpx;
text-align: left;
}
.value {
color: #666666;
}
}
.recommend {
text-align: center;
height: 50rpx;
margin-top: 40rpx;
margin-bottom: 25px;
}
.recommend-title {
display: table;
width: 100%;
line-height: 50rpx;
white-space: nowrap;
border-spacing: 2rem 0;
font-size: 32rpx;
color: gray
}
.recommend-title::before,
.recommend-title::after {
display: table-cell;
content: "";
width: 50%;
background: linear-gradient(#eee, #eee) repeat-x center;
background-size: 0.1rem 0.1rem;
}
}
.goodsInfo {
width: 95%;
margin: 0 auto;
background-color: #f2f2f2;
padding: 20rpx 30rpx;
line-height: 40rpx;
margin-bottom: 20rpx;
.goodsInfoItem {
display: flex;
align-items: center;
color: #333333;
.goodsItemLabel {
width: 120rpx;
font-size: 24rpx;
}
.goodsItemValue {
font-size: 28rpx;
font-weight: 600;
}
}
.itemsContend {
display: flex;
justify-content: space-between;
.items {
width: 50%;
display: flex;
font-size: 24rpx;
color: #555555;
.itemsLabel {
width: 120rpx;
}
.itemsValue {}
}
}
}
.titleValue {
display: flex;
align-items: center;
font-size: 28rpx;
padding: 0 50rpx;
margin-bottom: 20rpx;
.title {
color: #555555;
width: 170rpx;
text-align: left;
}
.value {
color: #666666;
}
}
.enter-button {
display: flex;
flex: 2;
height: 70px;
width: 100%;
z-index: 100px;
background-color: #fff;
position: fixed;
bottom: 0px;
.smell-button {
display: block;
color: #fff;
margin: 19px auto;
height: 35px;
line-height: 35px;
width: 45%;
background-color: #1296DB;
}
}
.footer {
padding: 20rpx 40rpx;
display: flex;
justify-content: space-between;
}
</style>