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/receiveorderoutbound.vue                                                 |  665 ++++++++++++++++
 代码管理/淮安PDA/pages/raworderboxing/raworderboxing.vue                                              |  153 ++-
 代码管理/淮安PDA/pages/stash/TakeStock.vue                                                            |    2 
 代码管理/淮安PDA/pages/index/index.vue                                                                |    7 
 代码管理/淮安PDA/pages.json                                                                           |   34 
 代码管理/淮安PDA/pages/stash/receiveorder.vue                                                         |  181 ++++
 代码管理/淮安PDA/pages/stash/pickingMat.vue                                                           |  496 ++++++++----
 代码管理/淮安PDA/pages/stash/inboundorder.vue                                                         |    2 
 代码管理/淮安PDA/pages/stash/raworderboxing.vue                                                       |  587 ++++++++++++++
 代码管理/淮安PDA/pages/stash/QueryData.vue                                                            |   54 
 代码管理/淮安PDA/pages/stash/index.vue                                                                |  172 ++++
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutStockLockInfoController.cs |    6 
 12 files changed, 2,093 insertions(+), 266 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutStockLockInfoController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutStockLockInfoController.cs"
index 29dec73..b207da1 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutStockLockInfoController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutStockLockInfoController.cs"
@@ -26,7 +26,11 @@
         {
             return Service.GetStockOutboundOrder(saveModel);
         }
-
+        /// <summary>
+        /// 鎷i�夊畬鎴�
+        /// </summary>
+        /// <param name="palletCode"></param>
+        /// <returns></returns>
         [HttpPost, HttpGet, Route("MaterialPick"), AllowAnonymous]
         public WebResponseContent MaterialPick(string palletCode)
         {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages.json" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages.json"
index 3322c96..c91abb8 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages.json"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages.json"
@@ -23,9 +23,9 @@
 		},
 		
 		{
-			"path": "pages/stash/printingink/index",
+			"path": "pages/stash/index",
 			"style": {
-				"navigationBarTitleText": "娌瑰ⅷ浠�",
+				"navigationBarTitleText": "鍔熻兘",
 				"enablePullDownRefresh": false
 			}
 		},
@@ -33,6 +33,13 @@
 			"path": "pages/stash/inboundorder",
 			"style": {
 				"navigationBarTitleText": "缁勭洏",
+				"enablePullDownRefresh": false
+			}
+		},
+		{
+			"path": "pages/stash/raworderboxing",
+			"style": {
+				"navigationBarTitleText": "缁勭洏鍏ュ簱",
 				"enablePullDownRefresh": false
 			}
 		},
@@ -58,9 +65,16 @@
 			}
 		},
 		{
-			"path": "pages/receiveorder/receiveorder",
+			"path": "pages/stash/receiveorder",
 			"style": {
 				"navigationBarTitleText": "鏀惰揣",
+				"enablePullDownRefresh": false
+			}
+		},
+		{
+			"path": "pages/stash/receiveorderoutbound",
+			"style": {
+				"navigationBarTitleText": "鏀惰揣鍗�",
 				"enablePullDownRefresh": false
 			}
 		},
@@ -76,13 +90,6 @@
 			"path": "pages/raworderboxing/inboundorder",
 			"style": {
 				"navigationBarTitleText": "鍏ュ簱璁㈠崟",
-				"enablePullDownRefresh": false
-			}
-		},
-		{
-			"path": "pages/raworderboxing/raworderboxing",
-			"style": {
-				"navigationBarTitleText": "缁勭洏",
 				"enablePullDownRefresh": false
 			}
 		},
@@ -176,13 +183,6 @@
 		//鐢熶骇棰嗘枡鍗�(浠撳簱鎵嬪姩澶囨枡)
 		{
 			"path": "pages/receiveorder/receiveorder",
-			"style": {
-				"navigationBarTitleText": "鏀惰揣鍗�",
-				"enablePullDownRefresh": false
-			}
-		},
-		{
-			"path": "pages/receiveorder/receiveorderoutbound",
 			"style": {
 				"navigationBarTitleText": "鏀惰揣鍗�",
 				"enablePullDownRefresh": false
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/index/index.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/index/index.vue"
index 67f9ff8..c0fb4d7 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/index/index.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/index/index.vue"
@@ -3,7 +3,7 @@
 	<view class="" slot="body">
 		<!-- <view v-for="(item,index) in tree" :key="item.id"> -->
 		<u-grid :col="3">
-			<u-grid-item @tap="clickCoupon(item.url,item.menuId,item.description)" v-for="(item) in tree"
+			<u-grid-item @tap="clickCoupon(item.url,item.menuId,item.description,item.menuName)" v-for="(item) in tree"
 				:key="item.menuId">
 				<u-icon name="home" :size="50"></u-icon>
 				<view class="grid-text">{{item.menuName}}</view>
@@ -115,14 +115,15 @@
 				// return true;
 				return this.datas.find(x => x.text == text);
 			},
-			clickCoupon(url, menuid, warehouseid) {
+			clickCoupon(url, menuid, warehouseid, menuname) {
 				// console.log("clickCoupon")
 				if (this.hasLogin()) {
 					this.$u.route({
 						url: url,
 						params: {
 							menuId: menuid,
-							warehouseId: warehouseid
+							warehouseId: warehouseid,
+							menuName: menuname
 						}
 					})
 				} else {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/raworderboxing/raworderboxing.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/raworderboxing/raworderboxing.vue"
index 69d5602..ae5ce1f 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/raworderboxing/raworderboxing.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/raworderboxing/raworderboxing.vue"
@@ -24,7 +24,7 @@
 						</uni-forms-item>
 					</uni-forms>
 					<uni-list>
-						<uni-list-item direction="column" v-for="item in matTotal" :key="item.matCode">
+						<!-- <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">
@@ -33,7 +33,7 @@
 									</view>
 								</view>
 							</template>
-						</uni-list-item>
+						</uni-list-item> -->
 						<uni-list-item direction="column" v-for="(item,index) in matInfos" :key="item.sn">
 							<template v-slot:body>
 								<view class="uni-list-box">
@@ -41,9 +41,12 @@
 										@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.matCode}}</view>
-										<view class="uni-note">鏁伴噺锛歿{item.matQty}}</view>
+										<view class="uni-title-sub uni-ellipsis-2">閲囪喘鍗曞彿锛歿{item.purchaseOrderNo}}</view>
+										<view class="uni-note">鐗╂枡缂栫爜锛歿{item.materielCode}}</view>
+										<view class="uni-note">鎵规鍙凤細{{item.lotNo}}</view>
+										<view class="uni-note">鏁伴噺锛歿{item.quantity}}</view>
+										<view class="uni-note">鐢熶骇鏃ユ湡锛歿{item.productionDate}}</view>
+										<view class="uni-note">鏈夋晥鏈燂細{{item.effectiveDate}}</view>
 									</view>
 								</view>
 							</template>
