From 95e39ae7aecd6e1016c71cf5ae70a680d8f569bb Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期二, 29 四月 2025 10:48:30 +0800
Subject: [PATCH] 上传最新代码

---
 代码管理/淮安PDA/pages/stash/OutProOrder.vue |  350 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 312 insertions(+), 38 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/OutProOrder.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/OutProOrder.vue"
index f2e15aa..3aa09ab 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/OutProOrder.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/OutProOrder.vue"
@@ -3,22 +3,31 @@
 		<view class="itemstyle">
 			<uni-forms label-width="180">
 				<uni-forms-item label="澶栫鐮�:">
-					<uni-easyinput type="text" placeholder="璇锋壂鎻忓绠辩爜" ref='midInput' :focus="!focus" v-model="barcode"
-						@input="barcodeInput" />
-				</uni-forms-item>
-				<uni-forms-item>
-					<button @click="InEmpty" type="primary" size="default" style="margin-top: 2%;">鍑鸿揣</button>
+					<uni-easyinput type="text" placeholder="璇锋壂鎻忓绠辩爜" ref='midInput'  v-model="barcode" :focus="!focus"
+						 class="search_box" :disabled="isDisable" @confirm="handleKeyPress"/>
 				</uni-forms-item>
 			</uni-forms>
 		</view>
-		<view style="padding: 0 14rpx 20rpx;">
+		<view style="padding: 0 0rpx 0rpx;">
 			<!-- 褰撳墠鍑哄簱澶栧寘鍙� -->
-			<view v-for="(i,index) in listOutBags" :key="index" class="item_box">
-				<view style="line-height: 17px;color: #596671;font-size: 14px;text-align: left;font-weight: bold;">澶栧寘鍙凤細{{i}}
-				</view>
+			<view class="item_boxItem">
+				<uni-list>
+					<uni-list-item direction="column" v-for="(item,index) in listShow" :key="index">
+						<template v-slot:body>
+							<view class="uni-list-box">
+								<uni-icons type="trash" size="22" style="position: absolute;right: 5%;"
+									@click="deleteList(index)">
+								</uni-icons>
+								<view class="uni-content">
+									<view class="uni-title-sub uni-ellipsis-2">澶栧寘锛歿{item.code}} &nbsp;&nbsp; 鏁伴噺锛歿{item.qty}}</view>
+								</view>
+							</view>
+						</template>
+					</uni-list-item>
+				</uni-list>
 			</view>
 		</view>
-		<view style="padding: 0 14rpx 20rpx;">
+		<view style="padding: 0 14rpx 200rpx;">
 			<!-- 鏄庣粏 -->
 			<view v-for="i in list" :key="i.id" class="item_box">
 				<view style="line-height: 17px;color: #596671;font-size: 14px;text-align: left;font-weight: bold;">璁㈠崟鏄庣粏琛屽彿锛歿{i.rowId}}
@@ -26,12 +35,24 @@
 				<view style="margin-top: 22rpx;height: 140rpx;display: flex;flex-direction: column;justify-content: space-around;">
 					<view style="color: #00070F;font-size: 12px;">瀹㈡埛浠e彿锛歿{i.customer}}</view>
 					<view style="color: #00070F;font-size: 12px;">浜у搧缂栧彿锛歿{i.pCode}}</view>
-					<view style="color: #00070F;font-size: 12px;">璁㈠崟鏁伴噺锛歿{i.qtyPcs}}</view>
-					<view style="color: #00070F;font-size: 12px;">宸插嚭鏁伴噺锛歿{i.overQtyPcs}}</view>
+					<view style="color: #00070F;font-size: 12px;">閿�鍞鍗曪細{{i.saleOrder}}</view>
+					<view style="color: #f56c6c;font-size: 12px;">璁㈠崟鏁伴噺锛歿{i.qtyPcs}}</view>
+					<view style="color: #67c23a;font-size: 12px;">宸插嚭鏁伴噺锛歿{i.overQtyPcs}}</view>
+				</view>
+				<view style="width: 100%;height: 1rpx;background-color: #00070F;margin-top: 28rpx;">
 				</view>
 			</view>
 		</view>
