From f2232657e8109b0ed4f76b3913e0d4b9713e2af6 Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期一, 18 三月 2024 07:54:56 +0800
Subject: [PATCH] #

---
 pages/project/jmAGV/home.vue |  411 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 384 insertions(+), 27 deletions(-)

diff --git a/pages/project/jmAGV/home.vue b/pages/project/jmAGV/home.vue
index 832bf8c..61a83ab 100644
--- a/pages/project/jmAGV/home.vue
+++ b/pages/project/jmAGV/home.vue
@@ -1,61 +1,418 @@
 <template>
 	<view class="container">
-		<view class="btn-box">
-			<button>鍛煎彨绌虹洏澶�</button>
+		<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" v-for="item in groundSiteList" @click="click(item,'left')">{{item.name}}</view>
+			</view>
 		</view>
-
-		<view class="btn-box">
-			<button>鍛煎彨绌虹洏澶�</button>
+		<!-- 鍙� -->
+		<view class="zcard">
+			<view class="zcard-flex">
+				<view class="button-nk" style="background-color: brown;" v-for="item in traySiteList" @click="click(item,'right')">{{item.name}}</view>
+			</view>
 		</view>
 		
-		<view class="btn-box">
-			<button>鍛煎彨绌虹洏澶�</button>
+		
+		<view>
+			<uni-popup ref="revise" type="dialog">
+				<view class="popup">
+					<view  class="popup3-input-title">{{text}}</view>
+					<view class="button-nk" @click="upTray()">{{btnTitle1}}</view>
+					<view class="button-nk" @click="downTray()">{{btnTitle2}}</view>
+					<view v-show="outType" class="button-nk" @click="downTray1()">{{btnTitle3}}</view>
+				</view>
+			</uni-popup>
 		</view>
 		
-		<view class="btn-box">
-			<button>鍛煎彨绌虹洏澶�</button>
+		<view>
+			<uni-popup ref="numberPopup" type="dialog">
+				<view class="popup2">
+					<view  class="popup3-input-title">{{tipsTitle}}</view>
+					<view class="button-nk" @click="goUp(2)">2涓�</view>
+					<view class="button-nk" @click="goUp(4)">4涓�</view>
+				</view>
+			</uni-popup>
 		</view>
 		
-		<view class="btn-box">
-			<button>鍛煎彨绌虹洏澶�</button>
+		<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 class="btn-box">
-			<button>鍛煎彨绌虹洏澶�</button>
-		</view>
-		<view class="btn-box">
-			<button>鍛煎彨绌虹洏澶�</button>
-		</view>
-		
-		<view class="btn-box">
-			<button>鍛煎彨绌虹洏澶�</button>
-		</view>
 	</view>
 </template>
 
 <script>
