From 8fcd7a67e4391a5f1fbdb590c2a3f913aeb2a0a0 Mon Sep 17 00:00:00 2001
From: helongyang <647556386@qq.com>
Date: 星期二, 31 三月 2026 14:11:23 +0800
Subject: [PATCH] PP平库功能上线,PDA优化,部分问题点优化

---
 代码管理/淮安PDA/pages/stash/raworderboxing.vue |  355 ++++++++++++++++++++++++++++------------------------------
 1 files changed, 170 insertions(+), 185 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/raworderboxing.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/raworderboxing.vue"
index 4aa1134..b1cc3da 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/raworderboxing.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/raworderboxing.vue"
@@ -10,11 +10,11 @@
 						</uni-forms-item>
 						<uni-forms-item label="鎵樼洏鏉$爜:">
 							<uni-easyinput type="text" placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' :focus="!focus"
-								v-model="barcode" @input="barcodeInput" />
+								v-model="barcode" @confirm="barcodeInput" />
 						</uni-forms-item>
 						<uni-forms-item label="鍐呯鏍囩:">
 							<uni-easyinput type="text" placeholder="璇锋壂鎻忓唴绠辨爣绛�" ref='midInput' :focus="focus"
-								v-model="materSn" @input="snInput" />
+								v-model="materSn" @confirm="snInput" />
 						</uni-forms-item>
 
 						<uni-forms-item :label="Testlabel" v-if="Test">
@@ -22,24 +22,19 @@
 								v-model="Initiallife" />
 						</uni-forms-item>
 
-						<!-- <uni-forms-item>
-							<checkbox checked="check">鏄惁婊$洏</checkbox>
-						</uni-forms-item> -->
 						<uni-forms-item>
-							<button @click="submit" type="primary" size="default" style="margin-top: 2%;">缁勭洏</button>
+							<view style="display: flex;justify-content: space-around;margin-top: 2%;">
+								<button @click="reset" type="default" size="default"
+									style="width: 160rpx;border: 1rpx solid #007aff;color: #007aff;">閲嶇疆</button>
+								<!-- 缁勭洏鎸夐挳娣诲姞绂佺敤鐘舵�佸拰鏂囧瓧鎻愮ず -->
+								<button @click="submit" type="primary" size="default" style="width: 160rpx;"
+									:disabled="isSubmitting">
+									{{ isSubmitting ? '缁勭洏涓�...' : '缁勭洏' }}
+								</button>
+							</view>
 						</uni-forms-item>
 					</uni-forms>
 					<uni-list>
-						<!-- <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 matInfos" :key="index">
 							<template v-slot:body>
 								<view class="uni-list-box">
@@ -65,14 +60,18 @@
 					<uni-forms label-width="120">
 						<uni-forms-item label="鎵樼洏鏉$爜">
 							<uni-easyinput type="text" :focus="!addressFocus" v-model="inboundBarcode"
-								placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' @input="inputChangebarcode" />
+								placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' @confirm="inputChangebarcode" />
 						</uni-forms-item>
 						<uni-forms-item label="鍦板潃鏉$爜">
-							<uni-easyinput type="text" v-model="address" placeholder="璇锋壂鎻忓湴鍧�鏉$爜" ref='midInput'
-								:focus="addressFocus" />
+							<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>
+							<!-- 鍏ュ簱纭鎸夐挳娣诲姞绂佺敤鐘舵�佸拰鏂囧瓧鎻愮ず -->
+							<button @click="inbound" type="primary" size="default" style="margin-top: 2%;"
+								:disabled="isInbounding">
+								{{ isInbounding ? '鍏ュ簱涓�...' : '鍏ュ簱纭' }}
+							</button>
 						</uni-forms-item>
 					</uni-forms>
 				</view>
@@ -86,9 +85,9 @@
 									<view class="uni-content">
 										<view style="font-size: 18px;">鍗曟嵁鍙凤細{{orderNo}}</view>
 										<view style="font-size: 18px;">鐗╂枡缂栫爜锛歿{item.materielCode}}</view>
