#
whycq
2024-03-18 f2232657e8109b0ed4f76b3913e0d4b9713e2af6
pages/project/jmAGV/home.vue
@@ -1,5 +1,6 @@
<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">
@@ -13,29 +14,60 @@
         </view>
      </view>
      
      <view>
         <uni-popup ref="revise" type="dialog">
            <view class="popup">
               <view>{{text}}</view>
               <view  class="popup3-input-title">{{text}}</view>
               <view class="button-nk" @click="upTray()">{{btnTitle1}}</view>
               <view class="button-nk" @click="downTray">{{btnTitle2}}</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>
         <uni-popup ref="revise2" type="dialog">
      <view>
         <uni-popup ref="numberPopup" type="dialog">
            <view class="popup2">
               <view>123</view>
               <view class="button-nk" @click="inHouse">托盘-仓库(入库)</view>
               <view class="button-nk" @click="outHouse">仓库-托盘(出库)</view>
               <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>
      <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 {
@@ -65,11 +97,22 @@
               {name: '9号托盘站',code:'KW-9',type: 'tray'},
               {name: '10号托盘站',code:'KW-10',type: 'tray'}
            ],
            emptyMatList: [],
            item: '',
            text: '',
            btnTitle1: '',
            btnTitle2: '',
            stationType: 'load'
            btnTitle3: '',
            outType: '',
            stationType: 'load',
            type: '' ,
            originLocal: '',
            targetLocal: '',
            code: '',
            meter: '',
            meterShow: '',
            desc: '',
            tipsTitle: '',
         }
      },
      onShow() {
@@ -78,38 +121,166 @@
         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.btnTitle2 = '仓库-空托盘(出库)'
               this.btnTitle3 = '仓库-满托盘(出库)'
            }
            this.$refs.revise.open(type)
         },
         upTray() {
            let _this = this
            let type = '',originLocal = '',targetLocal = '';
            if (this.item.type == 'foolr') {
               type = 'load', // 上架
               originLocal = this.item.code,
               targetLocal = this.item.traget
            } else {
               type = 'in' // 入库
               originLocal = this.item.code,
               targetLocal = 'KW-J'
         chose(matnr) {
            for (let k of this.emptyMatList) {
               if (k.matnr == matnr) {
                  k.chose = 'chosed'
               } else {
                  k.chose = ''
               }
               this.$forceUpdate() // 强制刷新
            }
            // this.text = originLocal + targetLocal
            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/inBound`,
               data: {
                  originLocal: originLocal,
                  targetLocal: targetLocal,
                  type: type
               },
               url: `${_this.baseUrl}/agv/requestTask`,
               data: data,
               header: { 'token': uni.getStorageSync('token') },
               method: 'POST',
               success(res) {
@@ -118,46 +289,12 @@
                     this.$refs.revise.close()
                     uni.showToast({ title: '操作成功', icon: "none", position: 'top' })
                  } else {
                     uni.showToast({ title: '异常!!!', icon: "none", position: 'top' })
                     uni.showToast({ title: res.msg, icon: "none", position: 'top' })
                  }
                  
               }
            })
         },
         downTray() {
            let _this = this
            let type = '',originLocal = '',targetLocal = '';
            if (this.item.type == 'foolr') {
               type = 'unload', // 下架
               originLocal = this.item.traget,
               targetLocal = this.item.code
            } else {
               type = 'out' // 出库
               originLocal = 'KW-C'
               targetLocal = this.item.code
            }
            // this.text = originLocal + targetLocal
            uni.request({
               url: `${_this.baseUrl}/agv/inBound`,
               data: {
                  originLocal: originLocal,
                  targetLocal: targetLocal,
                  type: type
               },
               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: '异常!!!', icon: "none", position: 'top' })
                  }
               }
            })
         }
      }
   }
</script>
@@ -168,18 +305,20 @@
      /* background-color: aqua; */
      display: grid;
      grid-template-columns: 50% 50%;
      width: 100%;
   }
   .btn-box {
      /* margin: 1%; */
      background-color: azure;
   }
   .zcard {
   /* .zcard {
      margin: 10px 100px;
      /* background-color: blanchedalmond; */
   }
      background-color: #409EFF;
   } */
   .zcard-flex {
      /* background-color: coral; */
      margin-top: 20rpx;
      width: 100%;
      height: 100%;
      display: flex;
@@ -189,15 +328,15 @@
      align-items: center;
   }
   .button-nk {
      margin: 10rpx;
      padding: 20rpx 70rpx;
      margin: 10rpx 0rpx;
      /* padding: 20rpx 70rpx; */
      /* background-color: azure; */
      min-width: 200rpx;
      min-width: 100rpx;
      /* margin: 0 auto; */
      height: 50px;
      height: 50rpx;
      text-align: center;
      line-height: 50px;
      font-size: 20px;
      line-height: 50rpx;
      font-size: 20rpx;
      background-color: #409EFF;
      color: #ECF0F1;
      border-radius: 7px;
@@ -228,5 +367,52 @@
      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>