From a70034659894cf2c3cd88584cd3e424f3203c8e5 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期二, 24 十二月 2024 17:05:49 +0800
Subject: [PATCH] 添加PDA拣选完成

---
 代码管理/淮安PDA/pages/stash/pickingMat.vue |  496 +++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 323 insertions(+), 173 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/pickingMat.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/pickingMat.vue"
index 53ba37b..bcc6231 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/pickingMat.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/pickingMat.vue"
@@ -1,96 +1,162 @@
 <template>
 	<view>
-		<view class="header">
-			<uni-forms label-width="120">
-				<uni-forms-item label="鎵樼洏鏉$爜">
-					<uni-easyinput type="text" @input="inputChange()" v-model="value" placeholder="璇锋壂鐮�" ref='midInput'
-						:focus="true" />
-				</uni-forms-item>
-				<uni-forms-item>
-					<button @click="submit" type="primary" size="default" style="margin-top: 2%;">鎷i�夊畬鎴�</button>
-				</uni-forms-item>
-			</uni-forms>
+		<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;">鎷i�夊畬鎴�</button>
+						</uni-forms-item>
+					</uni-forms>
+					<uni-list>
+						<uni-list-item direction="column" v-for="item in matInfos" :key="item.sn">
+							<template v-slot:body>
+								<view class="uni-list-box">
+									<!-- <uni-icons type="trash" size="22" style="position: absolute;right: 5%;"
+										@click="deleteList(item.sn)">
+									</uni-icons> -->
+									<view class="uni-content">
+										<view class="uni-title-sub uni-ellipsis-2">鍗曟嵁缂栧彿锛歿{item.orderNo}}</view>
+										<view class="uni-note">鎵樼洏缂栧彿锛歿{item.palletCode}}</view>
+										<view class="uni-note">鐗╂枡鎵规锛歿{item.batchNo}}</view>
+										<view class="uni-note">鐗╂枡缂栫爜锛歿{item.materielCode}}</view>
+										<view class="uni-note">鐗╂枡鍚嶇О锛歿{item.materielName}}</view>
+										<view class="uni-note">鍗曟嵁鏁伴噺锛歿{item.orderQuantity}}</view>
+										<view class="uni-note">鍘熷搴撳瓨锛歿{item.originalQuantity}}</view>
+										<view class="uni-note">鍒嗛厤搴撳瓨锛歿{item.assignQuantity}}</view>
+										<view class="uni-note">鍓╀綑搴撳瓨锛歿{item.originalQuantity-item.assignQuantity}}</view>
+									</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" 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>
 		</view>
-		<uni-list class="footer">
-			<uni-list-item direction="column" v-if="value2">
-				<label>{{value2}}</label>
-			</uni-list-item>
-			<uni-list-item direction="column" v-for="item in matTotal" :key="item.matCode">
-				<template v-slot:body>
-					<view class="uni-list-box">
-						<view class="uni-content">
-							<view class="uni-title-sub uni-ellipsis-2">鐗╂枡缂栫爜锛歿{item.matCode}}</view>
-							<view class="uni-title-sub uni-ellipsis-2">鏁伴噺锛歿{item.matQuantity}}</view>
-						</view>
-					</view>
-				</template>
-			</uni-list-item>
-			
-			<uni-list-item direction="column" v-for="(item,index) in matInfo" :key="index">
-				<template v-slot:body>
-					<view class="uni-list-box">
-						<view class="uni-content">
-							<view class="uni-title-sub uni-ellipsis-2" style="font-size: 1.1em;">鐗╂枡缂栫爜锛歿{item.matCode}}
-							</view>
-							<view class="uni-title-sub uni-ellipsis-2" style="font-size: 1.1em;">鐗╂枡鍚嶇О锛歿{item.matName}}
-							</view>
-							<view class="uni-title-sub uni-ellipsis-2" style="font-size: 1.1em;">鏁伴噺锛歿{item.matQty}}
-							</view>
-						</view>
-					</view>
-				</template>
-			</uni-list-item>
-		</uni-list>
-
 		<u-toast ref="uToast" />
 	</view>
 </template>
 
 <script>