@@ -150,7 +153,7 @@
 	export default {
 		data() {
 			return {
-				items: ['缁勭洏', '鍏ュ簱', '鍗曟嵁淇℃伅'],//, '瑙g洏'
+				items: ['缁勭洏', '鍏ュ簱', '鍗曟嵁淇℃伅'], //, '瑙g洏'
 				current: 0,
 				matTotal: [],
 				matInfos: [],
@@ -168,7 +171,8 @@
 				value: "",
 				matInfo: [],
 				value2: "",
-				matTotals:[]
+				matTotals: [],
+				warehouseId:""
 			}
 		},
 		onShow() {},
@@ -176,6 +180,7 @@
 			this.focus = false;
 			this.addressFocus = false;
 			this.orderNo = res.orderNo;
+			this.warehouseId=res.warehouseId;
 			this.label = "鍗曟嵁缂栧彿锛�" + this.orderNo;
 			this.getData();
 		},
@@ -185,7 +190,7 @@
 				innerAudioContext.play();
 			},
 			//瑙g洏
-			releasebox(){
+			releasebox() {
 				if (this.value.length == 0) {
 					this.$refs.uToast.show({
 						title: "璇锋壂鐮�",
@@ -223,7 +228,7 @@
 					}
 				})
 			},
-			releaseboxInput(){
+			releaseboxInput() {
 				this.$nextTick(() => {
 					if (this.value.length == 0) {
 						return;
@@ -267,7 +272,7 @@
 					}
 				})
 			},
-			
+
 			updateFocus() {
 				this.$nextTick(() => {
 					this.materSn = '';
@@ -311,7 +316,7 @@
 				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;
+						this.focus = true;
 						// } else {
 						// 	this.$refs.uToast.show({
 						// 		title: "鎵爜閿欒,璇锋壂鎻忔墭鐩樼爜",
@@ -329,53 +334,93 @@
 						setTimeout(() => {
 							this.materSn = "";
 						}, 10);
-						var matInfo = matSn.split('|');
-
-						if (matInfo.length == 7) {
-							var matObj = {
-								matCode: matInfo[1],
-								matProductionDate: matInfo[3],
-								matQty: matInfo[5],
-								orderNo: matInfo[6],
-								sn: matSn
-							}
-							var temp = this.matInfos.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)
+						this.$u.post('/api/MaterielInfo/CodeAnalysis?serNum=' + matSn, {}).then((res) => {
+							if (res.status) {
+								// debugger
+								// this.matTotal.push({
+								// 	matCode: res.data.materielCode,
+								// 	matQuantity: parseInt(res.data.quantity)
+								// });
+								// this.sns.push(res.data.serialNumber);
+								
+								this.matInfos.splice(0, this.matInfos.length);
+								this.matInfos.push(res.data);
+								if (res.message) {
+									this.$refs.uToast.show({
+										title: res.message,
+										type: "error"
 									})
-								} else {
-									tmp.matQuantity += parseInt(matObj.matQty);
+									// setTimeout(this.updateFocus,200);
+									setTimeout(() => {
+										this.voiceSpeech('../../static/fail.mp3');
+									}, 100);
+									return;
 								}
-								this.sns.push(matSn);
-								this.matInfos.push(matObj);
-								setTimeout(this.updateFocus, 200);
+								// setTimeout(this.updateFocus,200);
 								setTimeout(() => {
 									this.voiceSpeech('../../static/success.mp3');
 								}, 100);
 							} else {
+								// this.innerCode = "";
 								this.$refs.uToast.show({
-									title: "鎵爜閲嶅",
+									title: res.message,
 									type: "error"
 								})
-								setTimeout(this.updateFocus, 200);
+								// setTimeout(this.updateFocus,200);
 								setTimeout(() => {
 									this.voiceSpeech('../../static/fail.mp3');
 								}, 100);
 							}
-						} else {
-							this.$refs.uToast.show({
-								title: "鎵爜閿欒,璇锋壂鎻忔纭唴绠辩爜",
-								type: "error"
-							})
-							setTimeout(this.updateFocus, 200);
-							setTimeout(() => {
-								this.voiceSpeech('../../static/fail.mp3');
-							}, 100);
-						}
+						})
+
+
+						// var matInfo = matSn.split('|');
+
+						// if (matInfo.length == 7) {
+						// 	var matObj = {
+						// 		matCode: matInfo[1],
+						// 		matProductionDate: matInfo[3],
+						// 		matQty: matInfo[5],
+						// 		orderNo: matInfo[6],
+						// 		sn: matSn
+						// 	}
+						// 	var temp = this.matInfos.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(matSn);
+						// 		this.matInfos.push(matObj);
+						// 		setTimeout(this.updateFocus, 200);
+						// 		setTimeout(() => {
+						// 			this.voiceSpeech('../../static/success.mp3');
+						// 		}, 100);
+						// 	} else {
+						// 		this.$refs.uToast.show({
+						// 			title: "鎵爜閲嶅",
+						// 			type: "error"
+						// 		})
+						// 		setTimeout(this.updateFocus, 200);
+						// 		setTimeout(() => {
+						// 			this.voiceSpeech('../../static/fail.mp3');
+						// 		}, 100);
+						// 	}
+						// } else {
+						// 	this.$refs.uToast.show({
+						// 		title: "鎵爜閿欒,璇锋壂鎻忔纭唴绠辩爜",
+						// 		type: "error"
+						// 	})
+						// 	setTimeout(this.updateFocus, 200);
+						// 	setTimeout(() => {
+						// 		this.voiceSpeech('../../static/fail.mp3');
+						// 	}, 100);
+						// }
 					}
 				})
 			},
@@ -383,17 +428,18 @@
 				var postData = {
 					MainData: {
 						"barcode": this.inboundBarcode,
-						"startPoint": this.address
+						"startPoint": this.address,
+						"warehouseId":this.warehouseId
 					}
 				}
