#
whycq
2024-04-10 e3b84d48cef3e024e4a17b4df35f47cf3e63e820
pages/phyz/stationManage/stationManage.vue
@@ -2,21 +2,31 @@
   <view>
      <view class="code">
         <uni-search-bar :focus="searchValueFocus" v-model="searchValue"  @input="searchValueInput()"
            maxlength="500" ancel="cancel" @clear="clear" placeholder="输入 / 扫描 订单号">
            maxlength="500" ancel="cancel" @clear="clear" placeholder="输入 / 扫描 站点号">
         </uni-search-bar>
      </view>
      <view class="list" style="background-color: #3eb689;color: #fff;" v-if="station">
      <view class="list" :class="item.style" v-if="stations" v-for="item in stations">
         <view class="list-left">
            <view>站点编号:{{station.stationCode}}</view>
            <view>工位编号:{{station.devNo}}</view>
            <view>工位状态:{{station.locSts$}}</view>
            <view>条形码:{{station.barcode}}</view>
            <view>工位编号:{{item.devNo}}</view>
            <view>站点状态:{{item.locSts$}}</view>
            <view>货架码:{{item.barcode}}</view>
            <view>站点类型:{{item.locType1$}}</view>
            <!-- <view class="card-id">{{i + 1}}</view> -->
         </view>
         <view class="list-right" @click="getOrderDetl(item)">
            <uni-icons type="right" color="#fff"></uni-icons>
         </view>
      </view>
      <!-- <view class="list" style="background-color: #3eb689;color: #fff;" v-if="station">
         <view class="list-left">
            <view>工位编号:{{station.devNo}}</view>
            <view>站点状态:{{station.locSts$}}</view>
            <view>条形码:{{station.barcode}}</view>
         </view>
         <view class="list-right" @click="getOrderDetl(item)">
            <uni-icons type="right" color="#fff"></uni-icons>
         </view>
      </view> -->
      <view class="list" style="background-color: #019fe8;color: #fff;" v-if="wrkMast">
         <view class="list-left">
            <view>工作号:{{wrkMast.wrkNo}}</view>
@@ -42,7 +52,51 @@
         </view>
      </view>
      
      <view class="list" style="background-color: #fda800;color: #fff;" v-if="!wrkDetls" v-for="wrkMast in waitPakins">
         <view class="list-left">
            <view>物料号:{{wrkMast.matnr}}</view>
            <view>物料名称:{{wrkMast.maktx}}</view>
            <view>批号:{{wrkMast.batch}}</view>
            <view>规格:{{wrkMast.specs}}</view>
            <view>数量:{{wrkMast.anfme}}</view>
         </view>
      </view>
      <view style="height: 100rpx;"></view>
      <!-- 空板入库弹窗 -->
      <view>
         <uni-popup ref="revise" type="dialog">
            <view class="popup">
               <!-- 标题 -->
               <view class="title">请录入货架码</view>
               <view class="popup-item">
                  <view class="popup-item-left">货架码:</view>
                  <view class="popup-item-right"><input type="text" v-model="barcode"></view>
               </view>
               <view class="btn">
                  <view class="btn-left" @click="reviseClose">取消</view>
                  <view class="btn-right" @click="reviseConfirm()">入库</view>
               </view>
            </view>
         </uni-popup>
      </view>
      <!-- 底部操作按钮 -->
      <view class="buttom" v-if="waitPakins.length > 0">
         <button size="mini" type="primary" @click="startPakin(searchValue)" v-if="waitPakins">启动入库</button>
      </view>
      <!-- 底部操作按钮 -->
      <view class="buttom" v-if="station.locSts == 'O'">
         <button size="mini" type="primary" @click="emptyPakin()">空板入库</button>
      </view>
      <!-- 底部操作按钮 -->
      <view class="buttom" v-if="wrkMast">
         <button size="mini" type="primary" @click="containerMoveOut(searchValue)" v-if="wrkMast.ioType == 101">确认出库</button>
         <button size="mini" type="primary" @click="pickIn(searchValue)" v-if="wrkMast.ioType == 103">已拣料回库</button>
      </view>
   </view>
