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.
178 lines
4.2 KiB
178 lines
4.2 KiB
<template>
|
|
<div>
|
|
<u-input class="input" v-model="containerCode" border type="text" placeholder="请扫描周转箱条码" placeholder-style="color:#666666" />
|
|
|
|
<u-table border class="table">
|
|
<u-tr>
|
|
<u-th width="10%">序号</u-th>
|
|
<u-th width="50%">任务号</u-th>
|
|
<u-th width="10%">品规数</u-th>
|
|
<u-th width="30%">周转箱条码</u-th>
|
|
</u-tr>
|
|
<!-- style="background-color: #3eaf7c;" -->
|
|
<u-tr v-for="(item, index) in resultList" :key="item.pickOrderId" style="height: 80rpx">
|
|
<u-td width="10%">{{ index +1 }}</u-td>
|
|
<u-td width="50%">{{ item.pickOrderId }}</u-td>
|
|
<u-td width="10%">{{item.specificationsQty}}</u-td>
|
|
<u-td width="30%">
|
|
<u-input type="text" v-model="item.containerCode" @input="bindTask(item)"/>
|
|
</u-td>
|
|
</u-tr>
|
|
</u-table>
|
|
<div class="order">
|
|
<span class="orderText">挑货顺序</span>
|
|
<div>
|
|
<div class="orderInput">
|
|
<u-input v-model="wareHouse" border type="select" placeholder="请选择顺序" prop="wareHouse" @click="show = true" />
|
|
<u-select v-model="show" :list="list" @confirm="confirm"></u-select>
|
|
</div>
|
|
<div class="orderTip">正序:从区域内最小货位开始拣货</div>
|
|
<div class="orderTip">倒序:从区域内最大货位开始拣货</div>
|
|
</div>
|
|
</div>
|
|
<view class="footer">
|
|
<u-button type="success" @click="checkOutPick()">刷新</u-button>
|
|
<u-button type="primary" @click="bindTask()">开始拣选</u-button>
|
|
</view>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
show: false,
|
|
wareHouse: '',
|
|
list: [
|
|
{
|
|
label: '正序',
|
|
value: 0
|
|
},
|
|
{
|
|
label: '倒序',
|
|
value: 1
|
|
}
|
|
],
|
|
containerCode: ''
|
|
}
|
|
},
|
|
onLoad(options) {
|
|
this.resultList = JSON.parse(options.list).map((item)=>({...item,containerCode: null }))
|
|
},
|
|
methods: {
|
|
checkOutPick() {
|
|
this.$u.api.pickingManage.checkOutPick({
|
|
taskType: 2
|
|
}).then(res => {
|
|
console.log(res)
|
|
if (res.code === 200) {
|
|
// 进入索取页面
|
|
if (res.data.pickType === 200) {
|
|
|
|
// 整散合一
|
|
this.$u.route({
|
|
url: 'pages/dispersion/index',
|
|
type: 'navigateTo',
|
|
params: {
|
|
list: JSON.stringify(res.data.taskStaticList)
|
|
}
|
|
})
|
|
}
|
|
//进入拣货页面
|
|
if (res.data.pickType === 800) {
|
|
// 整散合一
|
|
this.$u.route({
|
|
url: 'pages/dispersion/picking',
|
|
type: 'navigateTo',
|
|
params: {
|
|
list: JSON.stringify(res.data.businOutPickDTaskVo),
|
|
container: JSON.stringify(res.data.containrList)
|
|
}
|
|
})
|
|
|
|
}
|
|
// 进入绑定周转箱页面
|
|
if (res.data.pickType === 801) {
|
|
// 整件
|
|
// if(params.taskType===1) {
|
|
// this.$u.route({
|
|
// url: 'pages/allPiece/bind',
|
|
// type: 'navigateTo',
|
|
// params: {
|
|
// list: res.data.taskAndContainerList
|
|
// }
|
|
// })
|
|
// }
|
|
// 整散合一
|
|
this.$u.route({
|
|
url: 'pages/dispersion/bind',
|
|
type: 'navigateTo',
|
|
params: {
|
|
list: JSON.stringify(res.data.taskAndContainerList)
|
|
}
|
|
})
|
|
}
|
|
} else {
|
|
this.$u.toast(res.msg);
|
|
}
|
|
|
|
});
|
|
},
|
|
confirm(e) {
|
|
this.wareHouse = e[0].label
|
|
this.wareHouseValue = e[0].value
|
|
},
|
|
// 任务和周转箱进行绑定
|
|
bindTask() {
|
|
const list = this.resultList.map((item)=>({
|
|
...item,
|
|
pickSortType: this.wareHouseValue
|
|
}))
|
|
this.$u.api.pickingManage.relatePickTaskAndContainer(list).then(res => {
|
|
console.log(res)
|
|
if (res.code === 200) {
|
|
this.$u.toast("绑定成功!");
|
|
this.checkOutPick()
|
|
} else {
|
|
this.$u.toast(res.msg);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
.input {
|
|
width: 90%;
|
|
margin: 20rpx auto;
|
|
}
|
|
.table {
|
|
width: 90%;
|
|
margin: 40rpx auto;
|
|
}
|
|
.order {
|
|
display: flex;
|
|
width: 90%;
|
|
margin: 20rpx auto;
|
|
}
|
|
.orderText {
|
|
margin-top: 10rpx;
|
|
margin-right: 40rpx;
|
|
}
|
|
.orderInput {
|
|
display: flex;
|
|
}
|
|
.orderTip {
|
|
font-size: 28rpx;
|
|
color: #333333;
|
|
margin-top: 20rpx;
|
|
}
|
|
.footer {
|
|
position: fixed;
|
|
width: 100%;
|
|
bottom: 20rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
</style> |