|  |  | 
 |  |  | <template> | 
 |  |  |    <view> | 
 |  |  |       <view class="station" :class="station.style" v-if="station"> | 
 |  |  |    <view style="font-size: 13px;"> | 
 |  |  |       <view class="station station-wrk" v-if="station"> | 
 |  |  |          <view class="mt-flex"> | 
 |  |  |             <view class="station-title" style="flex: 1;">{{station.devNo}}</view> | 
 |  |  |             <view class="station-title" style="flex: 4;">{{station.threeCode}}</view> | 
 |  |  |             <view class="station-title" style="flex: 1;"> | 
 |  |  |                <button size="mini" @click="allChecked()">{{allCheckBtnTitle}}</button> | 
 |  |  |             </view> | 
 |  |  |          </view> | 
 |  |  |          <view>站点类型:{{station.locType1$}}区</view> | 
 |  |  |          <view>货架前两位:{{station.locType2$}}</view> | 
 |  |  |          <view>站点状态:{{station.locSts$}}</view> | 
 |  |  |          <view class="mt-flex"> | 
 |  |  |             <view class="station-barcode" style="flex: 1">货架码:<text>{{station.barcode ? station.barcode : '--'}}</text></view> | 
 |  |  |             <view v-if="station.barcode && station.locSts == 'F'"><button size="mini" type="warn" @click="unbind()">解除绑定</button></view> | 
 |  |  |          <view>调拨单号:{{station.orderNo}}</view> | 
 |  |  |          <view>物料编号:{{station.matnr}}</view> | 
 |  |  |          <view style="width: 100%;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;">物料名称:{{station.maktx}}</view> | 
 |  |  |          <view style="display: flex;"> | 
 |  |  |             <view style="flex: 2;">调拨数量:{{station.anfme}}</view> | 
 |  |  |             <view style="flex: 3;">库存数量:{{station.stock}}</view> | 
 |  |  |          </view> | 
 |  |  |          <view style="display: flex;"> | 
 |  |  |             <view style="flex: 2;">已调拨数量:{{station.qty}}</view> | 
 |  |  |             <view style="flex: 3;">当前选择调拨数量:{{station.count ? station.count : 0}}</view> | 
 |  |  |          </view> | 
 |  |  |       </view> | 
 |  |  |       <!-- 垫高 --> | 
 |  |  |       <!-- <view style="height: 330rpx;text-align: center;color: #b9b9b9;"> | 
 |  |  |       </view> --> | 
 |  |  |       <view class="list list-font-color" :class="orderDetl.color" v-for="(orderDetl,index) in dataList" :key="index"> | 
 |  |  |          <view class="list-left" style="display: flex;flex-direction: column;"> | 
 |  |  |             <!-- 上 --> | 
 |  |  |             <view> | 
 |  |  |                <view class="detl-threeCode">{{orderDetl.threeCode}}</view> | 
 |  |  |                <view class="detl-locNo">{{orderDetl.locNo}}</view> | 
 |  |  |                <view class="detl-locNo">货架码:{{orderDetl.suppCode}}</view> | 
 |  |  |             </view> | 
 |  |  |             <!-- 中 --> | 
 |  |  |             <view style="display: flex;"> | 
 |  |  |                <view style="flex: 1;"> | 
 |  |  |                   <view>主单号:{{orderDetl.orderNo}}</view> | 
 |  |  |                   <view>编号:{{orderDetl.matnr}}</view> | 
 |  |  |                   <view>名称:{{orderDetl.maktx}}</view> | 
 |  |  |                   <view>库位状态:{{orderDetl.locSts$}}</view> | 
 |  |  |                   <view>库存数量:{{orderDetl.anfme}}</view> | 
 |  |  |                </view> | 
 |  |  |                <view class="out-btn" @click="pakoutPrive(orderDetl)"> | 
 |  |  |                   <view>出库</view> | 
 |  |  |                </view> | 
 |  |  |             </view> | 
 |  |  |             <!-- 下 --> | 
 |  |  |          </view> | 
 |  |  |          <!-- <view class="list-right" @click="goToLocDetl(orderDetl)"> | 
 |  |  |             <uni-icons type="right" size="25"  color="#fff"></uni-icons> | 
 |  |  |          </view> --> | 
 |  |  |          <view class="list-right" @click="checkboxChange(orderDetl)"> | 
 |  |  |             <label > | 
 |  |  |                <checkbox :value="orderDetl.orderNo" :checked="orderDetl.checked" v-show="orderDetl.locSts == 'F'" style="transform:scale(0.7)" /><text></text> | 
 |  |  |             </label> | 
 |  |  |          </view> | 
 |  |  |       </view> | 
 |  |  |        | 
 |  |  |       <!-- 垫高 --> | 
 |  |  |       <view style="height: 340rpx;text-align: center;color: #b9b9b9;"> | 
 |  |  |       <view style="height: 160rpx;text-align: center;color: #b9b9b9;"> | 
 |  |  |          - 已经到底了 - | 
 |  |  |       </view> | 
 |  |  |       <!-- 选择楼层弹窗 --> | 
 |  |  |       <view> | 
 |  |  |          <uni-popup ref="filter" type="dialog"> | 
 |  |  |             <view class="filter-popup"> | 
 |  |  |                <!-- 标题 --> | 
 |  |  |                <view class="title">调拨楼层</view> | 
 |  |  |                <view class="popup-item" style="width: 100%;display: flex;justify-content: center;"> | 
 |  |  |                   <view style="margin-top: 50rpx;width: 60%;"> | 
 |  |  |                      <uni-combox :candidates="floorList" placeholder="请选择目标楼层" v-model="floor"></uni-combox> | 
 |  |  |                   </view> | 
 |  |  |                </view> | 
 |  |  |                <view class="btn filter-btn"> | 
 |  |  |                   <view class="btn-right" @click="filterConfirm()">开始调拨</view> | 
 |  |  |                </view> | 
 |  |  |             </view> | 
 |  |  |          </uni-popup> | 
 |  |  |       </view> | 
 |  |  |       <!-- 底部操作按钮 --> | 
 |  |  |       <view class="buttom"> | 
 |  |  |          <button size="mini" @click="isAuto('unAuto')">手动</button> | 
 |  |  |          <button size="mini" type="primary" @click="isAuto('auto')">自动</button> | 
 |  |  |       </view> | 
 |  |  |    </view> | 
 |  |  | </template> | 
 |  |  | 
 |  |  |             baseUrl: '', | 
 |  |  |             token: '', | 
 |  |  |             dataList: [], | 
 |  |  |             dbList: [], | 
 |  |  |             count: 0, | 
 |  |  |             containerType: '', | 
 |  |  |             isOpen: true, | 
 |  |  |             option: '', | 
 |  |  |             selects: [], | 
 |  |  |             orderId: '' | 
 |  |  |             orderId: '', | 
 |  |  |             station: '', | 
 |  |  |             allCheck: false, | 
 |  |  |             allCheckBtnTitle: '全选', | 
 |  |  |             floorList: ['2楼','3楼'], | 
 |  |  |             floor: '', | 
 |  |  |             moveType: '' | 
 |  |  |          } | 
 |  |  |       }, | 
 |  |  |       onShow() { | 
 |  |  | 
 |  |  |          // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据 | 
 |  |  |          eventChannel.on('item', function(data) { | 
 |  |  |             console.log(data.item); | 
 |  |  |             data.item['count'] = 0 | 
 |  |  |             _this.station = data.item | 
 |  |  |             _this.orderId = data.item.id | 
 |  |  |             _this.getLocDetl(data.item.orderNo,data.item.threeCode,data.item.matnr,data.item.id) | 
 |  |  |          }) | 
 |  |  | 
 |  |  |                data: { | 
 |  |  |                   orderNo: orderNo, | 
 |  |  |                   threeCode: threeCode , | 
 |  |  |                   matnr: matnr | 
 |  |  |                   matnr: matnr, | 
 |  |  |                   floor: "F1" | 
 |  |  |                }, | 
 |  |  |                method: 'POST', | 
 |  |  |                success(res) { | 
 |  |  | 
 |  |  |          selected(option) { | 
 |  |  |             this.containerType = option | 
 |  |  |          }, | 
 |  |  |          checkboxChange(e) { | 
 |  |  |             console.log(e); | 
 |  |  |             let items = this.dataList, | 
 |  |  |             values = e.orderNo; | 
 |  |  |             if (e.checked) { | 
 |  |  |                this.$set(e,'checked',false) | 
 |  |  |             } else { | 
 |  |  |                if (e.locSts != "F") { | 
 |  |  |                   this.$set(e,'checked',false) | 
 |  |  |                } else { | 
 |  |  |                   this.$set(e,'checked',true) | 
 |  |  |                } | 
 |  |  |             } | 
 |  |  |             let num = 0 | 
 |  |  |             for (let k of items) { | 
 |  |  |                if (k.checked) { | 
 |  |  |                   num++ | 
 |  |  |                } | 
 |  |  |                if (num == items.length) { | 
 |  |  |                   this.allCheck = true | 
 |  |  |                   this.allCheckBtnTitle = '取消' | 
 |  |  |                } else { | 
 |  |  |                   this.allCheck = false | 
 |  |  |                   this.allCheckBtnTitle = '全选' | 
 |  |  |                } | 
 |  |  |             } | 
 |  |  |             this.upDateCount() | 
 |  |  |          }, | 
 |  |  |          upDateCount() { | 
 |  |  |             let num = 0 | 
 |  |  |             for (let k of this.dataList) { | 
 |  |  |                if (k.checked) { | 
 |  |  |                   num = num + k.anfme | 
 |  |  |                }  | 
 |  |  |             } | 
 |  |  |             this.station.count = num | 
 |  |  |          }, | 
 |  |  |          allChecked() { | 
 |  |  |             if (this.allCheck) { | 
 |  |  |                this.allCheck = false | 
 |  |  |                this.allCheckBtnTitle = '全选' | 
 |  |  |             } else { | 
 |  |  |                this.allCheck = true | 
 |  |  |                this.allCheckBtnTitle = '取消' | 
 |  |  |             } | 
 |  |  |             for (let item of this.dataList) { | 
 |  |  |                if (this.allCheck) { | 
 |  |  |                   // if (item.locSts == "F") | 
 |  |  |                   if (item.locSts != "F") { | 
 |  |  |                      this.$set(item,'checked',false) | 
 |  |  |                   } else { | 
 |  |  |                      this.$set(item,'checked',true) | 
 |  |  |                   } | 
 |  |  |                } else { | 
 |  |  |                   this.$set(item,'checked',false) | 
 |  |  |                } | 
 |  |  |             } | 
 |  |  |             this.upDateCount() | 
 |  |  |          }, | 
 |  |  |          isAuto(type) { | 
 |  |  |             this.dbList = [] | 
 |  |  |             for (let k of this.dataList) { | 
 |  |  |                if (k.checked) { | 
 |  |  |                   this.dbList.push(k) | 
 |  |  |                } | 
 |  |  |             } | 
 |  |  |             if (this.dbList.length == 0) { | 
 |  |  |                uni.showToast({ title: '请选择调拨库位', icon: "error", position: 'top' }) | 
 |  |  |                return | 
 |  |  |             } | 
 |  |  |             this.moveType = type | 
 |  |  |             this.$refs.filter.open('bottom') | 
 |  |  |          }, | 
 |  |  |          filterConfirm() { | 
 |  |  |             console.log(this.dbList); | 
 |  |  |             if (this.floor == '') { | 
 |  |  |                uni.showToast({ title: '请选择调拨楼层', icon: "error", position: 'top' }) | 
 |  |  |                return | 
 |  |  |             } | 
 |  |  |             let _this = this | 
 |  |  |             let param = {floor: this.floor,dbList: this.dbList,moveType: this.moveType} | 
 |  |  |             uni.request({ | 
 |  |  |                url: `${_this.baseUrl}/agvMobile/agv/v1/locMove`, | 
 |  |  |                header: {'token': uni.getStorageSync('token'),}, | 
 |  |  |                data: param, | 
 |  |  |                method: 'POST', | 
 |  |  |                success(res) { | 
 |  |  |                   console.log(res); | 
 |  |  |                   res = res.data | 
 |  |  |                   if (res.code === 200) { | 
 |  |  |                      uni.navigateBack({ | 
 |  |  |                         delta: 1 | 
 |  |  |                      }); | 
 |  |  |                   } else if (res.code == 403) { | 
 |  |  |                      uni.showToast({ title: res.msg, icon: "error", position: 'top' }) | 
 |  |  |                      setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000); | 
 |  |  |                   } else { | 
 |  |  |                      uni.showToast({ title: res.msg, icon: "error", position: 'top' }) | 
 |  |  |                   }  | 
 |  |  |                } | 
 |  |  |             }) | 
 |  |  |             this.$refs.filter.close('bottom') | 
 |  |  |          } | 
 |  |  |       } | 
 |  |  |    } | 
 |  |  | </script> | 
 |  |  |  | 
 |  |  | <style> | 
 |  |  |    @import url('../../../static/css/common/order.css'); | 
 |  |  | 	 | 
 |  |  |    .station { | 
 |  |  |       position: fixed; | 
 |  |  |       font-size: 18px; | 
 |  |  |       width: 96%; | 
 |  |  |       padding: 24rpx; | 
 |  |  |       z-index: 999; | 
 |  |  |       font-size: 14px; | 
 |  |  |    } | 
 |  |  |    .station-title { | 
 |  |  |       font-size: 32px; | 
 |  |  |       font-weight: bold; | 
 |  |  |       /* padding: 2rpx 0; */ | 
 |  |  |    } | 
 |  |  |    .station-barcode { | 
 |  |  |       font-size: 24px; | 
 |  |  |       font-weight: bold; | 
 |  |  |       padding: 24rpx 0; | 
 |  |  |    } | 
 |  |  |    .station-wrk { | 
 |  |  |       background-color: #ff7356; | 
 |  |  |       color: #fff; | 
 |  |  |    } | 
 |  |  |    .station-nowrk { | 
 |  |  |       background-color: #3eb689; | 
 |  |  |       color: #fff; | 
 |  |  |    } | 
 |  |  |    .list-font-color { | 
 |  |  |       color: #fff; | 
 |  |  |       /* background-color: #33bb44; */ | 
 |  |  | 
 |  |  |    } | 
 |  |  |    .popup-item { | 
 |  |  |       position: relative; | 
 |  |  |       height: 80rpx; | 
 |  |  |       line-height: 80rpx; | 
 |  |  |       display: flex; | 
 |  |  |       align-items: center; | 
 |  |  |       font-size: 14px; | 
 |  |  | 
 |  |  |       font-size: 22px; | 
 |  |  |       color: #3a3a3a; | 
 |  |  |    } | 
 |  |  |    .filter-popup { | 
 |  |  |       width: 100%; | 
 |  |  |       height: 40vh; | 
 |  |  |       background-color: #FFF; | 
 |  |  |       position: relative; | 
 |  |  |       border-radius: 30rpx 30rpx 0rpx 0rpx; | 
 |  |  |    } | 
 |  |  |    .filter-popup-item { | 
 |  |  |       height: 100%; | 
 |  |  |       width: 100%; | 
 |  |  |       background-color: #c9cdd5; | 
 |  |  |    } | 
 |  |  |    .filter-popup-item-left { | 
 |  |  |       width: 30%; | 
 |  |  |       height: 100%; | 
 |  |  |       background-color: #DCDFE6; | 
 |  |  | 		 | 
 |  |  |    } | 
 |  |  |    .filter-btn { | 
 |  |  |       position: absolute; | 
 |  |  |       left: 0; | 
 |  |  |       bottom: 0; | 
 |  |  |       width: 100%; | 
 |  |  |       background-color: #FFF; | 
 |  |  |    } | 
 |  |  | 	 | 
 |  |  | 	 | 
 |  |  | </style> |