<template>
|
<view>
|
<uni-segmented-control :current="current" :values="items" @clickItem="onClickItem">
|
</uni-segmented-control>
|
<view class="content">
|
<view v-if="current === 0" class="headerstyle">
|
<view class="itemstyle">
|
<uni-forms label-width="120">
|
<uni-forms-item label="托盘条码">
|
<uni-easyinput type="text" :focus="!istrue" v-model="barcode" placeholder="请扫描托盘条码"
|
ref='midInput' @input="inputChangebarcode()" />
|
</uni-forms-item>
|
<uni-forms-item>
|
<button @click="picking" type="primary" style="margin-left: 0px;">拣选完成</button>
|
</uni-forms-item>
|
</uni-forms>
|
<uni-list>
|
<uni-list-item direction="column" v-for="item in matInfos" :key="item.palletCode">
|
<template v-slot:body>
|
<!-- <uni-icons type="trash" size="22" style="position: absolute;right: 5%;"
|
@click="deleteList(item.sn)">
|
</uni-icons> -->
|
<view class="uni-content">
|
<view>单据编号:{{item.orderNo}}</view>
|
<view>托盘编号:{{item.palletCode}}</view>
|
<view>物料批次:{{item.batchNo}}</view>
|
<view>物料编码:{{item.materielCode}}</view>
|
<view>物料名称:{{item.materielName}}</view>
|
<view>单据数量:{{item.orderQuantity}}</view>
|
<view>原始库存:{{item.originalQuantity}}</view>
|
<view>分配库存:{{item.assignQuantity}}</view>
|
<view>剩余库存:{{item.originalQuantity-item.assignQuantity}}</view>
|
</view>
|
</template>
|
</uni-list-item>
|
</uni-list>
|
</view>
|
</view>
|
<view v-if="current === 2" class="headerstyle">
|
<view class="itemstyle">
|
<uni-forms label-width="120">
|
<uni-forms-item label="托盘条码">
|
<uni-easyinput type="text" :focus="!istrue2" v-model="barcode2" placeholder="请扫描托盘条码"
|
ref='midInput' @input="inputChangebarcode2()" />
|
</uni-forms-item>
|
<uni-forms-item label="内箱标签">
|
<uni-easyinput type="text" @input="inputChange2()" v-model="innerboxcode"
|
placeholder="请扫描内箱标签" ref='midInput' :focus="istrue2" />
|
</uni-forms-item>
|
<uni-forms-item>
|
<button @click="submit" type="primary" size="default" style="margin-top: 2%;">组盘</button>
|
</uni-forms-item>
|
</uni-forms>
|
</view>
|
</view>
|
<view v-if="current === 1" class="headerstyle">
|
<view class="itemstyle">
|
<uni-forms label-width="120">
|
<uni-forms-item label="托盘条码">
|
<uni-easyinput type="text" :focus="!addressFocus" v-model="inboundBarcode"
|
placeholder="请扫描托盘条码" ref='midInput' @input="inputChangebarcode3" />
|
</uni-forms-item>
|
<uni-forms-item label="地址条码">
|
<uni-easyinput type="text" v-model="address" :disabled = "addressdisabled" placeholder="请扫描地址条码" ref='midInput'
|
:focus="addressFocus" />
|
</uni-forms-item>
|
<uni-forms-item>
|
<button @click="inbound" type="primary" size="default" style="margin-top: 2%;">入库确认</button>
|
</uni-forms-item>
|
</uni-forms>
|
</view>
|
<view>
|
<uni-list>
|
<uni-list-item direction="column" v-if="inboundBarcode">
|
<template v-slot:body>
|
<view class="uni-list-box">
|
<view class="uni-content">
|
<view class="uni-title-sub uni-ellipsis-2">总数量:{{Summmary}}</view>
|
</view>
|
</view>
|
</template>
|
</uni-list-item>
|
<uni-list-item direction="column" v-for="(item,index) in stockInfoDetail" :key="index">
|
<template v-slot:body>
|
<view class="uni-list-box">
|
<view class="uni-content">
|
<view class="uni-title-sub uni-ellipsis-2">物料编号:{{item.materielCode}}</view>
|
<view class="uni-note">物料名称:{{item.materielName}}</view>
|
<view class="uni-note">物料批次:{{item.batchNo}}</view>
|
<view class="uni-note">库存数量:{{item.stockQuantity}}</view>
|
<view class="uni-note">出库数量:{{item.outboundQuantity}}</view>
|
<view class="uni-note">生产日期:{{item.productionDate}}</view>
|
<view class="uni-note">有 效 期:{{item.effectiveDate}}</view>
|
</view>
|
</view>
|
</template>
|
</uni-list-item>
|
</uni-list>
|
</view>
|
</view>
|
</view>
|
<u-toast ref="uToast" />
|
</view>
|
</template>
|
|
<script>
|
// const SixUniTts = uni.requireNativePlugin("SmallSix-SixUniTts")
|
export default {
|
data() {
|
return {
|
items: ['拣选', '入库'], //'拣选组盘',
|
current: 0,
|
isPicking: false,
|
istrue: false,
|
matInfos: [],
|
barcode: '',
|
materialsns: "",
|
boxBarcodes: [],
|
sns: [],
|
barcodefocus: true,
|
totalNum: 0,
|
pickNum: 0,
|
num: 0,
|
orderTotalNum: 0,
|
orderPickNum: 0,
|
orderNo: "",
|
matTotal: [],
|
istrue2: false,
|
barcode2: '',
|
innerboxcode: "",
|
sns2: [],
|
barcodefocus: true,
|
addressFocus: false,
|
inboundBarcode: "",
|
address: "",
|
warehouseId: 0,
|
Summmary: 0,
|
stockInfoDetail: [],
|
addressdisabled: false
|
}
|
},
|
onLoad(res) {
|
this.barcodefocus = false;
|
this.warehouseId = res.warehouseId;
|
if (this.warehouseId == 5) {
|
this.address = "8005"
|
}else if (this.warehouseId == 3) {
|
this.address = "1011";
|
this.addressdisabled = true;
|
}
|
this.istrue = false;
|
this.addressFocus = false;
|
},
|
methods: {
|
onClickItem(e) {
|
this.barcodeFo = true;
|
this.focus = false;
|
this.addressFocus = false;
|
if (this.current !== e.currentIndex) {
|
this.current = e.currentIndex;
|
}
|
},
|
inbound() {
|
if (this.inboundBarcode == "") {
|
this.$refs.uToast.show({
|
title: "请扫描托盘条码",
|
type: "error"
|
})
|
return;
|
}
|
if (this.address == "") {
|
this.$refs.uToast.show({
|
title: "请扫描地址条码",
|
type: "error"
|
})
|
return;
|
}
|
var postData = {
|
MainData: {
|
"barcode": this.inboundBarcode,
|
"startPoint": this.address,
|
"warehouseId": this.warehouseId
|
}
|
}
|
this.$u.post('/api/Task/RequestInboundTask', postData).then(res => {
|
if (res.status) {
|
uni.$showMsg(res.message);
|
this.inboundBarcode = "";
|
setTimeout(() => {
|
this.addressFocus = false;
|
}, 200);
|
} else {
|
this.$refs.uToast.show({
|
title: res.message,
|
type: "error"
|
})
|
}
|
}).catch(err => {
|
this.$refs.uToast.show({
|
title: err.message,
|
type: "error"
|
})
|
})
|
},
|
inputChangebarcode3() {
|
this.addressFocus = false;
|
this.$nextTick(function(x) {
|
if (this.inboundBarcode != '') {
|
this.addressFocus = true;
|
}
|
})
|
this.$nextTick(function(x) {
|
if (this.inboundBarcode != '') {
|
var postData = {
|
MainData: {
|
"barcode": this.inboundBarcode,
|
"warehouseId": this.warehouseId,
|
}
|
};
|
this.$u.post('/api/StockInfo/StockQueryData', postData).then(res => {
|
// this.stockInfo = [];
|
this.stockInfoDetail = [];
|
if (res.status) {
|
// this.stockInfo = res.data,
|
this.stockInfoDetail = res.data.details
|
//获取总数量
|
this.stockInfoDetail.forEach(item => {
|
this.Summmary+= item.stockQuantity;
|
});
|
} else {
|
this.$refs.uToast.show({
|
// title: "未找到托盘信息",
|
title: res.message,
|
type: "error"
|
})
|
}
|
})
|
}
|
})
|
},
|
picking() {
|
if (this.barcode == "") {
|
this.$refs.uToast.show({
|
title: "请扫描托盘条码",
|
type: "error"
|
})
|
return;
|
}
|
this.$u.post('/api/OutStockLockInfo/MaterialPick?palletCode=' + this.barcode, {}).then(res => {
|
if (res.status) {
|
// if(this.warehouseId==5){
|
// this.Finish("8005");
|
// }
|
|
uni.$showMsg('拣选成功!')
|
this.barcode = "";
|
this.matInfos = [];
|
} else {
|
this.$refs.uToast.show({
|
title: res.message,
|
type: "error"
|
})
|
}
|
})
|
},
|
Finish(code) {
|
this.$u.post('http://127.0.0.1:9291/api/CTU_AGV/PutFinish?&code=' + code).then(
|
res => {
|
if (res.status) {
|
// this.$refs.uToast.show({
|
// title: "完成成功",
|
// type: "success"
|
// })
|
// this.barcode = "";
|
} else {
|
// this.$refs.uToast.show({
|
// title: res.message,
|
// type: "error"
|
// })
|
}
|
})
|
},
|
inputChange(e) {
|
this.$nextTick(() => {
|
this.istrue = false;
|
var matInfo = this.materialsns.split('|');
|
if (matInfo.length == 7) {
|
var matObj = {
|
matCode: matInfo[1],
|
matProductionDate: matInfo[3],
|
matQty: matInfo[5],
|
orderNo: matInfo[6],
|
sn: this.materialsns,
|
isPicking: this.isPicking
|
}
|
var temp = this.boxBarcodes.find(x => x.orderNo == matObj.orderNo);
|
if (!temp) {
|
var tmp = this.matTotal.find(x => x.matCode == matObj.matCode);
|
if (!tmp) {
|
this.matTotal.push({
|
matCode: matObj.matCode,
|
matQuantity: parseInt(matObj.matQty)
|
})
|
} else {
|
tmp.matQuantity += parseInt(matObj.matQty);
|
}
|
this.sns.push({
|
innerboxcode: this.materialsns,
|
isSplit: this.isPicking
|
});
|
this.boxBarcodes.push(matObj);
|
this.isPicking = false;
|
setTimeout(this.updateFocus, 100);
|
} else {
|
this.$refs.uToast.show({
|
title: "扫码重复",
|
type: "error"
|
})
|
setTimeout(this.updateFocus, 100);
|
}
|
} else {
|
this.$refs.uToast.show({
|
title: "扫码错误,请扫描正确内箱码",
|
type: "error"
|
})
|
setTimeout(this.updateFocus, 100);
|
}
|
})
|
},
|
checkedClick() {
|
this.isPicking = !this.isPicking;
|
this.istrue = false;
|
this.$nextTick(function(x) {
|
if (this.barcode != '') {
|
this.istrue = true;
|
}
|
})
|
},
|
updateFocus() {
|
this.materialsns = '';
|
if (!this.istrue) {
|
this.istrue = true;
|
}
|
},
|
inputChangebarcode() {
|
this.boxBarcodes = [];
|
this.istrue = false;
|
this.$nextTick(function(x) {
|
if (this.barcode != '') {
|
var postData = {
|
MainData: {
|
"barcode": this.barcode,
|
"warehouseId": this.warehouseId,
|
}
|
};
|
this.$u.post('/api/OutStockLockInfo/GetStockOutboundOrder', postData).then(res => {
|
this.matInfos = [];
|
if (res != null) {
|
this.matInfos = res
|
} else {
|
this.$refs.uToast.show({
|
title: "未找到拣选信息",
|
type: "error"
|
})
|
}
|
})
|
this.istrue = true;
|
}
|
})
|
},
|
deleteList(res) {
|
this.matTotal.map((item, index) => {
|
var temp = this.boxBarcodes.find(x => x.sn == res);
|
if (temp) {
|
if (item.matCode == temp.matCode) {
|
if (item.matQuantity - temp.matQty == 0) {
|
this.matTotal.splice(index, 1);
|
} else {
|
item.matQuantity -= temp.matQty;
|
}
|
}
|
}
|
})
|
this.sns.map((item, index) => {
|
if (item.innerboxcode == res) {
|
this.sns.splice(index, 1);
|
}
|
})
|
this.boxBarcodes.map((item, index) => {
|
if (item.sn == res) {
|
this.boxBarcodes.splice(index, 1);
|
}
|
})
|
},
|
|
submit() {
|
if (this.barcode2 == "") {
|
this.$refs.uToast.show({
|
title: "请扫描托盘条码",
|
type: "error"
|
})
|
return;
|
}
|
if (this.innerboxcode == "") {
|
this.$refs.uToast.show({
|
title: "请扫描内箱标签",
|
type: "error"
|
})
|
return;
|
}
|
this.$u.post('/api/StockOperate/PickingBoxing', {
|
MainData: {
|
"barcode": this.barcode2,
|
"innerboxcode": this.innerboxcode
|
},
|
DelKeys: this.sns2
|
}).then(res => {
|
if (res.status) {
|
uni.$showMsg('组盘成功!')
|
this.barcode2 = "";
|
this.innerboxcode = "";
|
} else {
|
this.$refs.uToast.show({
|
title: res.message,
|
type: "error"
|
})
|
}
|
}).catch(err => {
|
this.$refs.uToast.show({
|
title: err.message,
|
type: "error"
|
})
|
})
|
},
|
inputChange2(e) {
|
|
},
|
inputChangebarcode2() {
|
this.istrue2 = false;
|
this.$nextTick(function(x) {
|
if (this.barcode2 != '') {
|
this.istrue2 = true;
|
}
|
})
|
},
|
}
|
}
|
</script>
|
|
<style lang="scss">
|
@import '@/common/uni-ui.scss';
|
|
.content {
|
display: flex;
|
height: 150px;
|
}
|
|
.content-text {
|
font-size: 14px;
|
color: #666;
|
}
|
|
.itemstyle {
|
margin-top: 20px;
|
margin-left: 5%;
|
}
|
|
.headerstyle {
|
width: 90%;
|
}
|
</style>
|