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