-		<uni-load-more :status="status" v-if="loadVisible"></uni-load-more>
+		<view style="padding:20rpx;position: fixed;bottom: 0;left: 0;background-color:lightgray;width: 100%;z-index: 999;display: flex;justify-content: space-between;">
+			<view style="margin-bottom: 22rpx;padding-left: 16rpx;line-height: 80rpx;">
+				<view style="font-size: 24rpx;font-weight: bold;color: #f56c6c;">璁㈠崟鎬绘暟閲忥細<text>{{orderQty}}</text></view>
+				<view style="font-size: 24rpx;font-weight: bold;color: #67c23a;">宸叉壂鎬绘暟閲忥細<text>{{total}}</text></view>
+			</view>
+			<view style="display: flex;height: 110rpx;margin-top: 40rpx;">
+				<button @click="reset" type="default" size="default" style="margin-top: 2%;width: 160rpx;border: 1rpx solid #007aff;color: #007aff;margin-right: 30rpx;">閲嶇疆</button>
+				<button @click="InEmpty" type="primary" size="default" style="margin-top: 2%;width: 160rpx;">鍑鸿揣</button>
+			</view>
+		</view>
 		<u-toast ref="uToast" />
 	</view>
 </template>
@@ -46,7 +67,11 @@
 				proOutNo: "",
 				id: null,
 				list:[],
-				listOutBags:[]
+				listOutBags:[],
+				listShow:[],
+				total:0,
+				orderQty:0,
+				isDisable:false
 			}
 		},
 		onShow() {},
@@ -54,15 +79,121 @@
 			this.proOutNo=res.proOutNo;
 			this.GetDetail(res.id);
 			this.id=res.id;