-				this.$u.post('/api/Inbound/RequestInbound', postData).then(res => {
+				this.$u.post('/api/Task/RequestInboundTask', postData).then(res => {
 					if (res.status) {
 						uni.$showMsg(res.message);
 						this.inboundBarcode = "";
 						this.address = "";
-						setTimeout(()=>{
+						setTimeout(() => {
 							this.addressFocus = false;
-						},200);
+						}, 200);
 					} else {
 						this.$refs.uToast.show({
 							title: res.message,
@@ -423,7 +469,7 @@
 						sn = item.sn;
 						var tmp = this.matTotal.find(x => x.matCode == item.matCode);
 						if (tmp) {
-							tmp.matQuantity -= parseInt(item.matQty);
+							tmp.matQuantity -= parseInt(item.quantity);
 						} else {
 
 						}
@@ -443,7 +489,7 @@
 					})
 					return;
 				}
-				if (this.sns.length == 0) {
+				if (this.matInfos.length == 0) {
 					this.$refs.uToast.show({
 						title: "璇锋壂鎻忓唴绠辨爣绛�",
 						type: 'error'
@@ -452,9 +498,10 @@
 				}
 				this.$u.post('/api/InboundOrder/MaterielGroup', {
 					MainData: {
-						"pallet_barcode": this.barcode,
+						"palletCode": this.barcode,
 						"orderNo": this.orderNo,
-						"isFull": this.check
+						// "isFull": this.check
+						"warehouseId":this.warehouseId
 					},
 					DelKeys: this.sns
 				}).then(res => {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/QueryData.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/QueryData.vue"
index 93ce629..a98aac8 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/QueryData.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/QueryData.vue"
@@ -1,23 +1,33 @@
 <template>
-	<view >
+	<view>
 		<!-- <uni-forms ref="formData" :modelValue="formData" label-width="120"> -->
 		<uni-forms class="customcss" label-width="120">
-			<uni-forms-item label="鏉$爜淇℃伅">
-				<uni-easyinput type="text" :focus="!barcodefocus" v-model="barcode" placeholder="璇锋壂鎻忔墭鐩樻潯鐮佹垨灏忕伀杞︽潯鐮�" ref='midInput'
+			<uni-forms-item label="鎵樼洏鏉$爜">
+				<uni-easyinput type="text" :focus="!barcodefocus" v-model="barcode" placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput'
 					@input="locationNoinputChange()" />
 			</uni-forms-item>
 		</uni-forms>
-		<uni-list class="footer">
-			<uni-list-item direction="column" v-for="(item,index) in infos" :key="index">
+		<uni-list>
+			<uni-list-item direction="column" v-if="stockInfoBarcode">
 				<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.matName}}</view>
-							<view class="uni-title-sub uni-ellipsis-2">鎵樼洏鍙凤細{{item.barcode}}</view>
-							<view class="uni-title-sub uni-ellipsis-2">鍑哄簱鏁伴噺锛歿{item.quantity}}</view>
-							<view class="uni-title-sub uni-ellipsis-2">閰嶉�佸湴鍧�锛歿{item.address}}</view>
-							<view class="uni-title-sub uni-ellipsis-2">褰撳墠浣嶇疆锛歿{item.currentAddress}}</view>
+							<view class="uni-title-sub uni-ellipsis-2">鎵樼洏鍙凤細{{stockInfoBarcode}}</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>
@@ -32,12 +42,16 @@
 	export default {
 		data() {
 			return {
-				infos: [],
+				// stockInfo: [],
+				stockInfoDetail: [],
 				barcode: '',
 				barcodefocus: false,
+				warehouseId: 0,
+				stockInfoBarcode: '',
 			}
 		},
 		onLoad(res) {
+			this.warehouseId = res.warehouseId;
 		},
 		methods: {
 			locationNoinputChange() {
@@ -45,21 +59,27 @@
 					if (this.barcode != '') {
 						var postData = {
 							MainData: {
-								"barcode": this.barcode
+								"barcode": this.barcode,
+								"warehouseId": this.warehouseId,
 							}
 						};
-						this.$u.post('/api/Carry/GetCarryInfo', postData).then(res => {
+						this.$u.post('/api/StockInfo/StockQueryData', postData).then(res => {
+							this.stockInfoBarcode = "";
+							// this.stockInfo = [];
+							this.stockInfoDetail = [];
 							if (res.status) {
-								this.infos = res.data
+								this.stockInfoBarcode = res.data.palletCode,
+									// this.stockInfo = res.data,
+									this.stockInfoDetail = res.data.details
 							} else {
 								this.$refs.uToast.show({
+									// title: "鏈壘鍒版墭鐩樹俊鎭�",
 									title: res.message,
 									type: "error"
 								})
 							}
 							this.barcode = "";
 						})
-						this.istrue = true;
 					}
 				})
 			}
@@ -140,4 +160,4 @@
 	.footer {
 		// padding-top: 20%;
 	}
-</style>
+</style>
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/TakeStock.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/TakeStock.vue"
index 1704818..a7148fa 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/TakeStock.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/TakeStock.vue"
@@ -32,7 +32,7 @@
 							<checkbox :checked="isPicking" @click="checkedClick">鏄惁鎷i��</checkbox>
 						</uni-forms-item>
 						<uni-forms-item>
-							<button @click="picking" type="primary" style="margin-left: 0px;">鎷i��</button>
+							<button @click="picking" type="primary" style="margin-left: 0px;">鐩樼偣瀹屾垚</button>
 						</uni-forms-item>
 					</uni-forms>
 					<uni-list>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/inboundorder.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/inboundorder.vue"
index 868fe1b..78f61db 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/inboundorder.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/inboundorder.vue"
@@ -28,7 +28,7 @@
 	export default {
 		data() {
 			return {
-				page: "/pages/raworderboxing/raworderboxing?",
+				page: "/pages/stash/raworderboxing?",
 				loadVisible: false,
 				searchValue: "",
 				status: "more",
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/index.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/index.vue"
new file mode 100644
index 0000000..6a85079
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/index.vue"
@@ -0,0 +1,172 @@
+<template>
+	<!-- <u-card :title="title" > -->
+	<view class="" slot="body">
+		<!-- <view v-for="(item,index) in tree" :key="item.id"> -->
+		<u-grid :col="3">
+			<u-grid-item @tap="clickCoupon(item.url)" v-for="(item) in tree" :key="item.menuId">
+				<u-icon name="coupon" :size="50"></u-icon>
+				<view class="grid-text">{{item.menuName}}</view>
+			</u-grid-item>
+		</u-grid>
+		<!-- </view> -->
+		<u-toast ref="uToast" />
+	</view>
+
+	<!-- </u-card> -->
+</template>
+
+<script>
+	import {
+		config
+	} from '../../common/config.js'
+	export default {
+		data() {
+			return {
+				// title: '鎿嶄綔鍔熻兘'
+				datas: [],
+				tree: [],
+				warehouseId: "",
+				version: ""
+			}
+		},
+		onShow() {
+			// uni.getSystemInfo({
+			// 	success: (res) => {
+			// 		this.version = res.appWgtVersion;
+			// 		// console.log(res);
+			// 		//妫�娴嬪綋鍓嶅钩鍙帮紝濡傛灉鏄畨鍗撳垯鍚姩瀹夊崜鏇存柊 
+			// 		if (res.platform == "android") {
+			// 			this.AndroidCheckUpdate();
+			// 		}
+			// 	}
+			// });
+		},
+		onLoad(res) {
+			// var id = this.$mp.query.id;
+			// this.warehouseId = this.$mp.query.warehouseId;
+			this.warehouseId = res.warehouseId;
+			uni.setNavigationBarTitle({
+				title: res.menuName
+			});
+			this.getCurrentTree(res.menuId);
+		},
+		mounted() {
+
+		},
+		methods: {
+			AndroidCheckUpdate: function() {
+				var _this = this;
+				uni.request({
+					url: 'http://10.1.211.101:9004/api/PDA/GetPDAVersion?version=' + this.version,
+					method: 'GET',
+					data: {},
+					success: res => {
+						if (res.data.data) {
+
+							uni.showToast({
+								title: '鏈夋柊鐨勭増鏈彂甯冿紝妫�娴嬪埌鎮ㄧ洰鍓嶄负Wifi杩炴帴锛岀▼搴忓凡鍚姩鑷姩鏇存柊銆傛柊鐗堟湰涓嬭浇瀹屾垚鍚庡皢鑷姩寮瑰嚭瀹夎绋嬪簭銆�',
+								mask: false,
+								duration: 5000,
+								icon: "none"
+							});
+							var dtask = plus.downloader.createDownload(
+								"http://10.1.211.101:9004/api/PDA/DownLoadApp", {},
+								function(d, status) {
+									// 涓嬭浇瀹屾垚 
+									if (status == 200) {
+										plus.runtime.install(plus.io.convertLocalFileSystemURL(d
+											.filename), {}, {}, function(error) {
+											uni.showToast({
+												title: '瀹夎澶辫触',
+												mask: false,
+												duration: 1500
+											});
+										})
+									} else {
+										uni.showToast({
+											title: '鏇存柊澶辫触',
+											mask: false,
+											duration: 1500
+										});
+									}
+								});
+							dtask.start();
+						}
+					},
+					fail: () => {
+						console.log('璇锋眰澶辫触')
+					},
+					complete: () => {}
+				});
+			},
+			getCurrentTree(id) {
+				this.$u.post('/api/Sys_Menu/GetTreeMenuPDAStash?ParentId=' + id, {}).then(result => {
+					this.tree = result;
+				})
+			},
+			getTree(id, data, isRootId) {
+				this.datas.forEach((x) => {
+					if (x.pid == id) {
+						x.lv = data.lv + 1;
+						if (isRootId) {
+							x.rootId = id;
+						}
+						if (!data.children) data.children = [];
+						data.children.push(x);
+						this.getTree(x.id, x, isRootId);
+					}
+				});
+			},
+			getPermission(text) {
+				// return true;
+				return this.datas.find(x => x.text == text);
+			},
+			clickCoupon(url) {
+				// console.log("clickCoupon")
+				if (this.hasLogin()) {
+					// this.$u.route(url)
+					this.$u.route({
+						url: url,
+						params: {
+							warehouseId: this.warehouseId
+						}
+					})
+				} else {
+					this.$t.message.loading('鐧诲綍澶辨晥璇烽噸鏂扮櫥褰�')
+					uni.reLaunch({
+						url: '/pages/login/login'
+					});
+				}
+			},
+			lock() {
+				console.log("lock")
+				if (this.hasLogin()) {
+					this.$u.route("pages/feeding/feeding")
+				} else {
+					this.$t.message.loading('鐧诲綍澶辨晥璇烽噸鏂扮櫥褰�')
+					uni.reLaunch({
+						url: '/pages/login/login'
+					});
+				}
+			},
+
+			//鍒ゆ柇鏄惁鐧诲綍
+			hasLogin() {
+				let haslogin = uni.getStorageSync('jo_user')
+				if (haslogin == null || haslogin == "") {
+					return false
+				} else {
+					return true
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.grid-text {
+		font-size: 28rpx;
+		margin-top: 4rpx;
+		color: $u-type-info;
+	}
+</style>
\ No newline at end of file
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
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"
new file mode 100644
index 0000000..ea55d1b
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/raworderboxing.vue"
@@ -0,0 +1,587 @@
+<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="180">
+						<uni-forms-item :label="label">
+						</uni-forms-item>
+						<uni-forms-item label="鎵樼洏鏉$爜:">
+							<uni-easyinput type="text" placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' :focus="!focus"
+								v-model="barcode" @input="barcodeInput" />
+						</uni-forms-item>
+						<uni-forms-item label="鍐呯鏍囩:">
+							<uni-easyinput type="text" placeholder="璇锋壂鎻忓唴绠辨爣绛�" ref='midInput' :focus="focus"
+								v-model="materSn" @input="snInput" />
+						</uni-forms-item>
+						<uni-forms-item label="鍒濆瀵垮懡:" v-if="Test">
+							<uni-easyinput type="text" placeholder="璇疯緭鍏ュ垵濮嬪鍛�" ref='midInput' 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>
+						</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="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.purchaseOrderNo}}</view>
+										<view class="uni-note">鐗╂枡缂栫爜锛歿{item.materielCode}}</view>
+										<view class="uni-note">鎵规鍙凤細{{item.lotNo}}</view>
+										<view class="uni-note">鏁伴噺锛歿{item.quantity}}</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 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="inputChangebarcode" />
+						</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 v-if="current === 2" class="headerstyle">
+				<view class="itemstyle">
+					<uni-list :border="true">
+						<uni-list-item direction="column" v-for="(item,index) in orderInfo" :key="index">
+							<template v-slot:body>
+								<view class="uni-list-box">
+									<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 style="font-size: 18px;">缁勭洏鏁伴噺锛歿{item.receiptQuantity}}</view>
+									</view>
+								</view>
+							</template>
+						</uni-list-item>
+					</uni-list>
+				</view>
+			</view>
+			<view v-if="current === 3" class="headerstyle">
+				<view class="itemstyle">
+					<uni-forms label-width="120">
+						<uni-forms-item>
+							<uni-easyinput type="text" @input="releaseboxInput" v-model="value" placeholder="璇锋壂鐮�"
+								ref='midInput' :focus="true" />
+						</uni-forms-item>
+						<uni-forms-item>
+							<button @click="releasebox" type="primary" size="default">瑙g洏</button>
+						</uni-forms-item>
+					</uni-forms>
+					<uni-list>
+						<uni-list-item direction="column" v-if="value2">
+							<template v-slot:body>
+								<view class="uni-list-box">
+									<view class="uni-content">
+										<view class="uni-title-sub uni-ellipsis-2">鎵樼洏鍙凤細{{value2}}</view>
+									</view>
+								</view>
+							</template>
+						</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>
+				</view>
+			</view>
+		</view>
+		<u-toast ref="uToast" />
+	</view>
+</template>
+
+<script>
+	const innerAudioContext = uni.createInnerAudioContext();
+	export default {
+		data() {
+			return {
+				items: ['缁勭洏', '鍏ュ簱', '鍗曟嵁淇℃伅'], //, '瑙g洏'
+				current: 0,
+				matTotal: [],
+				matInfos: [],
+				orderNo: "",
+				label: "",
+				orderInfo: [],
+				focus: false,
+				barcode: "",
+				materSn: "",
+				Initiallife: 1000,
+				sns: [],
+				addressFocus: false,
+				inboundBarcode: "",
+				address: "",
+				check: true,
+				value: "",
+				matInfo: [],
+				value2: "",
+				matTotals: [],
+				warehouseId: "",
+				Test: false,
+				Testcheck: false,
+			}
+		},
+		onShow() {},
+		onLoad(res) {
+			this.focus = false;
+			this.addressFocus = false;
+			this.orderNo = res.orderNo;
+			this.warehouseId = res.warehouseId;
+			this.Test = this.warehouseId == 1; //鎶�1鏀规垚娴嬭瘯鏋朵粨搴撳尯ID
+			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(() => {
+					this.materSn = '';
+					if (!this.focus) {
+						this.focus = true;
+					}
+				});
+			},
+			barcodeFocus() {
+				debugger
+				this.barcode = '';
+				if (this.focus) {
+					this.focus = false;
+				}
+			},
+			getData() {
+				var postData = {
+					MainData: {
+						orderNo: this.orderNo
+					},
+				}
+				this.$u.post('/api/InboundOrderDetail/GetInboundOrderDetails', postData).then((res) => {
+					if (res.status) {
+						this.orderInfo = res.data;
+						if (this.orderInfo.length > 3) {
+							this.loadVisible = true;
+						}
+					}
+				})
+			},
+			onClickItem(e) {
+				this.focus = false;
+				this.addressFocus = false;
+				if (this.current !== e.currentIndex) {
+					this.current = e.currentIndex;
+					if (this.current == 2) {
+						this.getData();
+					}
+				}
+			},
+			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"
+						// 	})
+						// }
+					}
+				})
+			},
+			snInput() {
+				this.$nextTick(() => {
+					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) {
+								// debugger
+								// this.matTotal.push({
+								// 	matCode: res.data.materielCode,
+								// 	matQuantity: parseInt(res.data.quantity)
+								// });
+								// this.sns.push(res.data.serialNumber);
+
+								this.matInfos.splice(0, this.matInfos.length);
+								this.matInfos.push(res.data);
+								if (res.message) {
+									this.$refs.uToast.show({
+										title: res.message,
+										type: "error"
+									})
+									// setTimeout(this.updateFocus,200);
+									setTimeout(() => {
+										this.voiceSpeech('../../static/fail.mp3');
+									}, 100);
+									return;
+								}
+								// setTimeout(this.updateFocus,200);
+								setTimeout(() => {
+									this.voiceSpeech('../../static/success.mp3');
+								}, 100);
+							} else {
+								// this.innerCode = "";
+								this.$refs.uToast.show({
+									title: res.message,
+									type: "error"
+								})
+								// setTimeout(this.updateFocus,200);
+								setTimeout(() => {
+									this.voiceSpeech('../../static/fail.mp3');
+								}, 100);
+							}
+						})
+
+
+						// var matInfo = matSn.split('|');
+
+						// if (matInfo.length == 7) {
+						// 	var matObj = {
+						// 		matCode: matInfo[1],
+						// 		matProductionDate: matInfo[3],
+						// 		matQty: matInfo[5],
+						// 		orderNo: matInfo[6],
+						// 		sn: matSn
+						// 	}
+						// 	var temp = this.matInfos.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(matSn);
+						// 		this.matInfos.push(matObj);
+						// 		setTimeout(this.updateFocus, 200);
+						// 		setTimeout(() => {
+						// 			this.voiceSpeech('../../static/success.mp3');
+						// 		}, 100);
+						// 	} else {
+						// 		this.$refs.uToast.show({
+						// 			title: "鎵爜閲嶅",
+						// 			type: "error"
+						// 		})
+						// 		setTimeout(this.updateFocus, 200);
+						// 		setTimeout(() => {
+						// 			this.voiceSpeech('../../static/fail.mp3');
+						// 		}, 100);
+						// 	}
+						// } else {
+						// 	this.$refs.uToast.show({
+						// 		title: "鎵爜閿欒,璇锋壂鎻忔纭唴绠辩爜",
+						// 		type: "error"
+						// 	})
+						// 	setTimeout(this.updateFocus, 200);
+						// 	setTimeout(() => {
+						// 		this.voiceSpeech('../../static/fail.mp3');
+						// 	}, 100);
+						// }
+					}
+				})
+			},
+			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 = "";
+						this.address = "";
+						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"
+					})
+				})
+			},
+			inputChangebarcode() {
+				this.addressFocus = false;
+				this.$nextTick(function(x) {
+					if (this.inboundBarcode != '') {
+						this.addressFocus = true;
+					}
+				})
+			},
+			deleteList(res) {
+				var sn = '';
+				this.matInfos.map((item, index) => {
+					if (item.sn == res) {
+						this.matInfos.splice(index, 1);
+						sn = item.sn;
+						var tmp = this.matTotal.find(x => x.matCode == item.matCode);
+						if (tmp) {
+							tmp.matQuantity -= parseInt(item.quantity);
+						} else {
+
+						}
+					}
+				})
+				this.sns.map((item, index) => {
+					if (item == res) {
+						this.sns.splice(index, 1);
+					}
+				})
+			},
+			submit() {
+				if (this.barcode == "") {
+					this.$refs.uToast.show({
+						title: "璇锋壂鎻忔墭鐩樻潯鐮�",
+						type: 'error'
+					})
+					return;
+				}
+				if (this.matInfos.length == 0) {
+					this.$refs.uToast.show({
+						title: "璇锋壂鎻忓唴绠辨爣绛�",
+						type: 'error'
+					})
+					return;
+				}
+				if (this.Test) {
+					if (!this.Testcheck) {
+						this.Testcheck = true;
+						this.$refs.uToast.show({
+							title: "璇风‘璁ゅ垵濮嬪鍛�",
+							type: 'error'
+						})
+						return;
+					}
+				}
+				this.$u.post('/api/InboundOrder/MaterielGroup', {
+					MainData: {
+						"palletCode": this.barcode,
+						"orderNo": this.orderNo,
+						"initiallife":this.Initiallife,
+						// "isFull": this.check
+						"warehouseId": this.warehouseId
+					},
+					DelKeys: this.sns
+				}).then(res => {
+					this.Testcheck = false;
+					if (res.status) {
+						this.$refs.uToast.show({
+							title: "缁勭洏鎴愬姛",
+							type: "success"
+						})
+						this.focus = false;
+						this.barcode = "";
+						this.matInfos = [];
+						this.sns = [];
+						this.matTotal = [];
+					} else {
+						this.$refs.uToast.show({
+							title: res.message,
+							type: "error"
+						})
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	@import '@/common/uni-ui.scss';
+
+	.content {
+		display: flex;
+		height: 150px;
+	}
+
+	.content-text {
+		font-size: 14px;
+		color: #666;
+	}
+
+	.itemstyle {
+		margin-top: 30px;
+		margin-left: 5%;
+	}
+
+	.headerstyle {
+		width: 90%;
+	}
+</style>
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/receiveorder.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/receiveorder.vue"
new file mode 100644
index 0000000..29449ab
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/receiveorder.vue"
@@ -0,0 +1,181 @@
+<template>
+	<view>
+		<u-sticky>
+			<view style="background-color: #ffffff;">
+				<uni-search-bar @confirm="search" v-model="searchValue"></uni-search-bar>
+			</view>
+		</u-sticky>
+		<uni-list :border="true">
+			<uni-list-item direction="column" clickable @click="groupClick(item.receiveOrderNo)" link
+				:to="page+item.receiveOrderNo+'&receiveOrderId='+item.receiveOrderId" v-for="item in allReceivingOrders"
+				:key="item.receiveOrderNo">
+				<template v-slot:body>
+					<uni-group margin-top="20">
+						<view> 鏀惰揣鍗曞彿:{{item.receiveOrderNo}} </view>
+						<!-- <view> 璁㈠崟绫诲瀷:{{item.receiveOrderType}} </view>
+						<view> 璁㈠崟鐘舵��:{{item.receiveOrderStatus}} </view> -->
+						<view> 渚涘簲鍟嗕唬鍙�:{{item.suppliersId}} </view>
+					</uni-group>
+				</template>
+			</uni-list-item>
+
+		</uni-list>
+		<uni-load-more :status="status" v-if="loadVisible"></uni-load-more>
+
+		<u-back-top :scroll-top="scrollTop" top="400"></u-back-top>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				page: "/pages/stash/receiveorderoutbound?orderNo=",
+				loadVisible: false,
+				searchValue: "",
+				status: "more",
+				allReceivingOrders: [],
+				pageNo: 1,
+				scrollTop: 0
+			}
+		},
+		onLoad(res) {
+			this.getData();
+		},
+		onPageScroll(e) {
+			this.scrollTop = e.scrollTop;
+		},
+		onReachBottom() {
+			this.pageNo += 1;
+			this.getData();
+		},
+		methods: {
+			search(res) {
+				this.pageNo = 1;
+				this.getData();
+			},
+			groupClick() {
+
+			},
+			getData() {
+				var postData = {
+					MainData: {
+						orderNo: this.searchValue,
+						pageNo: this.pageNo
+					},
+				}
+				this.$u.post('/api/ReceiveOrder/GetReceiveOrders', postData).then((res) => {
+					if (res.status) {
+						if (res.data.length > 0) {
+							if (this.searchValue == '') {
+								this.allReceivingOrders = this.allReceivingOrders.concat(res.data);
+								// this.allReceivingOrders = res.data;
+								if (this.allReceivingOrders.length > 3) {
+									this.loadVisible = true;
+								} else {
+									this.loadVisible = false;
+								}
+							} else {
+								// this.allReceivingOrders = res.data;
+								if (postData.MainData.pageNo == 1) {
+									this.allReceivingOrders = [];
+								}
+								this.allReceivingOrders = this.allReceivingOrders.concat(res.data);
+								if (this.allReceivingOrders.length > 3) {
+									this.loadVisible = true;
+								} else {
+									this.loadVisible = false;
+								}
+							}
+						} else {
+							this.status = 'noMore';
+							//this.allReceivingOrders = [];
+							this.loadVisible = true;
+						}
+
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<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: 50%;
+	}
+</style>
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/receiveorderoutbound.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/receiveorderoutbound.vue"
new file mode 100644
index 0000000..dc7561a
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/receiveorderoutbound.vue"
@@ -0,0 +1,665 @@
+<template>
+	<view>
+		<uni-segmented-control :current="current" :values="items" @clickItem="onClickItem">
+		</uni-segmented-control>
+		<view v-if="current === 0" class="headerstyle">
+			<view class="itemstyle">
+				<uni-forms style="margin-left: 2%;margin-top: 20px;" label-width="180">
+					<uni-forms-item :label="label" style="margin-top: -20px;"></uni-forms-item>
+					<!-- <uni-forms-item label="鍗曟嵁绫诲瀷锛氱敓浜ч鏂欏崟" style="margin-top: -20px;"></uni-forms-item> -->
+					<uni-forms-item label="鍐呯鐮侊細" style="margin-top: -20px;">
+						<uni-easyinput type="text" placeholder="璇锋壂鎻忓唴绠辩爜" ref='midInput' :focus="focus"
+							v-model="innerCode" @input="innercodeInput" />
+					</uni-forms-item>
+					<uni-forms-item :label="PurchaseOrderNo" style="margin-top: -20px;"></uni-forms-item>
+					<uni-forms-item :label="matCode" style="margin-top: -20px;"></uni-forms-item>
+					<uni-forms-item :label="LotNo" style="margin-top: -20px;"></uni-forms-item>
+					<uni-forms-item :label="ProductionDate" style="margin-top: -20px;"></uni-forms-item>
+					<uni-forms-item :label="EffectiveDate" style="margin-top: -20px;"></uni-forms-item>
+					<uni-forms-item :label="orderQty" style="margin-top: -20px;"></uni-forms-item>
+					<uni-forms-item :label="remaindQty" style="margin-top: -20px;">
+						<uni-easyinput type="text" placeholder="璇疯緭鍏ュ疄闄呮暟閲�" v-model="Quantity" ref='midInput' />
+					</uni-forms-item>
+				</uni-forms>
+				<uni-forms-item>
+					<button @click="submit" type="primary" size="default" style="margin-top: 2%;">纭鏀惰揣</button>
+				</uni-forms-item>
+				<uni-forms-item>
+					<button @click="submit1" type="primary" size="default" style="margin-top: 2%;">瀹屾垚鏀惰揣</button>
+				</uni-forms-item>
+			</view>
+		</view>
+		<view v-if="current === 1" class="headerstyle">
+			<view class="itemstyle">
+				<u-sticky>
+					<!-- <view style="background-color: #ffffff;">
+						<uni-search-bar @confirm="search" v-model="searchValue"></uni-search-bar>
+					</view> -->
+				</u-sticky>
+				<!-- <uni-forms label-width="180">
+					<uni-forms-item label="鍖哄煙">
+						<uni-data-select v-if="show" v-model="value" :localdata="range"></uni-data-select>
+					</uni-forms-item>
+					<uni-forms-item label="妤煎眰">
+						<uni-data-select v-if="show" v-model="floor" :localdata="floorrange"></uni-data-select>
+					</uni-forms-item>
+					<uni-forms-item label="鍑哄簱鍖哄煙">
+						<uni-data-select v-if="show" v-model="endType" :localdata="endTypeRange"></uni-data-select>
+					</uni-forms-item>
+				</uni-forms> -->
+				<uni-list :border="true">
+					<uni-list-item direction="column" v-for="(item,index) in orderInfo" :key="item.dtlId">
+						<template v-slot:body>
+							<view class="uni-list-box">
+								<!-- <button class="button" type="primary" style="position: absolute;right: 1%;" size="mini"
+									@click="inputDialogToggle(item.matCode)"><text
+										class="button-text">鍑哄簱</text></button> -->
+								<!-- <button type="primary" style="position: absolute;right: 1%;" size="mini"
+									@click="outbound(item.matCode)">鍑哄簱</button> -->
+								<view class="uni-content">
+									<view style="font-size: 18px;">鏀惰揣鍗曞彿锛歿{orderNo}}</view>
+									<view style="font-size: 18px;">閲囪喘鍗曞彿锛歿{item.purchaseOrderNo}}</view>
+									<view style="font-size: 18px;">鐗╂枡缂栧彿锛歿{item.materielCode}}</view>
+									<view style="font-size: 18px;">鎵规鍙凤細{{item.lotNo}}</view>
+									<view style="font-size: 18px;">鏀惰揣鏁伴噺锛歿{item.receivedQuantity}}</view>
+									<view style="font-size: 18px;">鏄惁璐ㄦ锛歿{item.ifInspection==1?"鏄�":"鍚�"}}</view>
+								</view>
+							</view>
+						</template>
+					</uni-list-item>
+				</uni-list>
+			</view>
+			<view>
+				<!-- 杈撳叆妗嗙ず渚� -->
+				<uni-popup ref="inputDialog" type="dialog">
+					<uni-popup-dialog ref="inputClose" mode="input" title="杈撳叆鍐呭" :value="outNum" placeholder="璇疯緭鍏ュ唴瀹�"
+						@confirm="outbound"></uni-popup-dialog>
+				</uni-popup>
+			</view>
+		</view>
+		<view v-if="current === 2" class="headerstyle">
+			<view class="itemstyle">
+				<uni-forms label-width="120">
+					<uni-forms-item label="妤煎眰">
+						<uni-data-select v-if="show" v-model="printfloor"
+							:localdata="printfloorrange"></uni-data-select>
+					</uni-forms-item>
+					<uni-forms-item label="鍐呯鏍囩">
+						<uni-easyinput type="text" :focus="tagFocus" v-model="tag" placeholder="璇锋壂鎻忓唴绠辨爣绛�" ref='midInput'
+							@input="tagInput" />
+					</uni-forms-item>
+					<uni-forms-item :label="tagmatCode"></uni-forms-item>
+					<uni-forms-item :label="tagmatName"></uni-forms-item>
+					<uni-forms-item :label="tagQty"></uni-forms-item>
+					<uni-forms-item label="鎷嗗垎鏁伴噺">
+						<uni-easyinput type="number" v-model="number" placeholder="璇疯緭鍏ユ媶鍒嗘暟閲�" ref='midInput'
+							:focus="numberFocus" />
+					</uni-forms-item>
+					<uni-forms-item>
+						<button @click="printTag" type="primary" size="default" style="margin-top: 2%;">鎵撳嵃鏍囩</button>
+					</uni-forms-item>
+				</uni-forms>
+			</view>
+		</view>
+		<view v-if="current === 3" 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 label="鍦板潃鏉$爜">
+						<uni-easyinput type="text" v-model="address" placeholder="璇锋壂鎻忓湴鍧�鏉$爜" ref='midInput'
+							:focus="istrue" />
+					</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 v-if="current === 4" class="headerstyle">
+			<view class="itemstyle">
+				<uni-forms label-width="120">
+					<uni-forms-item>
+						<uni-easyinput type="text" @input="releaseboxInput" v-model="releasevalue" placeholder="璇锋壂鐮�"
+							ref='midInput' :focus="releasefocus" />
+					</uni-forms-item>
+					<uni-forms-item>
+						<button @click="releasebox" type="primary" size="default" style="margin-top: 2%;">瑙g洏</button>
+					</uni-forms-item>
+				</uni-forms>
+				<uni-list>
+					<uni-list-item direction="column" v-if="value2">
+						<template v-slot:body>
+							<view class="uni-list-box">
+								<view class="uni-content">
+									<view class="uni-title-sub uni-ellipsis-2">鎵樼洏鍙凤細{{value2}}</view>
+								</view>
+							</view>
+						</template>
+					</uni-list-item>
+					<uni-list-item direction="column" v-for="item in matTotals" :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>
+			</view>
+		</view>
+		<u-toast ref="uToast" />
+	</view>
+</template>
+
+<script>
+	import {
+		config
+	} from '../../common/config';
+	const innerAudioContext = uni.createInnerAudioContext();
+	export default {
+		data() {
+			return {
+				show: true,
+				items: ['鎵弿', '鏄庣粏'], //, '鎷嗗垎', '鍏ュ簱', '瑙g洏'
+				current: 0,
+				orderNo: "",
+				orderInfo: [],
+				label: "",
+				innerCode: "",
+				PurchaseOrderNo: "閲囪喘鍗曞彿锛�",
+				matCode: "鐗╂枡缂栫爜锛�",
+				LotNo: "鐗╂枡鎵规锛�",
+				orderQty: "璁㈠崟鏁伴噺锛�",
+				Quantity: "",
+				ProductionDate: "鐢熶骇鏃ユ湡锛�",
+				EffectiveDate: "鏈夋晥鏃ユ湡锛�",
+
+				matName: "鐗╂枡鍚嶇О锛�",
+				currentQty: "宸叉壂鏁伴噺锛�",
+				scanQty: "绱鏁伴噺锛�",
+				remaindQty: "瀹為檯鏁伴噺锛�",
+				tagFocus: true,
+				numberFocus: false,
+				focus: true,
+				tag: "",
+				number: "",
+				tagmatCode: "鐗╂枡缂栫爜锛�",
+				tagmatName: "鐗╂枡鍚嶇О锛�",
+				tagQty: "鍖呰鏁伴噺锛�",
+				value: "",
+				range: [],
+				floor: "",
+				floorrange: [],
+				printfloor: "",
+				printfloorrange: [],
+				barcode: "",
+				address: "",
+				istrue: false,
+				outNum: 0,
+				itemCode: "",
+				releasefocus: true,
+				releasevalue: "",
+				matInfo: [],
+				matTotals: [],
+				value2: "",
+				searchValue: "",
+				endType: "",
+				endTypeRange: [],
+				sns: "",
+				receiveOrderId:0,
+			}
+		},
+
+		onLoad(res) {
+			this.range = config.warehouseRange;
+			this.endTypeRange = config.outboundAreaRange;
+			if (config.outboundArea) {
+				this.endType = config.outboundArea;
+			}
+			if (config.warehouseArea) {
+				this.value = config.warehouseArea;
+			}
+			this.orderNo = res.orderNo;
+			this.receiveOrderId=res.receiveOrderId;
+			this.label = "鏀惰揣鍗曞彿锛�" + this.orderNo;
+			this.getData();
+		},
+		mounted() {
+			this.printfloorrange = config.printFloorRange;
+			this.floorrange = config.outboundFloorRange;
+			if (config.outboundFloor) {
+				this.floor = config.outboundFloor;
+			}
+			if (config.printFloor) {
+				this.printfloor = config.printFloor;
+			}
+		},
+		methods: {
+			inputDialogToggle(itemCode) {
+				this.itemCode = itemCode;
+				this.$refs.inputDialog.open()
+			},
+			voiceSpeech(src) {
+				innerAudioContext.src = src; // '../../static/success.mp3';
+				innerAudioContext.play();
+			},
+			search() {
+				this.getData();
+			},
+			releasebox() {
+				if (this.releasevalue.length == 0) {
+					this.$refs.uToast.show({
+						title: "璇锋壂鐮�",
+						type: "error"
+					})
+					return;
+				}
+				var param;
+				var matInfo = this.releasevalue.split('|');
+				if (matInfo.length == 7) {
+					param = {
+						MainData: {
+							"innerCode": this.releasevalue
+						}
+					}
+				} else {
+					param = {
+						MainData: {
+							"barcode": this.releasevalue
+						}
+					}
+				}
+				this.$u.post('/api/StockOperate/ReleaseAllBox', param).then(resdt => {
+					if (resdt.status) {
+						uni.$showMsg('瑙g洏鎴愬姛!')
+						this.releasevalue = "";
+						this.matInfo = [];
+						this.matTotals = [];
+						this.value2 = "";
+					} else {
+						this.$refs.uToast.show({
+							title: resdt.message,
+							type: "error"
+						})
+					}
+				})
+			},
+			releaseboxInput() {
+				this.$nextTick(() => {
+					if (this.releasevalue.length == 0) {
+						return;
+					}
+					var matInfo = this.releasevalue.split('|');
+					this.matInfo = [];
+					if (matInfo.length == 7) {
+						this.$u.post('/api/StockOperate/GetStockInfoByInnerCode', {
+							MainData: {
+								"innerCode": this.releasevalue
+							}
+						}).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.releasevalue
+							}
+						}).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() {
+				this.$nextTick(() => {
+					this.innerCode = '';
+					if (!this.focus) {
+						this.focus = true;
+					}
+				});
+			},
+			submit() {
+				if (this.sns == "") {
+					this.$refs.uToast.show({
+						title: "璇锋壂鎻忓唴绠辨爣绛�",
+						type: 'error'
+					})
+					return;
+				}
+				if (this.Quantity == "") {
+					this.$refs.uToast.show({
+						title: "璇疯緭鍏ュ疄闄呮暟閲�",
+						type: 'error'
+					})
+					return;
+				}
+				this.$u.post('/api/ReceiveOrderDetail/AddReceiveOrderDetail?serNum=' + this.sns + '&orderNo=' + this
+					.orderNo, {}).then(res => {
+					if (res.status) {
+						this.$refs.uToast.show({
+							title: "纭鏀惰揣鎴愬姛",
+							type: "success"
+						})
+						this.sns = "";
+					} else {
+						this.$refs.uToast.show({
+							title: res.message,
+							type: "error"
+						})
+					}
+				})
+			},
+			submit1() {
+				this.$u.post('/api/ReceiveOrder/FeedbackReceiveOrder?orderId=' + this
+					.receiveOrderId, {}).then(x => {
+					if (x.status) {
+						this.$refs.uToast.show({
+							title: "瀹屾垚鏀惰揣鎴愬姛",
+							type: "success"
+						})
+						this.sns = "";
+					} else {
+						this.$refs.uToast.show({
+							title: x.message,
+							type: "error"
+						})
+					}
+				})
+			},
+			inbound() {
+				if (this.barcode.length == 0) {
+					this.$refs.uToast.show({
+						title: "璇锋壂鎻忔墭鐩樺彿",
+						type: "error"
+					})
+					return;
+				}
+				if (this.address.length == 0) {
+					this.$refs.uToast.show({
+						title: "璇锋壂鎻忓湴鍧�鏉$爜",
+						type: "error"
+					})
+					return;
+				}
+				var postData = {
+					MainData: {
+						"barcode": this.barcode,
+						"startPoint": this.address
+					}
+				}
+				this.$u.post('/api/Inbound/RequestInbound', postData).then(res => {
+					if (res.status) {
+						uni.$showMsg(res.message);
+						this.barcode = "";
+						this.address = "";
+						this.istrue = false;
+					} else {
+						this.$refs.uToast.show({
+							title: res.message,
+							type: "error"
+						})
+					}
+				}).catch(err => {
+					this.$refs.uToast.show({
+						title: err.message,
+						type: "error"
+					})
+				})
+			},
+			inputChangebarcode() {
+				this.istrue = false;
+				this.$nextTick(function(x) {
+					if (this.barcode != '') {
+						this.istrue = true;
+					}
+				})
+			},
+			onClickItem(e) {
+				this.focus = false;
+				this.addressFocus = false;
+				if (this.current !== e.currentIndex) {
+					this.current = e.currentIndex;
+					if (this.current == 1) {
+						this.getData();
+					}
+				}
+			},
+			getData() {
+				var postData = {
+					MainData: {
+						orderNo: this.orderNo,
+						searchValue: this.searchValue
+					},
+				}
+				this.$u.post('/api/ReceiveOrderDetail/GetReceiveOrderInfos', postData).then((res) => {
+					if (res.status) {
+						this.orderInfo = res.data;
+						if (this.orderInfo.length > 3) {
+							this.loadVisible = true;
+						}
+					}
+				})
+			},
+			innercodeInput() {
+				this.$nextTick(() => {
+					if (this.innerCode == "") {
+						return;
+					}
+					var innerCode = this.innerCode;
+					setTimeout(() => {
+						this.innerCode = "";
+					}, 10);
+
+					this.$u.post('/api/MaterielInfo/CodeAnalysis?serNum=' + innerCode, {}).then((res) => {
+						if (res.status) {
+							this.sns = res.data.serialNumber;
+							// this.matInfos.splice(0, this.matInfos.length);
+							// this.matInfos.push(res.data);
+							this.matCode = "鐗╂枡缂栫爜锛�" + res.data.materielCode;
+							this.LotNo = "鐗╂枡鎵规锛�" + res.data.lotNo;
+							this.PurchaseOrderNo = "閲囪喘鍗曞彿锛�" + res.data.purchaseOrderNo;
+							this.EffectiveDate = "鏈夋晥鏃ユ湡锛�" + res.data.effectiveDate;
+							this.ProductionDate = "鐢熶骇鏃ユ湡锛�" + res.data.productionDate;
+							this.orderQty = "璁㈠崟鏁伴噺锛�" + res.data.quantity;
+							this.Quantity = res.data.quantity;
+							if (res.message) {
+								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);
+						}
+					})
+				})
+			},
+			tagInput() {
+				this.$nextTick(() => {
+					var tagInfos = this.tag.split('|');
+					if (tagInfos.length == 7) {
+						this.tagmatCode = "鐗╂枡缂栫爜锛�" + tagInfos[1];
+						this.tagQty = "鐗╂枡鏁伴噺锛�" + tagInfos[5];
+					} else {
+						this.$refs.uToast.show({
+							title: "鍐呯鐮佹壂鎻忛敊璇�",
+							type: "error"
+						})
+					}
+					this.numberFocus = true;
+				})
+			},
+			printTag() {
+				if (this.tag == "") {
+					this.$refs.uToast.show({
+						title: "璇锋壂鎻忓唴绠辨爣绛�",
+						type: "error"
+					})
+					return;
+				}
+				if (this.number <= 0) {
+					this.$refs.uToast.show({
+						title: "璇疯緭鍏ユ暟閲�",
+						type: "error"
+					})
+					return;
+				}
+				if (this.printfloor.length <= 0) {
+					this.$refs.uToast.show({
+						title: "璇烽�夋嫨妤煎眰",
+						type: "error"
+					})
+					return;
+				}
+				var postData = {
+					MainData: {
+						tag: this.tag,
+						number: this.number,
+						floor: this.printfloor
+					}
+				}
+				this.$u.post('/api/StockOperate/PrintTag', postData).then(res => {
+					if (res.status) {
+						this.$refs.uToast.show({
+							title: "鎵撳嵃鎴愬姛",
+							type: "success"
+						})
+						this.tagmatCode = "鐗╂枡缂栫爜锛�";
+						this.tagQty = "鍖呰鏁伴噺锛�";
+						this.tag = "";
+					} else {
+						this.$refs.uToast.show({
+							title: res.message,
+							type: "error"
+						})
+					}
+				})
+			},
+			outbound(val) {
+				if (this.floor == "") {
+					this.$refs.uToast.show({
+						title: "璇烽�夋嫨妤煎眰",
+						type: "error"
+					})
+					return;
+				}
+				if (this.value == "") {
+					this.$refs.uToast.show({
+						title: "璇烽�夋嫨鍖哄煙",
+						type: "error"
+					})
+					return;
+				}
+				if (this.endType == "") {
+					this.$refs.uToast.show({
+						title: "璇烽�夋嫨鍑哄簱鍖哄煙",
+						type: "error"
+					})
+					return;
+				}
+				var postData = {
+					MainData: {
+						matCode: this.itemCode,
+						orderNo: this.orderNo,
+						system: this.value,
+						floor: this.floor,
+						outNum: val,
+						endType: this.endType
+					}
+				}
+				this.$u.post('/api/ErpOrder/ReceiveOrderOutbound', postData).then(res => {
+					if (res.status) {
+						this.$refs.uToast.show({
+							title: "鎴愬姛",
+							type: "success"
+						})
+						this.getData();
+					} else {
+						this.$refs.uToast.show({
+							title: res.message,
+							type: "error"
+						})
+					}
+				})
+			}
+		}
+	}
+</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>
\ No newline at end of file

--
Gitblit v1.9.3