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/checkHomework.vue

508 lines
13 KiB

<template>
<view>
<!-- <view class="goodsNumber">
<span class="goodsNumberCode">商品条码</span>
<u-input v-model="barCode" border placeholder="请输入或扫描商品条码" @input="queryFun"></u-input>
</view> -->
<view v-if="result.businInReceivingDForPdaVo">
<view class="goodsInfo">
<view class="goodsInfoItem">
<span class="goodsItemLabel">收货单号</span>
<span class="goodsItemValue">{{ result.orderNo}}</span>
</view>
</view>
<view class="titleValue global-font">
<span class="title">商品编号:</span>
<span class="value"
v-if="result.businInReceivingDForPdaVo">{{result.businInReceivingDForPdaVo.bgGoodNo}}</span>
</view>
<view class="titleValue global-font">
<span class="title">商品名称:</span>
<span class="value"
v-if="result.businInReceivingDForPdaVo">{{result.businInReceivingDForPdaVo.bgGoodName}}</span>
</view>
<view class="titleValue global-font">
<span class="title">规 格:</span>
<span class="value"
v-if="result.businInReceivingDForPdaVo">{{result.businInReceivingDForPdaVo.bgSpecifications}}</span>
</view>
<view class="titleValue global-font">
<span class="title">件装量:</span>
<span v-if="result.businInReceivingDForPdaVo"> {{result.businInReceivingDForPdaVo.bpPackageQty}}</span>
</view>
<!--
<view class="titleValue global-font">
<span class="title">单 位:</span>
<span class="value"
v-if="result.businInReceivingDForPdaVo">{{result.businInReceivingDForPdaVo.unitName}}</span>
</view> -->
<view class="titleValue global-font">
<span class="title">未验数量:</span>
<span class="value"
v-if="result.businInReceivingDForPdaVo">{{result.businInReceivingDForPdaVo.ableQty}}</span>
</view>
<view class="titleValue global-font">
<span class="title">验收数量:</span>
<span class="value" v-if="result.businInReceivingDForPdaVo">{{dataForm.actualQty}}</span>
</view>
<view class="titleValue global-font">
<span class="title">是否缠膜:</span>
<span class="value" >{{dataForm.isWrap == '1'?'是':'否'}}</span>
</view>
<view class="titleValue global-font">
<span class="title">是否验重:</span>
<span class="value">{{dataForm.isVerWeight == '1'?'是':'否'}}</span>
</view>
<view class="titleValue global-font">
<span class="title">件 数:</span>
<u-input v-model="dataForm.actualQty" border placeholder="请输入件数" @input="changeCase"></u-input>
</view>
<view class="titleValue global-font">
<span class="title">库 别:</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="titleValue global-font">
<span class="title">容 器:</span>
<u-input v-model="dataForm.containerCode" border placeholder="请输入或扫描容器条码"></u-input>
</view>
<!-- <view class="titleValue global-font">
<span class="title">抽检件数:</span>
<u-input v-model="dataForm.checkCaseQty" :disabled="true" border placeholder="请输入数量"></u-input>
</view>
<view class="titleValue global-font">
<span class="title">抽检零散数:</span>
<u-input v-model="dataForm.checkPieceQty" :disabled="true" border placeholder="请输入数量"></u-input>
</view> -->
</view>
<view class="enter-button">
<button class="smell-button" @click="confirmFinish">确认验收</button>
</view>
</view>
</template>
<script>
export default {
data() {
return {
barCode: '',
result: {},
dataForm: {
billingStatus: '',
checkCaseQty: 0,
checkPieceQty: 0,
result: '',
extend3:'',
extend4:'',
isWrap:'',
isVerWeight:'',
actualQty: '',
// 件数
actualCaseQty: 0,
// 零散数
actualPieceQty: 0,
batchNo: '',
productionDate: '',
expiredDate: '',
storageId: '',
billingStatus: '',
reason: '',
containerCode: ''
},
resust: false,
billingStatusValue: '',
resustValue: '',
kubevalue: '',
receonclusion: false,
kube: false,
startTimeValue: '请选择日期',
starttime: false,
endtime: false,
endTimeValue: '请选择日期',
storageList: [],
recelist: [],
resustlist: [],
sid: '',
detailId: '',
recet: '',
queryFlag: '',
};
},
onLoad: function(options) {
this.sid = options.sid
this.detailId = options.did
options.isWrap ?this.dataForm.isWrap = options.isWrap :''
options.isVerWeight ?this.dataForm.isVerWeight = options.isVerWeight:''
options.ableQty?this.dataForm.actualQty = options.ableQty:''
this.getList(options)
// 收货结论
this.getByDicReceivingStatus()
// 处理原因
this.getByDicAcceptanceReason()
// 库别列表
this.loadStorageList()
//获取比例
this.getCaseCheckRatio()
},
methods: {
// 件数更改
changeCase(e) {
this.dataForm.checkCaseQty = Math.ceil(e * this.recet)
this.dataForm.actualQty = e * this.result.businInReceivingDForPdaVo.bpPackageQty + this.dataForm
.actualPieceQty
},
// 零散数的更改
changePiece(e) {
this.dataForm.checkPieceQty = e
this.dataForm.actualQty = this.result.businInReceivingDForPdaVo.bpPackageQty * this.dataForm
.actualCaseQty +
Number(this.dataForm.actualPieceQty)
},
//获取比例
getCaseCheckRatio() {
this.$u.api.getCaseCheckRatio().then(res => {
if (res.code === 200) {
this.recet = res.msg
} else {
this.$u.toast(res.msg);
}
});
},
//收货结论
getByDicReceivingStatus() {
this.$u.api.getAcceptanceConclusion().then(res => {
if (res.code === 200) {
this.recelist = res.data.map((item) => ({
label: item.dictLabel,
value: item.dictValue
}))
} else {
this.$u.toast(res.msg);
}
});
},
//处理原因
getByDicAcceptanceReason() {
this.$u.api.getByDicAcceptanceReason().then(res => {
if (res.code === 200) {
this.resustlist = res.data.map((item) => ({
label: item.dictLabel,
value: item.dictValue
}))
} else {
this.$u.toast(res.msg);
}
});
},
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);
}
});
},
// 提报异常
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.result.businInReceivingDForPdaVo) {
this.$u.toast('请输入或扫描要验收的商品');
return
}
// // 0整散分开 1整散合一
// if (this.result.businInReceivingDForPdaVo.bgStorageClassify === 0 && this.dataForm.actualPieceQty && this
// .dataForm.actualCaseQty) {
// this.$u.toast('整件和零散数不能同时录入');
// return
// }
// if (this.result.businInReceivingDForPdaVo.bgStorageClassify === 1 && this.dataForm.actualPieceQty === 0 && this
// .dataForm.actualCaseQty === 0) {
// this.$u.toast('整件或零散数不能同时为0');
// return
// }
// // 如果为不合格要填写处理原因
// if (this.billingStatusValue === '不合格' && !this.dataForm.reason) {
// this.$u.toast('请选择处理原因');
// return
// }
// if (!this.dataForm.billingStatus) {
// this.$u.toast('请选择收货结论');
// return
// }
// if(this.billingStatusValue==='合格'&&this.dataForm.reason) {
// this.$u.toast('收货结论为');
// return
// }
// 批号 有效期 生产日期 容器编号 抽检数量信息
if (!this.dataForm.containerCode) {
this.$u.toast('请扫码或输入容器号');
return
}
// if (!this.dataForm.batchNo) {
// this.$u.toast('请输入批号');
// return
// }
// if (!this.dataForm.productionDate) {
// this.$u.toast('请选择生产日期');
// return
// }
// if (!this.dataForm.expiredDate) {
// this.$u.toast('请选择有效期至');
// return
// }
this.$u.api.acceptance.confirmBilling({
id: this.sid,
businInReceivingDetailTransBo: {
...this.dataForm,
id: this.detailId
}
}).then(res => {
if (res.code === 200) {
this.$u.toast('验收成功');
this.result = {}
this.dataForm={}
setTimeout(() => {
this.$u.route({
url: 'pages/checkAccept/index',
type: 'navigateBack'
})
}, 500)
} else {
this.$u.toast(res.msg);
}
});
},
queryFun() {
if (this.queryFlag !== '') {
clearTimeout(this.queryFlag);
}
if (this.barCode == '' || this.barCode == null || this.barCode ==
undefined) {
return
}
this.queryFlag = setTimeout(() => {
this.getList({
barCode: this.barCode,
// did: this.detailId,
sid: this.sid
})
}, 500)
},
getList(params) {
this.$u.api.acceptance.getReceiving(params).then(res => {
if (res.code === 200) {
// res.data.actualQty = res.data.ableQty
this.result = res.data
// this.dataForm.actualQty = this.result.ableQty
if (!this.result.businInReceivingDForPdaVo) {
this.$u.toast('当前商品待验收信息')
}
//生产日期
this.startTimeValue = res.data.businInReceivingDForPdaVo.productionDate
this.dataForm.productionDate = res.data.businInReceivingDForPdaVo.productionDate
// 有限期至
this.endTimeValue = res.data.businInReceivingDForPdaVo.expiredDate
this.dataForm.expiredDate = res.data.businInReceivingDForPdaVo.expiredDate
//库别
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
}
}
});
},
choosedStartDate() {
this.starttime = true
},
changedate(e) {
this.startTimeValue = e.result
this.dataForm.productionDate = e.result
this.starttime = false
},
choosedDate(e) {
this.endtime = true
},
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
},
// 验收结果
confirmClusion(e) {
this.receonclusion = false
this.billingStatusValue = e[0].label
this.dataForm.billingStatus = e[0].value
},
// 处理原因
confirmResult(e) {
this.resust = false
this.resustValue = e[0].label
this.dataForm.reason = 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;
}
}
.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: 32rpx;
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>