-			//宸插嚭绠卞彿
+			uni.hideKeyboard(); //闅愯棌杞敭鐩�
 		},
 		methods: {
+			handleKeyPress(e) {
+				console.log(e);
+			      // 鍥炶溅绗︼紙ASCII 13锛夎〃绀烘壂鐮佺粨鏉�
+				  this.isDisable=true;
+				  this.focus=true;
+				  this.$nextTick(function(x) {
+				  	var values= this.barcode.split(',');
+				  	if(values.length==5){
+				  		// if (values.length != 5) {
+				  		// 	this.$refs.uToast.show({
+				  		// 		title: "鎵弿鏍煎紡閿欒"+value,
+				  		// 		type: 'error'
+				  		// 	})
+				  		// 	this.barcode="";
+				  		// 	this.$refs.midInput.focus();
+				  		// 	return;
+				  		// }
+				  		this.$u.post('/api/ProOutOrder/CheckCode?code='+this.barcode,{}).then(
+				  			res => {
+				  				if (res.status) {
+				  					//鍒ゆ柇鏄惁閲嶅
+				  					if (this.listShow.some(item => item.code === values[0])) {
+				  						this.barcode="";
+				  						setTimeout(() => {
+				  							this.isDisable=false;
+				  							this.focus=false;
+				  						},200);
+				  						this.$refs.uToast.show({
+				  							title: "閲嶅鎵弿"+values[0]+"宸插瓨鍦�",
+				  							type: 'error'
+				  						})
+				  						return;
+				  					}
+				  					if (this.list.some(item => item.pCode === values[1])) {
+				  						var outCode=values[0];
+				  						var outQty=parseInt(values[4]);
+				  						//鍒ゆ柇outQty涓烘暟瀛�
+				  						if (isNaN(outQty)) {
+				  								this.barcode="";
+				  								setTimeout(() => {
+				  									this.isDisable=false;
+				  									this.focus=false;
+				  								},200);
+				  								this.$refs.uToast.show({
+				  									title: "鎵弿鏍煎紡閿欒"+values[4],
+				  									type: 'error'
+				  								})
+				  								return;
+				  							}
+				  						//鍒ゆ柇outQty鏄惁澶т簬0
+				  						if (outQty<=0) {
+				  							this.barcode="";
+				  							setTimeout(() => {
+				  								this.isDisable=false;
+				  								this.focus=false;
+				  							},200);
+				  							this.$refs.uToast.show({
+				  								title: "鏍囩鏁板繀椤诲ぇ浜�0",
+				  								type: 'error'
+				  							})
+				  							return;
+				  						}
+				  						this.total+=outQty;
+				  						if(this.orderQty<this.total){
+				  							this.barcode="";
+				  							setTimeout(() => {
+				  								this.isDisable=false;
+				  								this.focus=false;
+				  							},200);
+				  							this.$refs.uToast.show({
+				  								title: "璁㈠崟鏁拌秴鍑�",
+				  								type: 'error'
+				  							})
+				  							return;
+				  						}
+				  						this.listShow.unshift({code:outCode,qty:outQty});
+				  						console.log(this.listShow);
+				  						//鍘婚櫎this.barcode鐨勭┖鏍�
+				  						this.listOutBags.push(this.barcode.replace(/\s*/g, ""));
+				  						this.barcode="";
+				  						setTimeout(() => {
+				  							this.isDisable=false;
+				  							this.focus=false;
+				  						},200);
+				  						
+				  					}else{
+				  						this.barcode="";
+				  						setTimeout(() => {
+				  							this.isDisable=false;
+				  							this.focus=false;
+				  						},200);
+				  						this.$refs.uToast.show({
+				  							title: "鎵弿"+values[1]+"鎵瑰彿涓嶅湪璁㈠崟涓�",
+				  							type: 'error'
+				  						})
+				  						return;
+				  					}
+				  				}
+				  			})
+				  	}
+				  })
+			    },
 			GetDetail(value) {
 				this.$u.post('/api/ProOutOrder/GetOrderDetails?keyId='+value).then(
 					res => {
 						if (res.status) {
 							this.list=res.data.proOutOrderDetails;
-							this.listOutBags=res.data.outBags;
+							this.orderQty=this.list.map(x=>{
+								return x.qtyPcs
+							}).reduce((a,b)=>{
+								return a+b
+							});
 						} else {
 							this.$refs.uToast.show({
 								title: res.message,
@@ -71,42 +202,173 @@
 						}
 					})
 			},
-			voiceSpeech(src) {
-				innerAudioContext.src = src; // '../../static/success.mp3';
-				innerAudioContext.play();
-			},
-			barcodeInput(value) {
-				this.$nextTick(function(x) {
-					if (this.barcode.length > 0) {
-						this.focus = true;
-						this.barcode=value.split(',')[0];
+			// voiceSpeech(src) {
+			// 	innerAudioContext.src = src; // '../../static/success.mp3';
+			// 	innerAudioContext.play();
+			// },
+			// barcodeInput(value) {
+			// 	this.isDisable=true;
+			// 	this.focus=true;
+			// 	setTimeout(x=>{
+			// 		this.$nextTick(function(x) {
+			// 			var values= this.barcode.split(',');
+			// 			if(values.length==5){
+			// 				// if (values.length != 5) {
+			// 				// 	this.$refs.uToast.show({
+			// 				// 		title: "鎵弿鏍煎紡閿欒"+value,
+			// 				// 		type: 'error'
+			// 				// 	})
+			// 				// 	this.barcode="";
+			// 				// 	this.$refs.midInput.focus();
+			// 				// 	return;
+			// 				// }
+			// 				this.$u.post('/api/ProOutOrder/CheckCode?code='+this.barcode,{}).then(
+			// 					res => {
+			// 						if (res.status) {
+			// 							//鍒ゆ柇鏄惁閲嶅
+			// 							if (this.listShow.some(item => item.code === values[0])) {
+			// 								this.barcode="";
+			// 								setTimeout(() => {
+			// 									this.isDisable=false;
+			// 									this.focus=false;
+			// 								},200);
+			// 								this.$refs.uToast.show({
+			// 									title: "閲嶅鎵弿"+values[0]+"宸插瓨鍦�",
+			// 									type: 'error'
+			// 								})
+			// 								return;
+			// 							}
+			// 							if (this.list.some(item => item.pCode === values[1])) {
+			// 								var outCode=values[0];
+			// 								var outQty=parseInt(values[4]);
+			// 								//鍒ゆ柇outQty涓烘暟瀛�
+			// 								if (isNaN(outQty)) {
+			// 										this.barcode="";
+			// 										setTimeout(() => {
+			// 											this.isDisable=false;
+			// 											this.focus=false;
+			// 										},200);
+			// 										this.$refs.uToast.show({
+			// 											title: "鎵弿鏍煎紡閿欒"+values[4],
+			// 											type: 'error'
+			// 										})
+			// 										return;
+			// 									}
+			// 								//鍒ゆ柇outQty鏄惁澶т簬0
+			// 								if (outQty<=0) {
+			// 									this.barcode="";
+			// 									setTimeout(() => {
+			// 										this.isDisable=false;
+			// 										this.focus=false;
+			// 									},200);
+			// 									this.$refs.uToast.show({
+			// 										title: "鏍囩鏁板繀椤诲ぇ浜�0",
+			// 										type: 'error'
+			// 									})
+			// 									return;
+			// 								}
+			// 								this.total+=outQty;
+			// 								if(this.orderQty<this.total){
+			// 									this.barcode="";
+			// 									setTimeout(() => {
+			// 										this.isDisable=false;
+			// 										this.focus=false;
+			// 									},200);
+			// 									this.$refs.uToast.show({
+			// 										title: "璁㈠崟鏁拌秴鍑�",
+			// 										type: 'error'
+			// 									})
+			// 									return;
+			// 								}
+			// 								this.listShow.unshift({code:outCode,qty:outQty});
+			// 								console.log(this.listShow);
+			// 								//鍘婚櫎this.barcode鐨勭┖鏍�
+			// 								this.listOutBags.push(this.barcode.replace(/\s*/g, ""));
+			// 								this.barcode="";
+			// 								setTimeout(() => {
+			// 									this.isDisable=false;
+			// 									this.focus=false;
+			// 								},200);
+											
+			// 							}else{
+			// 								this.barcode="";
+			// 								setTimeout(() => {
+			// 									this.isDisable=false;
+			// 									this.focus=false;
+			// 								},200);
+			// 								this.$refs.uToast.show({
+			// 									title: "鎵弿"+values[1]+"鎵瑰彿涓嶅湪璁㈠崟涓�",
+			// 									type: 'error'
+			// 								})
+			// 								return;
+			// 							}
+			// 						}
+			// 					})
+			// 			}
+			// 		})
+			// 	},200)
+			// },
+			deleteList(res) {
+				let indexExist =-1;
+				//鏌ヨthis.listOutBags涓槸鍚︽湁this.listShow[res].code
+				this.listOutBags.forEach((item,index) => {
+					//item鏄惁鍖呭惈 this.listShow[res].code
+					if (item.includes(this.listShow[res].code)) {
+						indexExist=index;
 					}
-				})
+				});
+				console.log(indexExist);
+				if (indexExist !=-1) { // 濡傛灉鎵惧埌浜嗙储寮曪紝鍒欐墽琛屽垹闄ゆ搷浣�
+					this.total-=this.listShow[res].qty;
+					this.listOutBags.splice(indexExist, 1); // 浠庣储寮曚綅缃紑濮嬪垹闄や竴涓厓绱�
+					this.listShow.splice(res, 1);
+				}
+				setTimeout(() => {
+					this.isDisable=false;
+				},200);
+				this.barcode="";
+			},
+			reset(){
+				this.listShow=[];
+				this.total=0;
+				this.listOutBags=[];
+				this.focus=true;
+				this.barcode="";
+				setTimeout(() => {
+					this.barcode="";
+					this.isDisable=false;
+					this.focus=false;
+				}, 200);
 			},
 			InEmpty() {
-				if (this.barcode == "") {
-					this.$refs.uToast.show({
-						title: "璇锋壂鎻忓绠辩爜",
-						type: 'error'
-					})
-					return;
+				// if (this.barcode == "") {
+				// 	this.$refs.uToast.show({
+				// 		title: "璇锋壂鎻忓绠辩爜",
+				// 		type: 'error'
+				// 	})
+				// 	return;
+				// }
+				if(this.orderQty!==this.total){
+						this.$refs.uToast.show({
+							title: "璇锋壂鎻�"+this.orderQty+"鏁伴噺",
+							type: 'error'
+						})
+						return;
 				}
 				var postData = {
 					MainData: {
-						
+						"outProOrderNo":this.proOutNo
 					},
-					DelKeys:[this.barcode]
+					DelKeys:this.listOutBags
 				}
-				this.$u.post('/api/ProOutOrder/OutProductPK?proOutNo='+this.proOutNo,postData).then(
+				this.$u.post('/api/ProOutOrder/OutProScanCodeSync',postData).then(
 					res => {
 						if (res.status) {
 							this.$refs.uToast.show({
 								title: "鎴愬姛",
 								type: "success"
 							})
-							this.barcode = "";
-							this.focus = false;
-							this.address = "";
+							this.reset();
 							this.GetDetail(this.id);
 						} else {
 							this.$refs.uToast.show({
@@ -146,7 +408,19 @@
 		line-height: 34rpx;
 		margin-top: 20rpx;
 	}
+	.item_boxItem {
+		background-color: white;
+		padding: 40rpx 38rpx 28rpx 34rpx;
+		// height: 344rpx;
+		border-radius: 12rpx;
+		font-size: 24rpx;
+		line-height: 17rpx;
+	}
 	.headerstyle {
 		width: 90%;
 	}
+	.search_box {
+		padding: 10rpx 20rpx 20rpx;
+		background-color: white;
+	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3