| <template> | 
|     <view> | 
|         <view class="list list-font-color" style="background-color: #b9b9b9;" :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> | 
|                 <!-- 中 --> | 
|                 <view style="display: flex;"> | 
|                     <view style="flex: 1;"> | 
|                         <view>编号:{{orderDetl.matnr}}</view> | 
|                         <view>名称:{{orderDetl.maktx}}</view> | 
|                         <!-- <view>库位状态:{{orderDetl.locSts$}}</view> --> | 
|                         <view>源出库数量:{{orderDetl.maxCount}}</view> | 
|                         <view class="detl-threeCode" style="display: flex;padding: 32rpx 0;align-items: center;font-size: 24px;"> | 
|                             <view>加工数量:{{orderDetl.anfme}}</view> | 
|                             <view style="margin-left: 50rpx;" @click="revise(orderDetl)"> | 
|                                 <uni-icons type="compose" size="30" color="#fff"></uni-icons> | 
|                             </view> | 
|                         </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> | 
|          | 
|         <!-- 垫高 --> | 
|         <view style="height: 340rpx;text-align: center;color: #b9b9b9;"> | 
|             - 已经到底了 - | 
|         </view> | 
|         <!-- 弹窗 --> | 
|         <view> | 
|             <uni-popup ref="addItem" type="dialog"> | 
|                 <view class="popup"> | 
|                     <!-- 标题 --> | 
|                     <view class="title">出库数量</view> | 
|                     <view class="popup-item"> | 
|                         <view> | 
|                             <uni-number-box :value="data.anfme" :step='0.01' :min="0" :max="maxCount" color="#747474" @change="changeValue" /> | 
|                         </view> | 
|                          | 
|                     </view> | 
|                     <!-- <view class="popup-item"> | 
|                         <view> | 
|                             <view @click="max()" style="padding: 0rpx 16rpx;background-color: #d9d9d9;font-size: 10px;">MAX</view> | 
|                         </view> | 
|                          | 
|                     </view> --> | 
|                     <view class="btn"> | 
|                         <view class="btn-left" @click="addClose">取消</view> | 
|                         <view class="btn-right" @click="addConfirm()">确认</view> | 
|                     </view> | 
|                 </view> | 
|             </uni-popup> | 
|         </view> | 
|          | 
|         <!-- 弹窗 --> | 
|         <view> | 
|             <uni-popup ref="process" 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="popup-item"> | 
|                         <view class="popup-item-left">站点号:</view> | 
|                         <view class="popup-item-right"><input type="text" v-model="devNo"></view> | 
|                     </view> | 
|                     <view class="popup-item"> | 
|                         <view class="popup-item-left">目标楼层:</view> | 
|                         <view class="popup-item-right" style="border: none;"> | 
|                             <uni-combox style="height: 50rpx;" :candidates="floorList" placeholder="请选择目标楼层" v-model="floor"> | 
|                         </uni-combox></view> | 
|                     </view> | 
|                     <view class="btn"> | 
|                         <button class="btn-left" @click="processedClose">取消</button> | 
|                         <button class="btn-right" @click="processedConfirm()" :disabled="processedDis">加工完成</button> | 
|                     </view> | 
|                 </view> | 
|             </uni-popup> | 
|         </view> | 
|          | 
|         <!-- 底部操作按钮 --> | 
|         <view class="buttom"> | 
|             <button size="mini" type="primary" @click="processed('warn')">确认加工</button> | 
|         </view> | 
|     </view> | 
| </template> | 
|   | 
| <script> | 
|     export default { | 
|         data() { | 
|             return { | 
|                 baseUrl: '', | 
|                 token: '', | 
|                 dataList: [], | 
|                 floorList:['二厂','三厂'], | 
|                 floor: '', | 
|                 count: 0, | 
|                 containerType: '', | 
|                 isOpen: true, | 
|                 option: '', | 
|                 selects: [], | 
|                 orderId: '', | 
|                 data: '', | 
|                 maxCount: '', | 
|                 processedDis: false, | 
|                 barcode: '', | 
|                 devNo: '' | 
|             } | 
|         }, | 
|         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); | 
|                 for (let k of data.item) { | 
|                     k['maxCount'] = k.anfme | 
|                     _this.getWrkDetl(k.wrkNo) | 
|                 } | 
|                 // _this.dataList = require('lodash').cloneDeep(data.item) | 
|             }) | 
|         }, | 
|         methods: { | 
|             // 获取工作明细 | 
|             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) { | 
|                             for (let k of res.data.records) { | 
|                                 k['maxCount'] = k.anfme | 
|                                 if (k.threeCode) { | 
|                                     if (k.threeCode.includes("B")) { | 
|                                         _this.floor = '二厂' | 
|                                     } else if (k.threeCode.includes("G")) { | 
|                                         _this.floor = '三厂' | 
|                                     } else { | 
|                                         _this.floor = '' | 
|                                     } | 
|                                 } | 
|                             } | 
|                             _this.dataList = res.data.records | 
|                         } 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' }) | 
|                         } | 
|                     } | 
|                 }) | 
|             }, | 
|             processed() { | 
|                 this.$refs.process.open() | 
|             }, | 
|             processedClose() { | 
|                 this.$refs.process.close() | 
|             }, | 
|             processedConfirm() { | 
|                 let factor = '' | 
|                 if (!this.floor) { | 
|                     uni.showToast({ title: '请选择楼层', icon: "error", position: 'top' }) | 
|                     return | 
|                 } | 
|                 if (this.floor == '二厂') { | 
|                     factor = 'B' | 
|                 } else if (this.floor == '三厂') { | 
|                     factor = 'G' | 
|                 } | 
|                 this.processedDis = true | 
|                 let that = this | 
|                 uni.request({ | 
|                     url: that.baseUrl + '/agvMobile/hand/control/processed/v2', | 
|                     header: {'token': uni.getStorageSync('token')}, | 
|                     data: {devNo: that.devNo, barcode: that.barcode,wrkDetls:that.dataList,factory: factor}, | 
|                     method: 'POST', | 
|                     success(result) { | 
|                         that.processedDis = false | 
|                         var res = result.data | 
|                         if (res.code === 200) { | 
|                             that.$refs.process.close() | 
|                             uni.showToast({ title: '操作成功', icon: "success", position: 'top' }) | 
|                             setTimeout(()=> { | 
|                                 uni.navigateBack({ | 
|                                     delta:1 | 
|                                 }); | 
|                             },700) | 
|                         } 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' }) | 
|                         } | 
|                     }, | 
|                     fail(res) { | 
|                         that.processedDis = false | 
|                     } | 
|                 }); | 
|             }, | 
|             max() { | 
|                 this.data.anfme = this.data.count | 
|             }, | 
|             addClose() { | 
|                 this.$refs.addItem.close() | 
|                 // this.data.anfme = 0 | 
|             }, | 
|             addConfirm() { | 
|                 this.$refs.addItem.close() | 
|             }, | 
|             revise(item) { | 
|                 this.data = item | 
|                 this.maxCount = item.maxCount  | 
|                 this.$refs.addItem.open() | 
|             }, | 
|             changeValue(value) { | 
|                 this.data.anfme = value | 
|             }, | 
|             pakoutPrive(item) { | 
|                 console.log(item); | 
|                 let _this = this | 
|                 if (item.locSts != 'F') { | 
|                     uni.showToast({ title: '当前库位不是在库状态!', icon: "error", position: 'top' }) | 
|                     return | 
|                 } | 
|                 uni.navigateTo({ | 
|                     url: "./orderCheck", | 
|                     success: function(res) { | 
|                         // 通过eventChannel向被打开页面传送数据   向另外一个页面传递值的 | 
|                         res.eventChannel.emit('mat', { | 
|                             mat: item, | 
|                         }) | 
|                     }, | 
|                     events: { | 
|                         // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据  另外一个页面传过来的 | 
|                         acceptDataFromOpenedPage: function(data) { | 
|                             // _this.matnr = data.data | 
|                         }, | 
|                     }, | 
|                 }); | 
|             }, | 
|             pakout(item) { | 
|                 let _this = this | 
|                 let items = [item] | 
|                 uni.request({ | 
|                     url: `${_this.baseUrl}/out/pakout/auth`, | 
|                     header: { 'token': uni.getStorageSync('token') }, | 
|                     data: items, | 
|                     method: 'POST', | 
|                     success(res) { | 
|                         res = res.data | 
|                         console.log(res); | 
|                         if (res.code === 200) { | 
|                              | 
|                         } 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' }) | 
|                         } | 
|                     } | 
|                 }) | 
|             }, | 
|             // 开启 / 关闭下拉框 | 
|             toggleDropdown() { | 
|                 this.isOpen = !this.isOpen | 
|             }, | 
|             // 选择货架类型 | 
|             selected(option) { | 
|                 this.containerType = option | 
|             }, | 
|         } | 
|     } | 
| </script> | 
|   | 
| <style> | 
|     @import url('../../../static/css/common/order.css'); | 
|     .list-font-color { | 
|         color: #fff; | 
|         /* background-color: #33bb44; */ | 
|     } | 
|     .order-sts-start { | 
|         background-color: #3eb689; | 
|     } | 
|     .order-sts-working { | 
|         background-color: #ff9d46; | 
|     } | 
|     .order-sts-end { | 
|         background-color: #ff7356; | 
|     } | 
|     .detl-threeCode { | 
|         font-size: 28px; | 
|         font-weight: bold; | 
|     } | 
|     .detl-locNo { | 
|         font-size: 20px; | 
|         font-weight: bold; | 
|     } | 
|     .out-btn { | 
|         background-color: #3e82ff; | 
|         height: 120rpx; | 
|         width: 120rpx; | 
|         line-height: 120rpx; | 
|         text-align: center; | 
|         border-radius: 50%; | 
|         margin-left: 20rpx; | 
|         margin-right: 20rpx; | 
|     } | 
|     .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: #606266; | 
|         border-right: 1px solid #DCDFE6; | 
|     } | 
|     .btn-right { | 
|         display: flex; | 
|         flex: 1; | 
|         height: 100%; | 
|         justify-content: center; | 
|         align-items: center; | 
|         color: #409EFF; | 
|     } | 
|      | 
|     .dropdown { | 
|         position: relative; | 
|         display: flex; | 
|         width: 93%; | 
|         align-items: center; | 
|         padding: 0rpx 20rpx; | 
|     } | 
|     .dropdown-content { | 
|         position: absolute; | 
|         top: calc(100% + 15rpx); | 
|         left: 0; | 
|         width: calc(100% - 20rpx); | 
|         max-height: 300rpx; | 
|         background-color: #fff; | 
|         box-shadow: 0 0px 6px rgba(0, 0, 0, 0.3); | 
|         border-radius: 8rpx; | 
|         z-index: 10; | 
|     } | 
|     .dropdown-item { | 
|         padding: 12rpx; | 
|         line-height: 1.2; | 
|         font-size: 22px; | 
|         color: #3a3a3a; | 
|     } | 
| </style> |