| | |
| | | <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" @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 v-if="outType" 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 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'); |
| | | } |
| | | |
| | | this.getEmptyMatList() |
| | | }, |
| | | methods: { |
| | | jump() { |
| | |
| | | url: '/pages/project/jmAGV/home' |
| | | }) |
| | | }, |
| | | // 满版出库 |
| | | putOut(type) { |
| | | this.type = type |
| | | this.inputPopup() |
| | | click(item, type) { |
| | | this.item = item |
| | | this.text = item.name |
| | | if (type == 'left') { |
| | | this.outType = true |
| | | } else { |
| | | this.outType = false |
| | | } |
| | | this.$refs.revise.open(type) |
| | | }, |
| | | inputPopup() { |
| | | if (this.type == 'out1') { |
| | | this.tipsTitle = '空托盘出库' |
| | | this.desc = '物料码' |
| | | this.meterShow = false |
| | | getEmptyMatList() { |
| | | let that = this |
| | | uni.request({ |
| | | url: `${that.baseUrl}/agv/getEmptyMat`, |
| | |
| | | success(res) { |
| | | res = res.data |
| | | if (res.code === 200) { |
| | | res.data['chose'] = '' |
| | | that.emptyMatList = res.data |
| | | |
| | | 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') |
| | | }, |
| | | click(type) { |
| | | if (type == 'left') { |
| | | this.btns = this.onBtns |
| | | this.text = '上架' |
| | | this.type = 'load' |
| | | this.tipsTitle = '上架数量' |
| | | } else { |
| | | this.btns = this.outBtns |
| | | this.type = 'unload' |
| | | this.text = '下架' |
| | | this.tipsTitle = '下架数量' |
| | | } |
| | | this.$refs.revise.open(type) |
| | | upPallet() { |
| | | let tmp = []; |
| | | this.cacheSiteList.forEach((item) => { |
| | | tmp.push({ |
| | | text: item.name, |
| | | value: item.code |
| | | }) |
| | | }) |
| | | |
| | | this.chooseCacheSiteList = tmp; |
| | | this.upPalletPopup() |
| | | }, |
| | | option(item) { |
| | | this.item = item |
| | | this.$refs.numberPopup.open('center') |
| | | 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) |
| | | }, |
| | | // 所有服务 |
| | |
| | | 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' |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | |
| | | <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; |
| | |
| | | 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; |
| | |
| | | flex-direction: column; |
| | | justify-content: space-around; |
| | | } |
| | | |
| | | .popup2 { |
| | | background-color: #eee; |
| | | width: 30vw; |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | padding: 2rpx 10rpx; |
| | | margin: 20rpx; |
| | | } |
| | | |
| | | .popup3-input-box2 { |
| | | display: flex; |
| | | border: 1px solid #cecece; |
| | |
| | | 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> |