+import code from '../../../uni_modules/uview-ui/libs/config/props/code';
 	export default {
 		data() {
 			return {
-				
+				baseUrl: '',
+				token: '',
+				groundSiteList: [
+					{name: '1鍙峰湴闈㈢珯',code:'1-C1',traget: '1-A1',type: 'foolr'},
+					{name: '2鍙峰湴闈㈢珯',code:'2-C1',traget: '2-A1',type: 'foolr'},
+					{name: '3鍙峰湴闈㈢珯',code:'3-C1',traget: '3-A1',type: 'foolr'},
+					{name: '4鍙峰湴闈㈢珯',code:'4-C1',traget: '4-A1',type: 'foolr'},
+					{name: '5鍙峰湴闈㈢珯',code:'5-C1',traget: '5-A1',type: 'foolr'},
+					{name: '6鍙峰湴闈㈢珯',code:'6-C1',traget: '6-A1',type: 'foolr'},
+					{name: '7鍙峰湴闈㈢珯',code:'7-C1',traget: '7-A1',type: 'foolr'},
+					{name: '8鍙峰湴闈㈢珯',code:'8-C1',traget: '8-A1',type: 'foolr'},
+					{name: '9鍙峰湴闈㈢珯',code:'9-C1',traget: '9-A1',type: 'foolr'},
+					{name: '10鍙峰湴闈㈢珯',code:'10-C1',traget: '10-A1',type: 'foolr'}
+				],
+				traySiteList: [
+					{name: '1鍙锋墭鐩樼珯',code:'KW-1',type: 'tray'},
+					{name: '2鍙锋墭鐩樼珯',code:'KW-2',type: 'tray'},
+					{name: '3鍙锋墭鐩樼珯',code:'KW-3',type: 'tray'},
+					{name: '4鍙锋墭鐩樼珯',code:'KW-4',type: 'tray'},
+					{name: '5鍙锋墭鐩樼珯',code:'KW-5',type: 'tray'},
+					{name: '6鍙锋墭鐩樼珯',code:'KW-6',type: 'tray'},
+					{name: '7鍙锋墭鐩樼珯',code:'KW-7',type: 'tray'},
+					{name: '8鍙锋墭鐩樼珯',code:'KW-8',type: 'tray'},
+					{name: '9鍙锋墭鐩樼珯',code:'KW-9',type: 'tray'},
+					{name: '10鍙锋墭鐩樼珯',code:'KW-10',type: 'tray'}
+				],
+				emptyMatList: [],
+				item: '',
+				text: '',
+				btnTitle1: '',
+				btnTitle2: '',
+				btnTitle3: '',
+				outType: '',
+				stationType: 'load',
+				type: '' ,
+				originLocal: '',
+				targetLocal: '',
+				code: '',
+				meter: '',
+				meterShow: '',
+				desc: '',
+				tipsTitle: '',
 			}
 		},
+		onShow() {
+			let network = uni.getStorageSync('Network')
+			this.baseUrl = `http://${network[0].ip}:${network[0].port}/${network[0].address}` 
+			this.token = uni.getStorageSync('token');
+		},
 		methods: {
-			
+			jump() {
+				uni.redirectTo({
+					url: '/pages/project/jmAGV/floorOne'
+				})
+			},
+			click(item,type) {
+				this.item = item
+				this.text = item.name
+				if (type == 'left') {
+					this.outType = false
+					this.btnTitle1 = '鍦伴潰绔欐斁缃墭鐩�(涓婃灦)'
+					this.btnTitle2 = '鎵樼洏绔欏彇缃湴闈�(涓嬫灦)'
+				} else {
+					this.outType = true
+					this.btnTitle1 = '鎵樼洏-浠撳簱(鍏ュ簱)'
+					this.btnTitle2 = '浠撳簱-绌烘墭鐩�(鍑哄簱)'
+					this.btnTitle3 = '浠撳簱-婊℃墭鐩�(鍑哄簱)'
+				}
+				this.$refs.revise.open(type)
+			},
+			chose(matnr) {
+				for (let k of this.emptyMatList) {
+					if (k.matnr == matnr) {
+						k.chose = 'chosed'
+					} else {
+						k.chose = ''
+					}
+					this.$forceUpdate() // 寮哄埗鍒锋柊
+				}
+				this.code = matnr
+			},
+			// 鍦伴潰绔欎笂鏋� / 鎵樼洏绔欏叆搴撴寜閽�
+			upTray() {
+				if (this.item.type == 'foolr') {
+					this.type = 'load', // 涓婃灦
+					this.originLocal = this.item.code,
+					this.targetLocal = this.item.traget
+					this.tipsTitle = '涓婃灦鏁伴噺'
+					this.numberPopup()
+				} else {
+					this.type = 'in' // 鍏ュ簱
+					this.originLocal = this.item.code,
+					this.targetLocal = 'KW-J'
+					this.pakin()
+				}
+			},
+			downTray() {
+				if (this.item.type == 'foolr') {
+					this.type = 'unload', // 涓嬫灦
+					this.originLocal = this.item.traget,
+					this.targetLocal = this.item.code
+					this.tipsTitle = '涓嬫灦鏁伴噺'
+					this.numberPopup()
+				} else {
+					this.type = 'out1' // 鍑哄簱
+					this.originLocal = 'KW-C'
+					this.targetLocal = this.item.code
+					this.inputPopup()
+				}
+			},
+			downTray1() {
+				if (this.item.type == 'foolr') {
+					this.type = 'unload', // 涓嬫灦
+					this.originLocal = this.item.traget,
+					this.targetLocal = this.item.code
+				} else {
+					this.type = 'out2' // 鍑哄簱
+					this.originLocal = 'KW-C'
+					this.targetLocal = this.item.code
+					this.inputPopup()
+				}
+			},
+			numberPopup() {
+				this.$refs.numberPopup.open('center')
+			},
+			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')
+			},
+			// 涓� / 涓� 鏋舵暟閲�
+			goUp(num) {
+				let data = {}
+				data = {
+					originLocal: this.originLocal,
+					targetLocal: this.targetLocal,
+					type: this.type,
+					anfme: num,
+				}
+				this.webServer(data)
+				setTimeout(()=>{
+					this.$refs.numberPopup.close()
+				},300)
+			},
+			pakin() {
+				let data = {}
+				data = {
+					originLocal: this.originLocal,
+					targetLocal: this.targetLocal,
+					type: this.type,
+				}
+				this.webServer(data)
+				setTimeout(()=>{
+					this.$refs.numberPopup.close()
+				},300)
+			},
+			confirm() {
+				let data = {}
+				if (this.type == 'out1') {
+					data = {
+						originLocal: this.originLocal,
+						targetLocal: this.targetLocal,
+						type: this.type,
+						matnr: this.code,
+						anfme: 4
+					}
+				} else {
+					data = {
+						originLocal: this.originLocal,
+						targetLocal: this.targetLocal,
+						type: this.type,
+						orderNo: this.code,
+						meter: this.meter
+					}
+				}
+				this.webServer(data)
+				setTimeout(()=>{
+					this.$refs.inputPopup.close()
+					this.code = ''
+					this.meter = ''
+				},300)
+			},
+			// 鎵�鏈夋湇鍔�
+			webServer(data) {
+				let _this = this
+				uni.request({
+					url: `${_this.baseUrl}/agv/requestTask`,
+					data: data,
+					header: { 'token': uni.getStorageSync('token') },
+					method: 'POST',
+					success(res) {
+						res = res.data
+						if (res.code === 200) {
+							this.$refs.revise.close()
+							uni.showToast({ title: '鎿嶄綔鎴愬姛', icon: "none", position: 'top' })
+						} else {
+							uni.showToast({ title: res.msg, icon: "none", position: 'top' })
+						}
+						
+					}
+				})
+			}
 		}
 	}
 </script>
 
 <style>
 	.container {
-		height: 90vh;
-		background-color: aqua;
+		height: 100%;
+		/* background-color: aqua; */
 		display: grid;
 		grid-template-columns: 50% 50%;
+		width: 100%;
 
 	}
 	.btn-box {
-		margin: 5%;
+		/* margin: 1%; */
+		background-color: azure;
 	}