</template>
@@ -55,33 +109,37 @@
            searchValueFocus: true,
            searchValue: '',
            station: '',
            stations: [],
            wrkMast: '',
            wrkDetls: []
            wrkDetls: [],
            waitPakins: [],
            barcode: '',
            option: 'pick'
         }
      },
      onLoad() {
      onShow() {
         this.baseUrl = uni.getStorageSync('baseUrl');
         this.token = uni.getStorageSync('token');
      },
      onShow() {
         this.getBasDevp('all')
         this.searchValueFocus = true
      },
      methods: {
         searchValueInput() {
            if (this.searchValue == '') {
               this.station = ''
               this.stations = []
               this.wrkMast = ''
               this.wrkDetls = []
            } else {
               this.getBasDevp()
               this.getBasDevp('one')
            }
         },
         clear() {
            this.waitPakins = []
            this.wrkDetls = []
         },
         // 获取暂存位
         getBasDevp() {
         getBasDevp(type) {
            let _this = this
            uni.request({
               url: `${_this.baseUrl}/agv/basDevp/list/auth`,
@@ -95,9 +153,49 @@
               success(res) {
                  res = res.data
                  if (res.code === 200) {
                     if (type == 'all') {
                        for  (let k of res.data.records) {
                           if (k.locSts != 'O') {
                              k['style'] = 'station-wrk'
                           } else {
                              k['style'] = 'station-nowrk'
                           }
                        }
                        _this.stations = res.data.records
                     } else {
                        res.data.records
                        for (let item of res.data.records) {
                           if (item.locSts != 'O') {
                              item['style'] = 'station-wrk'
                           } else {
                              item['style'] = 'station-nowrk'
                           }
                        }
                        _this.getOrderDetl(res.data.records[0])
                     }
                  }
               }
            })
         },
         // 获取组托档
         getWaitPakin(barcode) {
            let _this = this
            uni.request({
               url: `${_this.baseUrl}/agv/waitPakin/list/auth`,
               header: {'token': uni.getStorageSync('token')},
               data: {
                  curr: 1,
                  limit: 1000,
                  supp_code: barcode
               },
               method: 'GET',
               success(res) {
                  res = res.data
                  if (res.code === 200) {
                     for (let item of res.data.records) {
                        _this.station = item
                        _this.getWrkMast(item.barcode)
                        _this.waitPakins = res.data.records
                        // _this.getWrkDetl(item.wrkNo)
                     }
                  }
               }
@@ -126,6 +224,7 @@
               }
            })
         },
         // 获取工作明细
         getWrkDetl(wrkNo) {
            let _this = this
            uni.request({
@@ -144,6 +243,151 @@
                  }
               }
            })
         },
         // 拣料回库
         pickIn(e) {
            let _this = this
            uni.request({
               url: `${_this.baseUrl}/agv/basDevp/visualized/container/pickIn`,
               data: {devNo: e},
               method: 'POST',
               success(res) {
                  res = res.data
                  if (res.code === 200) {
                     _this.searchValue = ''
                     setTimeout(()=> {
                        _this.searchValue = ''
                        _this.station = ''
                        _this.wrkMast = ''
                        _this.wrkDetls = []
                        _this.waitPakins = []
                     },100)
                  } else {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                     setTimeout(()=> {
                        _this.searchValue = ''
                        _this.getBasDevp()
                     },2000)
                  }
               }
            })
         },
         // 容器离场
         containerMoveOut(e) {
            let _this = this
            let devNo = {devNo:[e]}
            // console.log(JSON.stringify(devNo));
            uni.request({
               url: `${_this.baseUrl}/agv/basDevp/visualized/container/moveOut`,
               data: JSON.stringify(devNo),
               method: 'POST',
               success(res) {
                  res = res.data
                  if (res.code === 200) {
                     _this.searchValue = ''
                     setTimeout(()=> {
                        _this.searchValue = ''
                        _this.station = ''
                        _this.wrkMast = ''
                        _this.wrkDetls = []
                        _this.waitPakins = []
                     },100)
                  } else {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                     setTimeout(()=> {
                        _this.searchValue = ''
                        _this.getBasDevp()
                     },2000)
                  }
               }
            })
         },
         // 启动入库
         startPakin(type) {
            let that = this
            let params = []
            let param = {}
            if (type == 'empty') {
               param = {
                  devNo: this.searchValue,
                  containerCode: this.barcode,
               }
            } else {
               param = {
                  devNo: this.searchValue,
                  containerCode: this.station.barcode,
               }
            }
            params.push(param)
            uni.request({
               url: that.baseUrl + '/agvMobile/pakin/empty/auth',
               data: {pad: params},
               method: 'POST',
               header: {'token': uni.getStorageSync('token')},
               success(result) {
                  var res = result.data
                  if (res.code === 200) {
                     setTimeout(()=> {
                        that.searchValue = ''
                        that.station = ''
                        that.wrkMast = ''
                        that.wrkDetls = []
                        that.waitPakins = []
                     },300)
                     uni.showToast({
                        title: res.msg,
                        icon: "none",
                        position: 'top'
                     })
                  } else if (res.code == 403) {
                     that.messageText = res.msg
                     that.messageToggle('error')
                     setTimeout(() => {
                        uni.reLaunch({
                           url: '../login/login'
                        });
                     }, 1000);
                  } else {
                     that.messageText = res.msg
                     that.messageToggle('error')
                  }
               }
            });
         },
         // 空板入库
         emptyPakin() {
            let _this = this
            this.$refs.revise.open()
         },
         // 取消空板入库
         reviseClose() {
            this.$refs.revise.close()
         },
         // 确认空板入库
         reviseConfirm() {
            this.startPakin('empty')
            this.$refs.revise.close()
         },
         // 前往站点明细页面
         getOrderDetl(e) {
            let _this = this
            uni.navigateTo({
               url: "./stationDetl",
               success: function(res) {
                  // 通过eventChannel向被打开页面传送数据   向另外一个页面传递值的
                  res.eventChannel.emit('item', {
                     item: e
                  })
                  _this.searchValue = ''
               },
               events: {
                  // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据  另外一个页面传过来的
                  acceptDataFromOpenedPage: function(data) {
                     _this.searchValueFocus = true
                  }
               },
            });
         }
      }
   }