-										<!-- <view style="font-size: 18px;">鐗╂枡鍚嶇О锛歿{item.matName}}</view> -->
-										<view style="font-size: 18px;">鏁伴噺锛歿{item.orderQuantity}}</view>
-										<view style="font-size: 18px;">鍗曚綅锛歿{item.unit}}</view>
+										<view>鐗╂枡鍚嶇О锛歿{item.materielName}}</view>
+										<view>鐗╂枡瑙勬牸锛歿{item.materielSpec}}</view>
+										<view style="font-size: 18px;">鏁伴噺锛歿{item.orderQuantity+item.unit}}</view>
 										<view style="font-size: 18px;">缁勭洏鏁伴噺锛歿{item.receiptQuantity}}</view>
 									</view>
 								</view>
@@ -101,12 +100,22 @@
 				<view class="itemstyle">
 					<uni-forms label-width="180">
 						<uni-forms-item label="鍐呯鏍囩:">
-							<uni-easyinput type="text" placeholder="璇锋壂鎻忓唴绠辨爣绛�" ref='midInput' :focus="pkfocus"
-								v-model="pkmaterSn" @input="pksnInput" />
+							<uni-easyinput type="text" placeholder="璇锋壂鎻忓唴绠辨爣绛�" ref='midInput' :focus="!pkfocus"
+								v-model="pkmaterSn" @confirm="pksnInput" />
 						</uni-forms-item>
+
 						<uni-forms-item>
-							<button @click="pksubmit" type="primary" size="default" style="margin-top: 2%;">鍏ュ钩搴�</button>
+							<view style="display: flex;justify-content: space-around;margin-top: 2%;">
+								<button @click="resetInPk" type="default" size="default"
+									style="width: 160rpx;border: 1rpx solid #007aff;color: #007aff;">閲嶇疆</button>
+								<!-- 鍏ュ钩搴撴寜閽坊鍔犵鐢ㄧ姸鎬佸拰鏂囧瓧鎻愮ず -->
+								<button @click="pksubmit" type="primary" size="default"
+									style="margin-top: 2%;" :disabled="isPkSubmitting">
+									{{ isPkSubmitting ? '鍏ュ簱涓�...' : '鍏ュ钩搴�' }}
+								</button>
+							</view>
 						</uni-forms-item>
+
 					</uni-forms>
 					<uni-list>
 						<uni-list-item direction="column" v-for="(item,index) in pkmatInfos" :key="index">
@@ -147,12 +156,12 @@
 				label: "",
 				orderInfo: [],
 				focus: false,
-				pkfocus:false,
+				pkfocus: false,
 				barcode: "",
 				materSn: "",
 				Initiallife: 1000,
 				sns: [],
-				pksns:[],
+				pksns: [],
 				addressFocus: false,
 				inboundBarcode: "",
 				address: "",
@@ -167,7 +176,12 @@
 				Testplaceholder: "",
 				Testcheck: false,
 				pkmaterSn: "",
-				pkmatInfos: []
+				pkmatInfos: [],
+				addressdisabled: false,
+				// 鏂板锛氶槻閲嶅鐐瑰嚮鐘舵�佸彉閲�
+				isSubmitting: false,    // 缁勭洏璇锋眰鐘舵��
+				isInbounding: false,   // 鍏ュ簱纭璇锋眰鐘舵��
+				isPkSubmitting: false  // 鍏ュ钩搴撹姹傜姸鎬�
 			}
 		},
 		onShow() {},
@@ -189,99 +203,14 @@
 				this.items.push("鍏ュ钩搴�");
 				this.items[1] = "鍏ョ珛搴�";
 				this.address = "8005";