-	
+	/* .zcard {
+		margin: 10px 100px;
+		background-color: #409EFF;
+	} */
+	.zcard-flex {
+		/* background-color: coral; */
+		margin-top: 20rpx;
+		width: 100%;
+		height: 100%;
+		display: flex;
+		flex-wrap: wrap;
+		/* flex-direction: column; */
+		justify-content: space-around;
+		align-items: center;
+	}
+	.button-nk {
+		margin: 10rpx 0rpx;
+		/* padding: 20rpx 70rpx; */
+		/* background-color: azure; */
+		min-width: 100rpx;
+		/* margin: 0 auto; */
+		height: 50rpx;
+		text-align: center;
+		line-height: 50rpx;
+		font-size: 20rpx;
+		background-color: #409EFF;
+		color: #ECF0F1;
+		border-radius: 7px;
+		box-shadow: inset 4px 4px 4px rgba(0, 0, 0, .3),
+			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;
+		height: 100%;
+		padding: 0 10vw;
+		display: flex;
+		flex-direction: column;
+		justify-content: space-around;
+	}
+	.popup2 {
+		background-color: #eee;
+		width: 30vw;
+		height: 100%;
+		padding: 0 10vw;
+		display: flex;
+		flex-direction: column;
+		justify-content: space-around;
+		border-radius: 10rpx;
+	}
+	.popup3 {
+		background-color: #eee;
+		max-height: 80vw;
+		width: 50vw;
+		padding: 0 10vw;
+		display: flex;
+		flex-direction: column;
+		justify-content: space-around;
+		border-radius: 10rpx;
+		color: #565656;
+	}
+	.popup3-input-title {
+		text-align: center;
+		margin: 10rpx;
+		font-size: 18px;
+		font-weight: bold;
+	}
+	.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;
+		border-radius: 5rpx;
+		padding: 2rpx 10rpx;
+		margin: 10rpx;
+		background-color: #FFF;
+	}
+	.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>

--
Gitblit v1.9.1