@@ -163,4 +407,76 @@
      color: #e2231a;
      font-weight: bold;
   }
   .popup {
      width: 80vw;
      min-height: 100rpx;
      background-color: #FFF;
      border-radius: 25rpx;
   }
   .title {
      height: 100rpx;
      line-height: 100rpx;
      width: 100%;
      color: #606266;
      text-align: center;
      font-size: 16px;
   }
   .popup-item {
      height: 80rpx;
      line-height: 80rpx;
      display: flex;
      align-items: center;
      font-size: 14px;
   }
   .popup-item-left {
      width: 16vw;
      padding-right: 20rpx;
      text-align: right;
      color: #606266;
   }
   .popup-item-right {
      display: flex;
      align-items: center;
      width: 50vw;
      height: 50rpx;
      padding: 2px 5px;
      border: 1px solid #E4E7ED;
      border-radius: 5rpx;
   }
   .popup-item-right input{
      color: #606266;
   }
   .btn {
      display: flex;
      height: 90rpx;
      margin-top: 20rpx;
      border-top: 1px solid #DCDFE6;
      justify-content: center;
      align-items: center;
   }
   .btn-left {
      display: flex;
      flex: 1;
      height: 100%;
      justify-content: center;
      align-items: center;
      color: #606266;
      border-right: 1px solid #DCDFE6;
   }
   .btn-right {
      display: flex;
      flex: 1;
      justify-content: center;
      align-items: center;
      color: #409EFF;
   }
   .station-wrk {
      background-color: #ff7356;
      color: #fff;
   }
   .station-nowrk {
      background-color: #3eb689;
      color: #fff;
   }
</style>