From 0ea4a390d09679425cf3ad217a38a9e717641c95 Mon Sep 17 00:00:00 2001
From: wankeda <Administrator@DESKTOP-HAU3ST3>
Date: 星期一, 14 四月 2025 16:23:12 +0800
Subject: [PATCH] 增加串行库位任务下发机制防呆

---
 代码管理/AGVjiaoliaoPDA/pages/materielGroup/OutboundTask.vue |  432 +++++++++++++++++++++--------------------------------
 1 files changed, 169 insertions(+), 263 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/AGVjiaoliaoPDA/pages/materielGroup/OutboundTask.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/AGVjiaoliaoPDA/pages/materielGroup/OutboundTask.vue"
index 7276309..e27abef 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/AGVjiaoliaoPDA/pages/materielGroup/OutboundTask.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/AGVjiaoliaoPDA/pages/materielGroup/OutboundTask.vue"
@@ -1,286 +1,192 @@
-<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>
-							<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.orderNo}}</view>
-										<view class="uni-note">鐗╂枡缂栫爜锛歿{item.matCode}}</view>
-										<view class="uni-note">鏁伴噺锛歿{item.matQty}}</view>
-									</view>
-								</view>
-							</template>
-						</uni-list-item>
-					</uni-list>
-				</view>
-			</view> -->
-			<view v-if="current === 0" class="headerstyle">
-				<view class="itemstyle">
-					<uni-forms label-width="120">
-						<uni-forms-item label="缂撳瓨鏋剁紪鍙�">
-							<uni-easyinput type="text" v-model="stationcode" placeholder="璇锋壂鐬勭紦瀛樻灦缂栧彿" ref='midInput':focus="addressFocus"/>
-						</uni-forms-item>
-<!-- 						<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="PalletCode" 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>
+	<template>
+		<view>
+			<uni-segmented-control :current="current" :values="items" @clickItem="onClickItem">
+			</uni-segmented-control>
+			<view class="content">
+				<view v-if="current === 0" class="headerstyle">
+					<view class="itemstyle">
+						<uni-forms label-width="120">
+							<uni-forms-item label="缂撳瓨鏋剁紪鍙�">
+								<uni-easyinput type="text" :focus="!addressFocus" v-model="stationcode"
+									placeholder="璇锋壂鐬勭紦瀛樻灦缂栧彿" ref='midInput' @input="inputChangebarcode" />
+							</uni-forms-item>
+							<uni-forms-item label="鐗╂枡绫诲瀷">
+									<uni-easyinput type="text" :focus="!addressFocus" v-model="PalletCode"
+										placeholder="璇锋壂鎻忕墿鏂欑被鍨�" ref='midInput' @input="inputChangebarcode" />
+							</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>
-		 </view>
-		<u-toast ref="uToast" />
-	</view>
-</template>
+			<u-toast ref="uToast" />
+		</view>
+	</template>
 
