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/home.vue | 544 +++++++++++++++++++++++++++++++++--------------------- 1 files changed, 334 insertions(+), 210 deletions(-) diff --git a/pages/project/jmAGV/home.vue b/pages/project/jmAGV/home.vue index 61a83ab..af0fc69 100644 --- a/pages/project/jmAGV/home.vue +++ b/pages/project/jmAGV/home.vue @@ -1,103 +1,206 @@ <template> <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" 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;" v-for="item in traySiteList" @click="click(item,'right')">{{item.name}}</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="upTray()">{{btnTitle1}}</view> - <view class="button-nk" @click="downTray()">{{btnTitle2}}</view> - <view v-show="outType" class="button-nk" @click="downTray1()">{{btnTitle3}}</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'; + 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'} + groundSiteList: [{ + name: 'A-C-K-1', + code: 'A-C-K-1', + type: 'ground-k' + }, + { + name: 'A-C-M-1', + code: 'A-C-M-1', + type: 'ground-m' + }, + { + name: 'A-C-K-2', + code: 'A-C-K-2', + type: 'ground-k' + }, + { + name: 'A-C-M-2', + code: 'A-C-M-2', + type: 'ground-m' + }, + { + name: 'A-C-K-3', + code: 'A-C-K-3', + type: 'ground-k' + }, + { + name: 'A-C-M-3', + code: 'A-C-M-3', + type: 'ground-m' + }, ], - 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'} + cacheSiteList: [{ + name: 'A-H-1', + code: 'A-H-1', + type: 'cache' + }, + { + name: 'A-H-2', + code: 'A-H-2', + type: 'cache' + }, + { + name: 'A-H-3', + code: 'A-H-3', + type: 'cache' + }, + { + name: 'A-H-4', + code: 'A-H-4', + type: 'cache' + }, + { + name: 'A-H-5', + code: 'A-H-5', + type: 'cache' + }, + { + name: 'A-H-6', + code: 'A-H-6', + type: 'cache' + }, + { + name: 'A-H-7', + code: 'A-H-7', + type: 'cache' + }, + { + name: 'A-H-8', + code: 'A-H-8', + type: 'cache' + }, + { + name: 'A-H-9', + code: 'A-H-9', + type: 'cache' + }, + { + name: 'A-H-10', + code: 'A-H-10', + type: 'cache' + }, + { + name: 'A-H-11', + code: 'A-H-11', + type: 'cache' + }, + { + name: 'A-H-12', + code: 'A-H-12', + type: 'cache' + }, + { + name: 'A-H-13', + code: 'A-H-13', + type: 'cache' + }, + { + name: 'A-H-14', + code: 'A-H-14', + type: 'cache' + }, + { + name: 'A-H-15', + code: 'A-H-15', + type: 'cache' + }, + { + name: 'A-H-16', + code: 'A-H-16', + type: 'cache' + }, + { + name: 'A-H-17', + code: 'A-H-17', + type: 'cache' + }, ], emptyMatList: [], + chooseMat: '', + groundSite: '', + groundEmptySiteList: [], + chooseCacheSite: '', + chooseCacheSiteList: [], item: '', text: '', btnTitle1: '', @@ -105,7 +208,7 @@ btnTitle3: '', outType: '', stationType: 'load', - type: '' , + type: '', originLocal: '', targetLocal: '', code: '', @@ -117,8 +220,10 @@ }, onShow() { let network = uni.getStorageSync('Network') - this.baseUrl = `http://${network[0].ip}:${network[0].port}/${network[0].address}` + this.baseUrl = `http://${network[0].ip}:${network[0].port}/${network[0].address}` this.token = uni.getStorageSync('token'); + + this.getEmptyMatList() }, methods: { jump() { @@ -126,153 +231,147 @@ url: '/pages/project/jmAGV/floorOne' }) }, - click(item,type) { + 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 = '浠撳簱-婊℃墭鐩�(鍑哄簱)' + } else { + this.outType = false } 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 - - } + 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 } - }) - } else { - this.tipsTitle = '婊℃墭鐩樺嚭搴�' - this.desc = '璁㈠崟鍙�' - this.meterShow = true - this.$refs.inputPopup.open('center') - } - this.$refs.inputPopup.open('center') + } + }) }, - // 涓� / 涓� 鏋舵暟閲� + 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 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: this.originLocal, - targetLocal: this.targetLocal, - 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.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.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 = '' + this.$refs.downPalletPopup.close() },300) }, // 鎵�鏈夋湇鍔� @@ -281,17 +380,26 @@ 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) { + uni.showToast({ + title: '鎿嶄綔鎴愬姛', + icon: "none", + position: 'top' + }) this.$refs.revise.close() - uni.showToast({ title: '鎿嶄綔鎴愬姛', icon: "none", position: 'top' }) } else { - uni.showToast({ title: res.msg, icon: "none", position: 'top' }) + uni.showToast({ + title: res.msg, + icon: "none", + position: 'top' + }) } - } }) } @@ -303,35 +411,42 @@ .container { height: 100%; /* background-color: aqua; */ - display: grid; - grid-template-columns: 50% 50%; + /* display: grid; + grid-template-columns: 50% 50%; */ width: 100%; } + .btn-box { /* margin: 1%; */ background-color: azure; } - /* .zcard { - margin: 10px 100px; - background-color: #409EFF; - } */ + + .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: 100rpx; + min-width: 150rpx; /* margin: 0 auto; */ height: 50rpx; text-align: center; @@ -344,12 +459,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; @@ -359,6 +476,7 @@ flex-direction: column; justify-content: space-around; } + .popup2 { background-color: #eee; width: 30vw; @@ -369,6 +487,7 @@ justify-content: space-around; border-radius: 10rpx; } + .popup3 { background-color: #eee; max-height: 80vw; @@ -380,19 +499,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; @@ -401,10 +523,12 @@ margin: 10rpx; background-color: #FFF; } + .chosed { background-color: #67C23A; color: #e8e8e8; } + .select { position: absolute; bottom: 12px; @@ -415,4 +539,4 @@ inset -2px -2px 2px rgba(255, 255, 255, .7), -2px -2px 2px rgba(0, 0, 0, .4); } -</style> +</style> \ No newline at end of file -- Gitblit v1.9.1