+			} else if (this.warehouseId == 3) { //杈呮枡
+				this.address = "1011";
+				this.addressdisabled = true;
 			}
 			this.label = "鍗曟嵁缂栧彿锛�" + this.orderNo;
 			this.getData();
 		},
 		methods: {
-			voiceSpeech(src) {
-				innerAudioContext.src = src; // '../../static/success.mp3';
-				innerAudioContext.play();
-			},
-			//瑙g洏
-			releasebox() {
-				if (this.value.length == 0) {
-					this.$refs.uToast.show({
-						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
-						}
-					}
-				}
-				this.$u.post('/api/StockOperate/ReleaseAllBox', param).then(resdt => {
-					if (resdt.status) {
-						uni.$showMsg('瑙g洏鎴愬姛!')
-						this.value = "";
-						this.matInfo = [];
-						this.matTotals = [];
-						this.value2 = "";
-					} else {
-						this.$refs.uToast.show({
-							title: resdt.message,
-							type: "error"
-						})
-					}
-				})
-			},
-			releaseboxInput() {
-				this.$nextTick(() => {
-					if (this.value.length == 0) {
-						return;
-					}
-					var matInfo = this.value.split('|');
-					this.matInfo = [];
-					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.matTotals = res.data.stockTotal;
-								this.value2 = res.data.barcode;
-							} else {
-								this.$refs.uToast.show({
-									title: res.message,
-									type: "error"
-								})
-							}
-						})
-					} else {
-						this.$u.post('/api/StockOperate/GetStockInfoByBarcode', {
-							MainData: {
-								"barcode": this.value
-							}
-						}).then(res => {
-							if (res.status) {
-								this.matInfo = res.data.stockInfo;
-								this.matTotals = res.data.stockTotal;
-								this.value2 = res.data.barcode;
-							} else {
-								this.$refs.uToast.show({
-									title: res.message,
-									type: "error"
-								})
-							}
-						})
-					}
-				})
-			},
-
 			updateFocus() {
 				debugger
 				this.$nextTick(() => {
@@ -326,14 +255,7 @@
 			barcodeInput() {
 				this.$nextTick(function(x) {
 					if (this.barcode.length > 0) {
-						// if (this.barcode.substring(0, 1) == 'A' || this.barcode.substring(0, 2) == 'TP') {
 						this.focus = true;
-						// } else {
-						// 	this.$refs.uToast.show({
-						// 		title: "鎵爜閿欒,璇锋壂鎻忔墭鐩樼爜",
-						// 		type: "error"
-						// 	})
-						// }
 					}
 				})
 			},
@@ -342,80 +264,70 @@
 					if (this.materSn != "") {
 						this.focus = false;
 						var matSn = this.materSn;
-						setTimeout(() => {
-							this.materSn = "";
-						}, 10);
-						this.$u.post('/api/MaterielInfo/CodeAnalysis?serNum=' + matSn, {}).then((res) => {
-							this.Testcheck = false;
-							if (res.status) {
-								this.sns.push(res.data.serialNumber);
-
-								this.matInfos.push(res.data);
-								if (res.message) {
+						if (this.warehouseId == 11) {
+							matSn = matSn.replace(/,SC.*/, '');
+						}
+						//鏌ヨmatSn鏄惁瀛樺湪瀛楃
+						if(matSn.indexOf("POHA")>0){
+							this.$u.post('/api/MaterielInfo/CodeAnalysis?serNum=' + matSn, {}).then((res) => {
+								this.Testcheck = false;
+								if (res.status) {
+									this.sns.push(res.data.serialNumber);
+									this.matInfos.push(res.data);
+									if (res.message) {
+										this.$refs.uToast.show({
+											title: res.message,
+											type: "error"
+										})
+										return;
+									}
+								} else {
 									this.$refs.uToast.show({
 										title: res.message,
 										type: "error"
 									})
-									setTimeout(() => {
-										this.voiceSpeech('../../static/fail.mp3');
-									}, 100);
-									return;
 								}
-								setTimeout(() => {
-									this.voiceSpeech('../../static/success.mp3');
-								}, 100);
-							} else {
-								this.$refs.uToast.show({
-									title: res.message,
-									type: "error"
-								})
-								setTimeout(() => {
-									this.voiceSpeech('../../static/fail.mp3');
-								}, 100);
-							}
-						})
+							})
+						}
+						setTimeout(() => {
+							this.materSn = "";
+						}, 100);
 					}
 				})
 			},
 			pksnInput() {
 				this.$nextTick(() => {
 					if (this.pkmaterSn != "") {
-						this.focus = false;
 						var matSn = this.pkmaterSn;
-						setTimeout(() => {
-							this.pkmaterSn = "";
-						}, 10);
-						this.$u.post('/api/MaterielInfo/CodeAnalysis?serNum=' + matSn, {}).then((res) => {
-							if (res.status) {
-								this.pksns.push(res.data.serialNumber);
-								this.pkmatInfos.push(res.data);
-								if (res.message) {
+						if(matSn.indexOf("POHA")>0){
+							this.$u.post('/api/MaterielInfo/CodeAnalysis?serNum=' + matSn, {}).then((res) => {
+								if (res.status) {
+									this.pksns.push(res.data.serialNumber);
+									this.pkmatInfos.push(res.data);
+									if (!res.status) {
+										this.$refs.uToast.show({
+											title: res.message,
+											type: "error"
+										})
+										return;
+									}
+									return;
+								} else {
 									this.$refs.uToast.show({
 										title: res.message,
 										type: "error"
 									})
-									setTimeout(() => {
-										this.voiceSpeech('../../static/fail.mp3');
-									}, 100);
-									return;
 								}
-								setTimeout(() => {
-									this.voiceSpeech('../../static/success.mp3');
-								}, 100);
-							} else {
-								this.$refs.uToast.show({
-									title: res.message,
-									type: "error"
-								})
-								setTimeout(() => {
-									this.voiceSpeech('../../static/fail.mp3');
-								}, 100);
-							}
-						})
+							})
+						}
+						setTimeout(() => {
+							this.pkmaterSn = "";
+						}, 100);
 					}
 				})
 			},
 			inbound() {
+				// 1. 鍓嶇疆鏍¢獙
 				if (this.inboundBarcode == "") {
 					this.$refs.uToast.show({
 						title: "璇锋壂鎻忔墭鐩樻潯鐮�",
@@ -430,6 +342,13 @@
 					})
 					return;
 				}
+				
+				// 2. 闃叉閲嶅鐐瑰嚮锛氳姹備腑鍒欑洿鎺ヨ繑鍥�
+				if (this.isInbounding) return;
+				
+				// 3. 鏍囪涓鸿姹備腑锛岀鐢ㄦ寜閽�
+				this.isInbounding = true;
+
 				var postData = {
 					MainData: {
 						"barcode": this.inboundBarcode,
@@ -459,6 +378,9 @@
 						title: err.message,
 						type: "error"
 					})
+				}).finally(() => {
+					// 4. 璇锋眰瀹屾垚锛堟垚鍔�/澶辫触锛夋仮澶嶆寜閽姸鎬�
+					this.isInbounding = false;
 				})
 			},
 			inputChangebarcode() {
@@ -477,7 +399,23 @@
 				this.pkmatInfos.splice(res, 1);
 				this.pksns.splice(res, 1);
 			},