-<script>
-	const innerAudioContext = uni.createInnerAudioContext();
-	export default {
-		data() {
-			return {
-				// items: ['缁勭洏', '鍏ュ簱', '鍗曟嵁淇℃伅', '瑙g洏'],
-				items: ['鍑哄簱'],
-				current: 0,
-				matTotal: [],
-				matInfos: [],
-				orderNo: "",
-				label: "",
-				orderDetail: [],
-				focus: false,
-				barcode: "",
-				materSn: "",
-				sns: [],
-				addressFocus: false,
-				materialtype:"",
-				stationcode: "",
-				address: "",
-				check: true,
-				value: "",
-				matInfo: [],
-				value2: "",
-				matTotals: []
-			}
-		},
-		onShow() {},
-		onLoad(res) {
-			this.focus = false;
-			this.addressFocus = false;
-			this.orderNo = res.orderNo;
-			this.label = "鍗曟嵁缂栧彿锛�" + this.orderNo;
-			this.getData();
-		},
-		methods: {
-			voiceSpeech(src) {
-				innerAudioContext.src = src; // '../../static/success.mp3';
-				innerAudioContext.play();
-			},
-			
-			updateFocus() {
-				this.$nextTick(() => {
-					this.materSn = '';
-					if (!this.focus) {
-						this.focus = true;
-					}
-				});
-			},
-			barcodeFocus() {
-				this.barcode = '';
-				if (this.focus) {
-					this.focus = false;
+	<script>
+		const innerAudioContext = uni.createInnerAudioContext();
+		export default {
+			data() {
+				return {
+					items: ['鍑哄簱'],
+					current: 0,
+					matTotal: [],
+					matInfos: [],
+					orderNo: "",
+					label: "",
+					orderDetail: [],
+					focus: false,
+					barcode: "",
+					materSn: "",
+					sns: [],
+					addressFocus: false,
+					materialtype: "",
+					stationcode: "",
+					address: "",
+					check: true,
+					value: "",
+					matInfo: [],
+					value2: "",
+					matTotals: [],
+					rangs: [] // 瀛樺偍鐗╂枡绫诲瀷鏁版嵁
 				}
 			},
-			getData() {
-				var postData = this.orderNo
-
-				this.$u.post('/api/InboundOrder/GetInboundOrderDetail', postData).then((res) => {
-					if (res.status) {
-						this.orderDetail = res.data;
-						if (this.orderDetail.length > 3) {
-							this.loadVisible = true;
-						}
-					}
-				})
+			onShow() {
+				this.getMaterialTypes(); // 椤甸潰鏄剧ず鏃惰幏鍙栫墿鏂欑被鍨嬫暟鎹�
 			},
-			onClickItem(e) {
+			onLoad(res) {
 				this.focus = false;
 				this.addressFocus = false;
-				if (this.current !== e.currentIndex) {
-					this.current = e.currentIndex;
-					if (this.current == 2) {
-						this.getData();
-					}
-				}
+				this.orderNo = res.orderNo;
+				this.label = "鍗曟嵁缂栧彿锛�" + this.orderNo;
+				this.getData();
 			},
-			barcodeInput() {
-				this.$nextTick(function(x) {
-					if (this.barcode.length > 0) {
-						this.focus = true;
-					}
-				})
-			},
-			inbound() {
-				var postData = {
-					MainData: {
-						"stationcode": this.stationcode,
-						"PalletCode": this.PalletCode,
-					}
-				}
-				this.$u.post('/api/Task/OutboundTasks', postData).then(res => {
-					if (res.status) {
-						uni.$showMsg("浠诲姟娣诲姞鎴愬姛");
-						this.stationcode = "";
-						this.PalletCode = "";
-						// setTimeout(() => {
-						// 	this.materialtype = 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.stationcode != '') {
-						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.matQty);
-						} else {
+			methods: {
+				voiceSpeech(src) {
+					innerAudioContext.src = src;
+					innerAudioContext.play();
+				},
 
+				updateFocus() {
+					this.$nextTick(() => {
+						this.materSn = '';
+						if (!this.focus) {
+							this.focus = true;
+						}
+					});
+				},
+				barcodeFocus() {
+					this.barcode = '';
+					if (this.focus) {
+						this.focus = false;
+					}
+				},
+				getData() {
+					var postData = this.orderNo;
+
+					this.$u.post('/api/InboundOrder/GetInboundOrderDetail', postData).then((res) => {
+						if (res.status) {
+							this.orderDetail = res.data;
+							if (this.orderDetail.length > 3) {
+								this.loadVisible = true;
+							}
+						}
+					})
+				},
+				getMaterialTypes() {
+					this.$u.post('/api/MaterielInfo/GetMaterialTypes').then((res) => {
+						if (res.status) {
+							console.log(res.data);
+							this.rangs = res.data.map(item => {
+								return {
+									value: item.number, // 鍋囪鍚庣杩斿洖鐨勬暟鎹腑鏈� id 鍜� name 瀛楁
+									text: item.number
+								};
+							});
+						}
+					}).catch(err => {
+						this.$refs.uToast.show({
+							title: err.message,
+							type: "error"
+						});
+					});
+				},
+				onClickItem(e) {
+					this.focus = false;
+					this.addressFocus = false;
+					if (this.current !== e.currentIndex) {
+						this.current = e.currentIndex;
+						if (this.current == 2) {
+							this.getData();
 						}
 					}
-				})
-				this.sns.map((item, index) => {
-					if (item == res) {
-						this.sns.splice(index, 1);
+				},
+				barcodeInput() {
+					this.$nextTick(function(x) {
+						if (this.barcode.length > 0) {
+							this.focus = true;
+						}
+					})
+				},
+				inbound() {
+					var postData = {
+						MainData: {
+							"stationcode": this.stationcode,
+							"PalletCode": this.PalletCode,
+						}
 					}
-				})
-			},
-			submit() {
-				if (this.barcode == "") {
-					this.$refs.uToast.show({
-						title: "璇锋壂鎻忔墭鐩樻潯鐮�",
-						type: 'error'
-					})
-					return;
-				}
-				if (this.sns.length == 0) {
-					this.$refs.uToast.show({
-						title: "璇锋壂鎻忓唴绠辨爣绛�",
-						type: 'error'
-					})
-					return;
-				}
-				this.$u.post('/api/Bill_group_stock/PDA_ScanInStock', {
-					MainData: {
-						"pallet_barcode": this.barcode,
-						"orderNo": this.orderNo,
-						"isFull": this.check
-					},
-					DelKeys: this.sns
-				}).then(res => {
-					if (res.status) {
+					this.$u.post('/api/Task/OutboundTasks', postData).then(res => {
+						if (res.status) {
+							uni.$showMsg("浠诲姟娣诲姞鎴愬姛");
+							this.stationcode = ""; // 娓呯┖缂撳瓨鏋剁紪鍙�
+							this.PalletCode = ""; // 娓呯┖鐗╂枡绫诲瀷
+						} else {
+							this.$refs.uToast.show({
+								title: res.message,
+								type: "error"
+							})
+						}
+					}).catch(err => {
 						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,
+							title: err.message,
 							type: "error"
 						})
-					}
-				})
+					})
+				},
+				inputChangebarcode() {
+					this.addressFocus = false;
+					this.$nextTick(function(x) {
+						if (this.stationcode != '') {
+							this.addressFocus = true;
+						}
+					})
+				},
 			}
 		}
-	}
-</script>
+	</script>
 
-<style lang="scss">
-	@import '@/common/uni-ui.scss';
+	<style lang="scss">
+		@import '@/common/uni-ui.scss';
 
-	.content {
-		display: flex;
-		height: 150px;
-	}
+		.content {
+			display: flex;
+			height: 150px;
+		}
 
-	.content-text {
-		font-size: 14px;
-		color: #666;
-	}
+		.content-text {
+			font-size: 14px;
+			color: #666;
+		}
 
-	.itemstyle {
-		margin-top: 30px;
-		margin-left: 5%;
-	}
+		.itemstyle {
+			margin-top: 30px;
+			margin-left: 5%;
+		}
 
-	.headerstyle {
-		width: 90%;
-	}
-</style>
\ No newline at end of file
+		.headerstyle {
+			width: 90%;
+		}
+	</style>
\ No newline at end of file

--
Gitblit v1.9.3