+	// const SixUniTts = uni.requireNativePlugin("SmallSix-SixUniTts")
 	export default {
 		data() {
 			return {
-				value: "",
-				matInfo: [],
-				value2: "",
-				matTotal:[]
+				items: ['鎷i��', '鍏ュ簱'], //'鎷i�夌粍鐩�',
+				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,
 			}
 		},
 		onLoad(res) {
-			//this.hideboard();
+			this.barcodefocus = false;
+			this.warehouseId = res.warehouseId;
+			this.istrue = false;
 		},
 		methods: {
-			submit() {
-				if (this.value.length == 0) {
+			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: "璇锋壂鐮�",
+						title: "璇锋壂鎻忔墭鐩樻潯鐮�",
 						type: "error"
 					})
 					return;
 				}
-				var param;
-				var matInfo = this.value.split('|');
-				if (matInfo.length == 7) {
-					param = {
-						MainData: {
-							"innerCode": this.value
-						}
-					}
-				} else {
-					param = {
-						MainData: {
-							"barcode": this.value
-						}
+				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/StockOperate/ReleaseAllBox', param).then(resdt => {
-					if (resdt.status) {
-						uni.$showMsg('瑙g洏鎴愬姛!')
-						this.value = "";
-						this.matInfo = [];
+				this.$u.post('/api/Task/RequestInboundTask', postData).then(res => {
+					if (res.status) {
+						uni.$showMsg(res.message);
+						this.inboundBarcode = "";
+						this.address = "";
+						setTimeout(() => {
+							this.addressFocus = false;
+						}, 200);
 					} else {
 						this.$refs.uToast.show({
-							title: resdt.message,
+							title: res.message,
 							type: "error"
 						})
 					}
@@ -101,47 +167,195 @@
 					})
 				})
 			},
+			inputChangebarcode3() {
+				this.addressFocus = false;
+				this.$nextTick(function(x) {
+					if (this.inboundBarcode != '') {
+						this.addressFocus = true;
+					}
+				})
+			},
+			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) {
+						uni.$showMsg('鎷i�夋垚鍔�!')
+						this.barcode = "";
+						this.matInfos = [];
+					} else {
+						this.$refs.uToast.show({
+							title: res.message,
+							type: "error"
+						})
+					}
+				})
+			},
 			inputChange(e) {
 				this.$nextTick(() => {
-					if (this.value.length == 0) {
-						return;
-					}
-					var matInfo = this.value.split('|');
-					this.matInfo = [];
+					this.istrue = false;
+					var matInfo = this.materialsns.split('|');
 					if (matInfo.length == 7) {
-						this.$u.post('/api/StockOperate/GetStockInfoByInnerCode', {
-							MainData: {
-								"innerCode": this.value
-							}
-						}).then(res => {
-							if (res.status) {
-								this.matInfo = res.data.stockInfo;
-								this.matTotal = res.data.stockTotal;
-							} else {
-								this.$refs.uToast.show({
-									title: res.message,
-									type: "error"
+						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.$u.post('/api/StockOperate/GetStockInfoByBarcode', {
+						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.value
+								"barcode": this.barcode,
+								"warehouseId": this.warehouseId,
 							}
-						}).then(res => {
-							if (res.status) {
-								this.matInfo = res.data.stockInfo;
-								this.matTotal = res.data.stockTotal;
-								// console.log(res.data);
-								// console.log(this.matTotal);
+						};
+						this.$u.post('/api/OutStockLockInfo/GetStockOutboundOrder', postData).then(res => {
+							this.matInfos = [];
+							if (res != null) {
+								this.matInfos = res
 							} else {
 								this.$refs.uToast.show({
-									title: res.message,
+									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;
 					}
 				})
 			},
@@ -152,86 +366,22 @@
 <style lang="scss">
 	@import '@/common/uni-ui.scss';
 
-	page {
-		display: flex;
-		flex-direction: column;
-		box-sizing: border-box;
-		background-color: #efeff4;
-		min-height: 100%;
-		height: auto;
-	}
-
-	.tips {
-		color: #67c23a;
-		font-size: 14px;
-		line-height: 40px;
-		text-align: center;
-		background-color: #f0f9eb;
-		height: 0;
-		opacity: 0;
-		transform: translateY(-100%);
-		transition: all 0.3s;
-	}
-
-	.tips-ani {
-		transform: translateY(0);
-		height: 40px;
-		opacity: 1;
-	}
-
 	.content {
-		width: 100%;
 		display: flex;
-	}
-
-	.list-picture {
-		width: 100%;
-		height: 145px;
-	}
-
-	.thumb-image {
-		width: 100%;
-		height: 100%;
-	}
-
-	.ellipsis {
-		display: flex;
-		overflow: hidden;
-	}
-
-	.uni-ellipsis-1 {
-		overflow: hidden;
-		white-space: nowrap;
-		text-overflow: ellipsis;
-	}
-
-	.uni-ellipsis-2 {
-		overflow: hidden;
-		text-overflow: ellipsis;
-		display: -webkit-box;
-		-webkit-line-clamp: 2;
-		-webkit-box-orient: vertical;
-	}
-
-	.customcss {
-		display: flex;
-		position: fixed;
-		width: 100%;
-		top: 10px;
-		text-align: center;
-		z-index: 999;
-		left: 30px;
-		height: 20%;
-	}
-
-	.footer {
-		// padding-top: 30%;
-	}
-
-	.header {
-		width: 100%;
 		height: 150px;
-		background-color: #ffffff;
-		padding: 20rpx 40rpx;
+	}
+
+	.content-text {
+		font-size: 14px;
+		color: #666;
+	}
+
+	.itemstyle {
+		margin-top: 20px;
+		margin-left: 5%;
+	}
+
+	.headerstyle {
+		width: 90%;
 	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3