From 7b6184907d70a14b129996d0010566f39307ccb7 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期三, 24 七月 2024 19:25:12 +0800
Subject: [PATCH] agv平板开发

---
 pages/project/jmAGV/floorOne.vue |  460 +++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 312 insertions(+), 148 deletions(-)

diff --git a/pages/project/jmAGV/floorOne.vue b/pages/project/jmAGV/floorOne.vue
index cfdcb29..c9ec660 100644
--- a/pages/project/jmAGV/floorOne.vue
+++ b/pages/project/jmAGV/floorOne.vue
@@ -1,104 +1,169 @@
 <template>
-	<view  class="container">
+	<view class="container">
 		<uni-icons type="bars" size="30" color="#b1b3b8" class="select" @click="jump()"></uni-icons>
-		<!-- 宸� -->
+
 		<view class="zcard">
 			<view class="zcard-flex">
-				<view class="button-nk" @click="click('left')">涓婃灦</view>
+				<view class="button-nk" v-for="item in groundSiteList" @click="click(item,'left')">{{item.name}}</view>
 			</view>
 		</view>
-		<!-- 鍙� -->
+
 		<view class="zcard">
 			<view class="zcard-flex">
-				<view class="button-nk" style="background-color: brown;" @click="click('right')">涓嬫灦</view>
-				<view class="button-nk" style="background-color: brown;" @click="putOut('out2')">浠撳簱-婊℃墭鐩�(鍑哄簱)</view>
+				<view class="button-nk" style="background-color: brown;" v-for="item in cacheSiteList"
+					@click="click(item,'right')">{{item.name}}</view>
 			</view>
 		</view>
-		
+
 		<view>
 			<uni-popup ref="revise" type="dialog">
-				<view class="popup">
-					<view  class="popup3-input-title">{{text}}</view>
-					<view class="button-nk" @click="option(item)" v-for="item in btns">{{item.name}}</view>
+				<view v-if="outType" class="popup">
+					<view class="popup3-input-title">{{text}}</view>
+					<view class="button-nk" @click="upPallet()">鐩樺ご涓婃灦</view>
+				</view>
+				<view v-else class="popup">
+					<view class="popup3-input-title">{{text}}</view>
+					<view class="button-nk" @click="downPallet()">鐩樺ご涓嬫灦</view>
 				</view>
 			</uni-popup>
 		</view>
-		
+
 		<view>
-			<uni-popup ref="numberPopup" type="dialog">
+			<uni-popup ref="downPalletPopup" type="dialog">
 				<view class="popup2">
-					<view  class="popup3-input-title">{{tipsTitle}}</view>
+					<view class="popup3-input-title">鐩樺ご涓嬫灦</view>
+					<uni-data-select v-model="groundSite" :localdata="groundEmptySiteList"></uni-data-select>
+					<view class="button-nk" @click="goDown(2)">2涓�</view>
+					<view class="button-nk" @click="goDown(4)">4涓�</view>
+				</view>
+			</uni-popup>
+		</view>
+
+		<view>
+			<uni-popup ref="upPalletPopup" type="dialog">
+				<view class="popup2">
+					<view class="popup3-input-title">鐩樺ご涓婃灦</view>
+					<view class="popup3-input-box">
+						<uni-data-select v-model="chooseCacheSite" :localdata="chooseCacheSiteList" placeholder="璇烽�夋嫨绔欑偣"></uni-data-select>
+					</view>
+					<view class="popup3-input-box">
+						<uni-data-select v-model="chooseMat" :localdata="emptyMatList" placeholder="璇烽�夋嫨鐗╂枡"></uni-data-select>
+					</view>
+					<view class="popup3-input-box">
+						<text>璁㈠崟鍙�:</text>
+						<view style="margin-left: 3rpx;">
+							<input type="text" v-model="code" />
+						</view>
+					</view>
+					<view class="popup3-input-box">
+						<text>绫虫暟:</text>
+						<view style="margin-left: 3rpx;">
+							<input type="text" v-model="meter" />
+						</view>
+					</view>
 					<view class="button-nk" @click="goUp(2)">2涓�</view>
 					<view class="button-nk" @click="goUp(4)">4涓�</view>
 				</view>
 			</uni-popup>
 		</view>
 		