-			pksubmit(){
+			reset() {
+				this.barcode = "";
+				this.matInfos = [];
+				this.sns = [];
+				this.materSn = "";
+				if (this.warehouseId = !6) {
+					this.Initiallife = 0;
+				}
+			},
+			resetInPk() {
+				this.pkmaterSn = "";
+				this.pkfocus = false;
+				this.pkmatInfos = [];
+				this.pksns = [];
+			},
+			pksubmit() {
+				// 1. 鍓嶇疆鏍¢獙
 				if (this.pkmatInfos.length == 0) {
 					this.$refs.uToast.show({
 						title: "璇锋壂鎻忓唴绠辨爣绛�",
@@ -485,13 +423,21 @@
 					})
 					return;
 				}
-				this.$u.post('/api/InboundOrder/InPinKu?warehouseId=' + this.warehouseId+"&orderNo="+ this.orderNo, this.pksns).then(res => {
+				
+				// 2. 闃叉閲嶅鐐瑰嚮锛氳姹備腑鍒欑洿鎺ヨ繑鍥�
+				if (this.isPkSubmitting) return;
+				
+				// 3. 鏍囪涓鸿姹備腑锛岀鐢ㄦ寜閽�
+				this.isPkSubmitting = true;
+
+				this.$u.post('/api/InboundOrder/InPinKu?warehouseId=' + this.warehouseId + "&orderNo=" + this.orderNo, this
+					.pksns).then(res => {
 					if (res.status) {
 						this.$refs.uToast.show({
 							title: "鍏ュ簱鎴愬姛",
 							type: "success"
 						})
-						this.focus = false;
+						this.pkfocus = false;
 						this.pkmatInfos = [];
 						this.pksns = [];
 					} else {
@@ -500,9 +446,18 @@
 							type: "error"
 						})
 					}
+				}).catch(err => {
+					this.$refs.uToast.show({
+						title: err.message,
+						type: "error"
+					})
+				}).finally(() => {
+					// 4. 璇锋眰瀹屾垚锛堟垚鍔�/澶辫触锛夋仮澶嶆寜閽姸鎬�
+					this.isPkSubmitting = false;
 				})
 			},
 			submit() {
+				// 1. 鍓嶇疆鏍¢獙
 				if (this.barcode == "") {
 					this.$refs.uToast.show({
 						title: "璇锋壂鎻忔墭鐩樻潯鐮�",
@@ -520,11 +475,31 @@
 				if (this.Test) {
 					if (!this.Testcheck) {
 						this.Testcheck = true;
-						this.$refs.uToast.show({
-							title: "璇风‘璁ゅ垵濮嬪鍛�",
-							type: 'error'
-						})
+						if (this.warehouseId == 2) {
+							this.$refs.uToast.show({
+								title: "璇风‘璁ゆ暟閲�",
+								type: 'error'
+							})
+						} else if (this.warehouseId == 6) {
+							this.$refs.uToast.show({
+								title: "璇风‘璁ゅ垵濮嬪鍛�",
+								type: 'error'
+							})
+						}
 						return;
+					}
+				}
+				
+				// 2. 闃叉閲嶅鐐瑰嚮锛氳姹備腑鍒欑洿鎺ヨ繑鍥�
+				if (this.isSubmitting) return;
+				
+				// 3. 鏍囪涓鸿姹備腑锛岀鐢ㄦ寜閽�
+				this.isSubmitting = true;
+
+				if (this.warehouseId == 2) { //娌瑰ⅷ浠撳簱鍖篒D
+					this.sn = this.sns[0];
+					for (var i = 0; i < this.Initiallife - 1; i++) {
+						this.sns.push(this.sn);
 					}
 				}
 				this.$u.post('/api/InboundOrder/MaterielGroup', {
@@ -532,7 +507,6 @@
 						"palletCode": this.barcode,
 						"orderNo": this.orderNo,
 						"initiallife": this.Initiallife,
-						// "isFull": this.check
 						"warehouseId": this.warehouseId
 					},
 					DelKeys: this.sns
@@ -548,12 +522,23 @@
 						this.matInfos = [];
 						this.sns = [];
 						this.matTotal = [];
+						if (this.warehouseId != 6) { //娴嬭瘯鏋朵粨搴撳尯ID
+							this.Initiallife = "";
+						}
 					} else {
 						this.$refs.uToast.show({
 							title: res.message,
 							type: "error"
 						})
 					}
+				}).catch(err => {
+					this.$refs.uToast.show({
+						title: err.message,
+						type: "error"
+					})
+				}).finally(() => {
+					// 4. 璇锋眰瀹屾垚锛堟垚鍔�/澶辫触锛夋仮澶嶆寜閽姸鎬�
+					this.isSubmitting = false;
 				})
 			}
 		}

--
Gitblit v1.9.3