| <template> | 
|     <view> | 
|         <view style="padding: 16rpx 32rpx;font-size: 20px;font-weight: bold;"> | 
|             <view>当前库位号:{{locNo}}</view> | 
|             <view>当前货架码:{{barcode}}</view> | 
|         </view> | 
|         <view class="list list-font-color" :class="locDetl.color" v-for="(locDetl,index) in dataList" :key="index"> | 
|             <view class="list-left"> | 
|                 <view>销售订单号:{{locDetl.threeCode}}</view> | 
|                 <view>主订单号:{{locDetl.orderNo}}</view> | 
|                 <view>商品编码:{{locDetl.matnr}}</view> | 
|                 <view>商品名称:{{locDetl.maktx}}</view> | 
|                 <view>工序:{{locDetl.processSts$}}</view> | 
|                 <view>库存:{{locDetl.count}}</view> | 
|             </view> | 
|             <!-- <view class="list-right" @click="chageDetl(index)"> | 
|                 <uni-icons type="settings" size="25"  color="#fff"></uni-icons> | 
|             </view> --> | 
|         </view> | 
|         <!-- <view style="height: 100rpx;display: flex;align-items: center;justify-content: center;" @click="add()"> | 
|             <uni-icons type="folder-add" size="25"  color="#000" style="padding-right: 20rpx;"></uni-icons> 添加物料 | 
|         </view> --> | 
|          | 
|          | 
|         <!-- 弹窗 --> | 
|         <view> | 
|             <uni-popup ref="chageDetl" type="dialog"> | 
|                 <view class="popup"> | 
|                     <!-- 标题 --> | 
|                     <view class="title">商品信息</view> | 
|                     <view class="popup-item"> | 
|                         <view style="width: 70px;">订单号</view> | 
|                         <view style="margin-left: 20rpx;border-bottom: 1px solid #d8d8d8;"> <input type="text" v-model="orderNo"> </view> | 
|                     </view> | 
|                     <view class="popup-item"> | 
|                         <view  style="width: 70px;">销售单号</view> | 
|                         <view style="margin-left: 20rpx;border-bottom: 1px solid #d8d8d8;"> <input type="text" v-model="threeCode"> </view> | 
|                     </view> | 
|                     <view class="popup-item"> | 
|                         <view  style="width: 70px;">工序</view> | 
|                             <uni-combox style="height: 20px;" :candidates="processSts$List" placeholder="请选择工序" v-model="processSts$"></uni-combox> | 
|                         </view> | 
|                     <view class="popup-item"> | 
|                         <uni-number-box :value="count" :step='0.01' :max="9999999" color="#747474" @change="changeValue" /> | 
|                     </view> | 
|                     <view class="btn"> | 
|                         <view class="btn-left" @click="remove()">移除</view> | 
|                         <view class="btn-right" @click="changeCount()">修改</view> | 
|                     </view> | 
|                 </view> | 
|             </uni-popup> | 
|         </view> | 
|         <!-- 底部操作按钮 --> | 
|         <!-- <view class="buttom"> | 
|             <button size="mini" type="primary" @click="adjust('warn')">调整库存</button> | 
|         </view> --> | 
|     </view> | 
| </template> | 
|   | 
| <script> | 
|     export default { | 
|         data() { | 
|             return { | 
|                 baseUrl: '', | 
|                 token: '', | 
|                 dataList: [], | 
|                 count: '', | 
|                 index: 0, | 
|                 locNo: '', | 
|                 barcode: '', | 
|                 orderNo: '', | 
|                 threeCode: '', | 
|                 processSts$: '', | 
|                 processSts$List: ['待加工','已加工','无需加工'] | 
|             } | 
|         }, | 
|         onShow() { | 
|             let _this = this | 
|             this.baseUrl = uni.getStorageSync('baseUrl'); | 
|             this.token = uni.getStorageSync('token'); | 
|             // const eventChannel = this.$scope.eventChannel; // 兼容APP-NVUE | 
|             const eventChannel = this.getOpenerEventChannel(); | 
|             // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据 | 
|             // eventChannel.on('item', function(data) { | 
|             //     console.log(data); | 
|             //     _this.locNo = data.item.locNo | 
|             //     _this.barcode = data.item.barcode | 
|             //     for (let k of data.item.data) { | 
|             //         k['count'] = k.anfme | 
|             //     } | 
|             //     _this.dataList = data.item.data | 
|             // }) | 
|             eventChannel.on('baseInfo', function(data) { | 
|                 console.log(data); | 
|                 _this.getLocDetl(data.info.locNo,data.info.barcode) | 
|                 _this.locNo = data.info.locNo | 
|                 _this.barcode = data.info.barcode | 
|                 _this.type = data.info.type | 
|             }) | 
|         }, | 
|         methods: { | 
|             getLocDetl(locNo,barcode) { | 
|                 let _this = this  | 
|                 let param = {locNo:locNo,containerCode: barcode} | 
|                 uni.request({ | 
|                     url: `${_this.baseUrl}/agvMobile/check/detl/v1`, | 
|                     header: {'token': uni.getStorageSync('token')}, | 
|                     data: param, | 
|                     method: 'POST', | 
|                     success(res) { | 
|                         res = res.data | 
|                         console.log(res); | 
|                         if (res.code === 200) { | 
|                             if (_this.type == 'con') { | 
|                                 _this.dataList = res.data.containerCode | 
|                             } else { | 
|                                 _this.dataList = res.data.locNo | 
|                             } | 
|                              | 
|                         } 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' }) | 
|                         } | 
|                     } | 
|                 }) | 
|             }, | 
|             add() { | 
|                 let _this = this | 
|                 uni.navigateTo({ | 
|                     url: "../mat/mat", | 
|                     events: { | 
|                         // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据  另外一个页面传过来的 | 
|                         acceptDataFromOpenedPage: function(data) { | 
|                             console.log(data.data); | 
|                             setTimeout(()=> { | 
|                                 _this.findMat(data.data) | 
|                             },100) | 
|                         } | 
|                     }, | 
|                 }); | 
|             }, | 
|             findMat(mat) { | 
|                 let _this = this | 
|                 uni.navigateTo({ | 
|                     url: "../mat/matSelected", | 
|                     success: function(res) { | 
|                         // 通过eventChannel向被打开页面传送数据   向另外一个页面传递值的 | 
|                         res.eventChannel.emit('item', { | 
|                             item: mat | 
|                         }) | 
|                     }, | 
|                     events: { | 
|                         matList: function(data) { | 
|                             data.data.suppCode = _this.barcode | 
|                             _this.checkMat(data.data) | 
|                         }, | 
|                     }, | 
|                 }); | 
|             }, | 
|             checkMat(mat) { | 
|                 var len = this.dataList.length | 
|                 var add = true ,sameItem = false | 
|                 for (var i = 0; i < len; i++) { | 
|                     if (mat.matnr == this.dataList[i].matnr) { | 
|                         for (var j = 0; j < len; j++) { | 
|                             if (mat.threeCode == this.dataList[j].threeCode) { | 
|                                 sameItem = true | 
|                             } | 
|                         } | 
|                         // 相同物料 不同批号  新加列表 | 
|                         if (mat.threeCode != this.dataList[i].threeCode) { | 
|                             this.$forceUpdate() // 强制刷新 | 
|                             if (sameItem) { | 
|                                 add = false | 
|                             } else { | 
|                                 add = true | 
|                             } | 
|                              | 
|                         } else { | 
|                             // 相同物料相同批号 数量累加 | 
|                             this.dataList[i].count += mat.count | 
|                             this.$forceUpdate() // 强制刷新 | 
|                             add = false | 
|                         } | 
|                     } | 
|                 } | 
|                 if (add) { | 
|                     this.dataList.unshift(mat) | 
|                 } | 
|             }, | 
|             chageDetl(index) { | 
|                 this.index = index | 
|                 this.count = this.dataList[index].count | 
|                 this.threeCode = this.dataList[index].threeCode | 
|                 this.orderNo = this.dataList[index].orderNo | 
|                 this.processSts$ = this.dataList[index].processSts$ | 
|                 this.$refs.chageDetl.open() | 
|             }, | 
|             // 修改数量 | 
|             changeCount() { | 
|                 this.dataList[this.index].count = this.count | 
|                 this.dataList[this.index].threeCode = this.threeCode | 
|                 this.dataList[this.index].orderNo = this.orderNo | 
|                 this.dataList[this.index].processSts$ = this.processSts$ | 
|                 switch(this.processSts$) { | 
|                     case '待加工': | 
|                         this.dataList[this.index].processSts = 1 | 
|                         break; | 
|                     case '已加工': | 
|                         this.dataList[this.index].processSts = 2 | 
|                         break; | 
|                     case '无需加工': | 
|                         this.dataList[this.index].processSts = 3 | 
|                         break; | 
|                 } | 
|                 this.$forceUpdate() // 强制刷新 | 
|                 this.$refs.chageDetl.close() | 
|             }, | 
|             // 移除物料 | 
|             remove() { | 
|                 this.dataList.splice(this.index, 1) | 
|                 this.$refs.chageDetl.close() | 
|             }, | 
|             adjust() { | 
|                 let _this = this | 
|                 let param = { | 
|                     locNo: _this.locNo, | 
|                     list: _this.dataList | 
|                 } | 
|                 uni.request({ | 
|                     url: `${_this.baseUrl}/agv/locDdetl/adjust/start`, | 
|                     header: {'token': uni.getStorageSync('token')}, | 
|                     data: param, | 
|                     method: 'POST', | 
|                     success(res) { | 
|                         res = res.data | 
|                         if (res.code == 200) { | 
|                             uni.showToast({ title: res.msg, icon: "success", position: 'top' }) | 
|                             _this.$refs.chageDetl.close() | 
|                             _this.getOpenerEventChannel().emit('acceptDataFromOpenedPage', {data: this.mat}); | 
|                             setTimeout(()=> { | 
|                                 uni.navigateBack() | 
|                             },1000) | 
|                         } 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' }) | 
|                         } | 
|                     } | 
|                 }) | 
|             }, | 
|             changeValue(value) { | 
|                 this.count = value | 
|             }, | 
|         } | 
|     } | 
| </script> | 
|   | 
| <style> | 
|     @import url('../../../static/css/common/order.css'); | 
|     .list-font-color { | 
|         color: #fff; | 
|         background-color: #2299ff; | 
|     } | 
|     .order-sts-start { | 
|         background-color: #3eb689; | 
|     } | 
|     .popup { | 
|         width: 80vw; | 
|         min-height: 100rpx; | 
|         background-color: #FFF; | 
|         border-radius: 25rpx; | 
|         position: relative; | 
|     } | 
|     .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; | 
|         justify-content: center; | 
|     } | 
|     .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: #e2231a; | 
|         border-right: 1px solid #DCDFE6; | 
|     } | 
|     .btn-right { | 
|         display: flex; | 
|         flex: 1; | 
|         justify-content: center; | 
|         align-items: center; | 
|         color: #409EFF; | 
|     } | 
| </style> |