-		<view>
-			<uni-popup ref="inputPopup" type="dialog">
-				<view class="popup3">
-					<view class="popup3-input-title">{{tipsTitle}}</view>
-					<view class="popup3-input-box2"  :class="item.chose" 
-						v-if="!meterShow" v-for="item in emptyMatList" @click="chose(item.matnr)">
-						<view>
-							{{item.maktx}}
-						</view>
-					</view>
-					<view class="popup3-input-box" v-if="meterShow">
-						<text>{{desc}}:</text>
-						<view style="margin-left: 3rpx;">
-							<input type="text" v-model="code"/>
-						</view>
-					</view>
-					<view class="popup3-input-box" v-if="meterShow">
-						<text>绫虫暟:</text>
-						<view style="margin-left: 3rpx;">
-							<input type="text" v-model="meter"/>
-						</view>
-					</view>
-					<view class="button-nk" @click="confirm(2)">纭畾</view>
-				</view>
-			</uni-popup>
-		</view>
+		
 	</view>
 </template>
 
 <script>
+	import code from '../../../uni_modules/uview-ui/libs/config/props/code';
 	export default {
 		data() {
 			return {
 				baseUrl: '',
 				token: '',
-				onBtns: [
-					{name: '1鍙风┖鐩樹綅涓婃灦',code:'1-Q1',traget: '12-F1',type: 'foolr'},
-					{name: '2鍙风┖鐩樹綅涓婃灦',code:'2-Q1',traget: '12-F1',type: 'foolr'},
+				groundSiteList: [{
+						name: 'B-C-K-1',
+						code: 'B-C-K-1',
+						type: 'ground-k'
+					},
+					{
+						name: 'B-C-M-1',
+						code: 'B-C-M-1',
+						type: 'ground-m'
+					},
+					{
+						name: 'B-C-K-2',
+						code: 'B-C-K-2',
+						type: 'ground-k'
+					},
+					{
+						name: 'B-C-M-2',
+						code: 'B-C-M-2',
+						type: 'ground-m'
+					},
 				],
-				outBtns: [
-					{name: '涓嬫灦鑷�1鍙蜂綅',code:'11-Q1',traget: '1-F1',type: 'foolr'},
-					{name: '涓嬫灦鑷�2鍙蜂綅',code:'11-Q1',traget: '2-F1',type: 'foolr'},
-					{name: '涓嬫灦鑷�3鍙蜂綅',code:'11-Q1',traget: '3-F1',type: 'foolr'},
+				cacheSiteList: [{
+						name: 'B-H-1',
+						code: 'B-H-1',
+						type: 'cache'
+					},
+					{
+						name: 'B-H-2',
+						code: 'B-H-2',
+						type: 'cache'
+					},
+					{
+						name: 'B-H-3',
+						code: 'B-H-3',
+						type: 'cache'
+					},
+					{
+						name: 'B-H-4',
+						code: 'B-H-4',
+						type: 'cache'
+					},
+					{
+						name: 'B-H-5',
+						code: 'B-H-5',
+						type: 'cache'
+					},
+					{
+						name: 'B-H-6',
+						code: 'B-H-6',
+						type: 'cache'
+					},
+					{
+						name: 'B-H-7',
+						code: 'B-H-7',
+						type: 'cache'
+					},
 				],
-				btns: [],
-				outType: '',
+				emptyMatList: [],
+				chooseMat: '',
+				groundSite: '',
+				groundEmptySiteList: [],
+				chooseCacheSite: '',
+				chooseCacheSiteList: [],
+				item: '',
 				text: '',
-				btnTitle: '',
+				btnTitle1: '',
+				btnTitle2: '',
+				btnTitle3: '',
+				outType: '',
+				stationType: 'load',
 				type: '',
-				tipsTitle: '',
-				item: {},
-				meterShow: false,
+				originLocal: '',
+				targetLocal: '',
 				code: '',
-				emptyMatList: '',
-				meter: ''
-				
-				
+				meter: '',
+				meterShow: '',
+				desc: '',
+				tipsTitle: '',
 			}
 		},
 		onShow() {
-			if (uni.getStorageSync('Network')) {
-				let network = uni.getStorageSync('Network')
-				this.baseUrl = `http://${network[0].ip}:${network[0].port}/${network[0].address}`
-				this.token = uni.getStorageSync('token');
-			}
+			let network = uni.getStorageSync('Network')
+			this.baseUrl = `http://${network[0].ip}:${network[0].port}/${network[0].address}`
+			this.token = uni.getStorageSync('token');
+			
+			this.getEmptyMatList()
 		},
 		methods: {
 			jump() {
@@ -106,80 +171,147 @@
 					url: '/pages/project/jmAGV/home'
 				})
 			},
-			// 婊$増鍑哄簱
-			putOut(type) {
-				this.type = type
-				this.inputPopup()
-			},
-			inputPopup() {
-				if (this.type == 'out1') {
-					this.tipsTitle = '绌烘墭鐩樺嚭搴�'
-					this.desc = '鐗╂枡鐮�'
-					this.meterShow = false
-					let that = this
-					uni.request({
-						url: `${that.baseUrl}/agv/getEmptyMat`,
-						header: { 'token': uni.getStorageSync('token') },
-						method: 'GET',
-						success(res) {
-							res = res.data
-							if (res.code === 200) {
-								res.data['chose'] = ''
-								that.emptyMatList = res.data
-								
-							}
-						}
-					})
-				} else {
-					this.tipsTitle = '婊℃墭鐩樺嚭搴�'
-					this.desc = '璁㈠崟鍙�'
-					this.meterShow = true
-					this.$refs.inputPopup.open('center')
-				}
-				this.$refs.inputPopup.open('center')
-			},
-			click(type) {
+			click(item, type) {
+				this.item = item
+				this.text = item.name
 				if (type == 'left') {
-					this.btns = this.onBtns
-					this.text = '涓婃灦'
-					this.type = 'load'
-					this.tipsTitle = '涓婃灦鏁伴噺'
+					this.outType = true
 				} else {
-					this.btns = this.outBtns
-					this.type = 'unload'
-					this.text = '涓嬫灦'
-					this.tipsTitle = '涓嬫灦鏁伴噺'
+					this.outType = false
 				}
 				this.$refs.revise.open(type)
 			},
-			option(item) {
-				this.item = item
-				this.$refs.numberPopup.open('center')
+			getEmptyMatList() {
+				let that = this
+				uni.request({
+					url: `${that.baseUrl}/agv/getEmptyMat`,
+					header: { 'token': uni.getStorageSync('token') },
+					method: 'GET',
+					success(res) {
+						res = res.data
+						if (res.code === 200) {
+							let tmp = []
+							res.data.forEach((item) => {
+								tmp.push({
+									text: item.maktx,
+									value: item.matnr
+								})
+							})
+							that.emptyMatList = tmp
+						}
+					}
+				})
+			},
+			upPallet() {
+				let tmp = [];
+				this.cacheSiteList.forEach((item) => {
+					tmp.push({
+						text: item.name,
+						value: item.code
+					})
+				})
+
+				this.chooseCacheSiteList = tmp;
+				this.upPalletPopup()
+			},
+			downPallet() {
+				let tmp = [];
+				this.groundSiteList.forEach((item) => {
+					if (item.type == 'ground-k') {
+						tmp.push({
+							text: item.name,
+							value: item.code
+						})
+					}
+				})
+
+				this.groundEmptySiteList = tmp;
+				this.downPalletPopup()
+			},
+			upPalletPopup() {
+				this.$refs.upPalletPopup.open('center')
+			},
+			downPalletPopup() {
+				this.$refs.downPalletPopup.open('center')
 			},
 			goUp(num) {
-				let _this = this
-				let data = {
-					originLocal: this.item.code,
-					targetLocal: this.item.traget,
-					type: this.type,
-					anfme: num
-				}
-				this.webServer(data)
-			},
-			confirm() {
 				let data = {}
+				
+				if(this.chooseCacheSite == ''){
+					uni.showToast({
+						title: '璇烽�夋嫨绔欑偣',
+						icon: "none",
+						position: 'top'
+					})
+					return;
+				}
+				
+				if(this.chooseMat == ''){
+					uni.showToast({
+						title: '璇烽�夋嫨鐗╂枡',
+						icon: "none",
+						position: 'top'
+					})
+					return;
+				}
+				
+				if(this.code == ''){
+					uni.showToast({
+						title: '璇疯緭鍏ヨ鍗曞彿',
+						icon: "none",
+						position: 'top'
+					})
+					return;
+				}
+				
+				if(this.meter == ''){
+					uni.showToast({
+						title: '璇疯緭鍏ョ背鏁�',
+						icon: "none",
+						position: 'top'
+					})
+					return;
+				}
+				
 				data = {
-					originLocal: '11-Q1',
-					targetLocal: '11-Q1',
-					type: this.type,
+					originLocal: this.item.code,
+					targetLocal: this.chooseCacheSite,
+					type: 'load',
+					anfme: num,
+					matnr: this.chooseMat,
 					orderNo: this.code,
 					meter: this.meter
 				}
 				this.webServer(data)
 				setTimeout(()=>{
-					this.$refs.inputPopup.close()
+					this.$refs.upPalletPopup.close()
+					this.chooseMat = ''
 					this.code = ''
 					this.meter = ''
+					this.chooseCacheSite = ''
+				},300)
+			},
+			goDown(num) {
+				let data = {}
+				
+				if(this.groundSite == ''){
+					uni.showToast({
+						title: '璇烽�夋嫨绔欑偣',
+						icon: "none",
+						position: 'top'
+					})
+					return;
+				}
+				
+				data = {
+					originLocal: this.item.code,
+					targetLocal: this.groundSite,
+					type: 'unload',
+					anfme: num,
+				}
+				this.webServer(data)
+				setTimeout(()=>{
+					this.$refs.downPalletPopup.close()
 				},300)
 			},
 			// 鎵�鏈夋湇鍔�
@@ -188,17 +320,25 @@
 				uni.request({
 					url: `${_this.baseUrl}/agv/requestTask`,
 					data: data,
-					header: { 'token': uni.getStorageSync('token') },
+					header: {
+						'token': uni.getStorageSync('token')
+					},
 					method: 'POST',
 					success(res) {
 						res = res.data
 						if (res.code === 200) {
-							setTimeout(()=>{
-								this.$refs.revise.close()
-							},300)
-							uni.showToast({ title: '鎿嶄綔鎴愬姛', icon: "none", position: 'top' })
+							uni.showToast({
+								title: '鎿嶄綔鎴愬姛',
+								icon: "none",
+								position: 'top'
+							})
+							_this.$refs.revise.close()
 						} else {
-							uni.showToast({ title: res.msg, icon: "none", position: 'top' })
+							uni.showToast({
+								title: res.msg,
+								icon: "none",
+								position: 'top'
+							})
 						}
 					}
 				})
@@ -210,26 +350,43 @@
 <style>
 	.container {
 		height: 100%;
-		display: grid;
-		grid-template-columns: 50% 50%;
+		/* background-color: aqua; */
+		/* display: grid;
+		grid-template-columns: 50% 50%; */
 		width: 100%;
+
 	}
+
+	.btn-box {
+		/* margin: 1%; */
+		background-color: azure;
+	}
+
+	.zcard {
+		display: flex;
+		flex-wrap: wrap;
+		margin-top: 20px;
+	}
+
 	.zcard-flex {
 		/* background-color: coral; */
+		/* flex-direction: column; */
 		margin-top: 20rpx;
 		width: 100%;
 		height: 100%;
 		display: flex;
 		flex-wrap: wrap;
-		/* flex-direction: column; */
 		justify-content: space-around;
 		align-items: center;
+		margin-right: 20px;
+		margin-left: 20px;
 	}
+
 	.button-nk {
-		margin: 10rpx 0rpx;
+		margin: 30rpx 50rpx;
 		/* padding: 20rpx 70rpx; */
 		/* background-color: azure; */
-		min-width: 350rpx;
+		min-width: 150rpx;
 		/* margin: 0 auto; */
 		height: 50rpx;
 		text-align: center;
@@ -242,12 +399,14 @@
 			inset -4px -4px 4px rgba(255, 255, 255, .4),
 			-4px -4px 5px rgba(0, 0, 0, .4);
 	}
+
 	.button-nk:active {
 		transform: translateY(2px) scale(0.99, 0.99);
 		box-shadow: inset 4px 4px 4px rgba(0, 0, 0, .3),
 			inset -4px -4px 8px rgba(255, 255, 255, .7),
 			-5px -5px 5px rgba(0, 0, 0, .3);
 	}
+
 	.popup {
 		background-color: #eee;
 		width: 30vw;
@@ -257,6 +416,7 @@
 		flex-direction: column;
 		justify-content: space-around;
 	}
+
 	.popup2 {
 		background-color: #eee;
 		width: 30vw;
@@ -267,22 +427,7 @@
 		justify-content: space-around;
 		border-radius: 10rpx;
 	}
-	.popup3-input-title {
-		text-align: center;
-		margin: 10rpx;
-		font-size: 18px;
-		font-weight: bold;
-	}
-	.select {
-		position: absolute;
-		bottom: 12px;
-		right: 16px;
-		border-radius: 10px;
-		padding: 4px 10px;
-		box-shadow: inset 2px 2px 2px rgba(0, 0, 0, .3),
-			inset -2px -2px 2px rgba(255, 255, 255, .7),
-			-2px -2px 2px rgba(0, 0, 0, .4);
-	}
+
 	.popup3 {
 		background-color: #eee;
 		max-height: 80vw;
@@ -294,19 +439,22 @@
 		border-radius: 10rpx;
 		color: #565656;
 	}
+
 	.popup3-input-title {
 		text-align: center;
 		margin: 10rpx;
 		font-size: 18px;
 		font-weight: bold;
 	}
-	.popup3-input-box  {
+
+	.popup3-input-box {
 		display: flex;
 		border: 1px solid #cecece;
 		border-radius: 5rpx;
 		padding: 2rpx 10rpx;
 		margin: 20rpx;
 	}
+
 	.popup3-input-box2 {
 		display: flex;
 		border: 1px solid #cecece;
@@ -315,4 +463,20 @@
 		margin: 10rpx;
 		background-color: #FFF;
 	}
-</style>
+
+	.chosed {
+		background-color: #67C23A;
+		color: #e8e8e8;
+	}
+
+	.select {
+		position: absolute;
+		bottom: 12px;
+		right: 16px;
+		border-radius: 10px;
+		padding: 4px 10px;
+		box-shadow: inset 2px 2px 2px rgba(0, 0, 0, .3),
+			inset -2px -2px 2px rgba(255, 255, 255, .7),
+			-2px -2px 2px rgba(0, 0, 0, .4);
+	}
+</style>
\ No newline at end of file

--
Gitblit v1.9.1