|  |  | 
 |  |  |    <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" 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>工位编号:{{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.locSts$}}</view> | 
 |  |  |             <view>条形码:{{station.barcode}}</view> | 
 |  |  |             <!-- <view class="card-id">{{i + 1}}</view> --> | 
 |  |  |          </view> | 
 |  |  |          <view class="list-right" @click="getOrderDetl(item)"> | 
 |  |  |             <uni-icons type="right" color="#c1c1c1"></uni-icons> | 
 |  |  |             <uni-icons type="right" color="#fff"></uni-icons> | 
 |  |  |          </view> | 
 |  |  |       </view> | 
 |  |  |       <view class="list" v-if="wrkMast"> | 
 |  |  |       <view class="list" style="background-color: #019fe8;color: #fff;" v-if="wrkMast"> | 
 |  |  |          <view class="list-left"> | 
 |  |  |             <view>工作号:{{wrkMast.wrkNo}}</view> | 
 |  |  |             <view>工作状态:{{wrkMast.wrkSts$}}</view> | 
 |  |  | 
 |  |  |             <view>料箱码:{{wrkMast.barcode}}</view> | 
 |  |  |             <!-- <view class="card-id">{{i + 1}}</view> --> | 
 |  |  |          </view> | 
 |  |  |          <view class="list-right" @click="getOrderDetl(item)"> | 
 |  |  |             <uni-icons type="right" color="#c1c1c1"></uni-icons> | 
 |  |  |          <!-- <view class="list-right" @click="getOrderDetl(item)"> | 
 |  |  |             <uni-icons type="right" color="#fff"></uni-icons> | 
 |  |  |          </view> --> | 
 |  |  |       </view> | 
 |  |  | 		 | 
 |  |  |       <view class="list" style="background-color: #fda800;color: #fff;" v-for="wrkMast in wrkDetls"> | 
 |  |  |          <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 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> | 
 |  |  | 
 |  |  |             searchValueFocus: true, | 
 |  |  |             searchValue: '', | 
 |  |  |             station: '', | 
 |  |  |             wrkMast: '' | 
 |  |  | 				 | 
 |  |  |             stations: [], | 
 |  |  |             wrkMast: '', | 
 |  |  |             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() { | 
 |  |  |             this.getBasDevp() | 
 |  |  |             if (this.searchValue == '') { | 
 |  |  |                this.station = '' | 
 |  |  |                this.wrkMast = '' | 
 |  |  |                this.wrkDetls = [] | 
 |  |  |             } else { | 
 |  |  |                this.getBasDevp('one') | 
 |  |  |             } | 
 |  |  |          }, | 
 |  |  |          clear() { | 
 |  |  |             this.waitPakins = [] | 
 |  |  |             this.wrkDetls = [] | 
 |  |  |          }, | 
 |  |  |          // 获取暂存位 | 
 |  |  |          getBasDevp() { | 
 |  |  |          getBasDevp(type) { | 
 |  |  |             let _this = this | 
 |  |  |             uni.request({ | 
 |  |  |                url: `${_this.baseUrl}/agv/basDevp/list/auth`, | 
 |  |  | 
 |  |  |                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 { | 
 |  |  |                         console.log(123213); | 
 |  |  |                         for (let item of res.data.records) { | 
 |  |  |                            if (item.locSts != 'O') { | 
 |  |  |                               item['style'] = 'station-wrk' | 
 |  |  |                            } else { | 
 |  |  |                               item['style'] = 'station-nowrk' | 
 |  |  |                            } | 
 |  |  |                            _this.station = item | 
 |  |  |                            _this.getOrderDetl(_this.station) | 
 |  |  |                         } | 
 |  |  |                      } | 
 |  |  | 							 | 
 |  |  |                   } | 
 |  |  |                } | 
 |  |  |             }) | 
 |  |  |          }, | 
 |  |  |          // 获取组托档 | 
 |  |  |          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) | 
 |  |  |                      } | 
 |  |  |                   } | 
 |  |  |                } | 
 |  |  | 
 |  |  |                   if (res.code === 200) { | 
 |  |  |                      for (let item of res.data.records) { | 
 |  |  |                         _this.wrkMast = item | 
 |  |  |                         _this.getWrkDetl(item.wrkNo) | 
 |  |  |                      } | 
 |  |  |                   } | 
 |  |  |                } | 
 |  |  |             }) | 
 |  |  |          }, | 
 |  |  |          // 获取工作明细 | 
 |  |  |          getWrkDetl(wrkNo) { | 
 |  |  |             let _this = this | 
 |  |  |             uni.request({ | 
 |  |  |                url: `${_this.baseUrl}/agv/wrkDetl/list/auth`, | 
 |  |  |                header: {'token': uni.getStorageSync('token')}, | 
 |  |  |                data: { | 
 |  |  |                   curr: 1, | 
 |  |  |                   limit: 1000, | 
 |  |  |                   wrk_no: wrkNo | 
 |  |  |                }, | 
 |  |  |                method: 'GET', | 
 |  |  |                success(res) { | 
 |  |  |                   res = res.data | 
 |  |  |                   if (res.code === 200) { | 
 |  |  |                      _this.wrkDetls = res.data.records | 
 |  |  |                   } | 
 |  |  |                } | 
 |  |  |             }) | 
 |  |  |          }, | 
 |  |  |          // 拣料回库 | 
 |  |  |          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(item) { | 
 |  |  |             let _this = this | 
 |  |  |             uni.navigateTo({ | 
 |  |  |                url: "./stationDetl", | 
 |  |  |                success: function(res) { | 
 |  |  |                   // 通过eventChannel向被打开页面传送数据   向另外一个页面传递值的 | 
 |  |  |                   res.eventChannel.emit('item', { | 
 |  |  |                      item: item | 
 |  |  |                   }), | 
 |  |  |                   _this.searchValue = '' | 
 |  |  |                }, | 
 |  |  |                events: { | 
 |  |  |                   // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据  另外一个页面传过来的 | 
 |  |  |                   acceptDataFromOpenedPage: function(data) { | 
 |  |  |                      _this.searchValueFocus = true | 
 |  |  |                   }, | 
 |  |  |                }, | 
 |  |  |             }); | 
 |  |  |          } | 
 |  |  |       } | 
 |  |  |    } | 
 |  |  | 
 |  |  |       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> |