| <template> | 
|     <view > | 
|         <scroll-view scroll-y catch:touchmove="touchmove"> | 
|             <view class="square-2"> | 
|                 <view class="square-title"> | 
|                     <view class="title-sign"><view class="sign"></view></view> | 
|                     <view class="title-text"><text>托盘条码</text></view> | 
|                 </view> | 
|                 <view class="square-content"> | 
|                     <view class="content-input"> | 
|                         <input v-model="barcode" type="text" placeholder="扫码 / 输入"  | 
|                                 maxlength="8" :focus="barcodeFocus" @focus="focuss"> | 
|                         <uni-icons type="closeempty" size="20" color="#dadada" @click="removeBarcode()"></uni-icons> | 
|                     </view> | 
|                 </view> | 
|             </view> | 
|             <view class="square-2"> | 
|                 <view class="square-title"> | 
|                     <view class="title-sign"><view class="sign"></view></view> | 
|                     <view class="title-text"><text>物料条码</text></view> | 
|                 </view> | 
|                 <view class="square-content"> | 
|                     <view class="content-input"> | 
|                         <input v-model="matNo" type="text" placeholder="扫码 / 输入"  | 
|                                 @input="findMat()" :focus="focus" @focus="focuss" > | 
|                         <uni-icons type="closeempty" size="20" color="#dadada" @click="removeMat()"></uni-icons> | 
|                     </view> | 
|                 </view> | 
|             </view> | 
|             <view class="square-1"> | 
|                 <view class="square-title"> | 
|                     <view class="title-sign"><view class="sign"></view></view> | 
|                     <view class="title-text"><text>商品列表</text></view> | 
|                 </view> | 
|             </view> | 
|             <view class="square-none" v-show="matList.length === 0"> | 
|                 <view class="v-show">暂无更多数据...</view> | 
|             </view> | 
|             <checkbox-group> | 
|                 <view v-for="(item,index) in matList" :key="index" class="data-list bg-false"  > | 
|                     <view class="data-list-left"> | 
|                         <view class="matnr">{{item.barcode}}</view> | 
|                     </view> | 
|                     <view class="data-list-right"> | 
|                         <!-- <label><uni-icons type="compose" size="20" color="#a5a5a5" @click="revise(item,index)"></uni-icons></label> --> | 
|                         <label><uni-icons type="trash" size="25" color="#a5a5a5" @click="remove(item,index)"></uni-icons></label> | 
|                     </view> | 
|                 </view> | 
|             </checkbox-group> | 
|         </scroll-view> | 
|         <view class="footer flex justify-around"> | 
|             <view> | 
|                 <button class="cu-btn lg" @click="resst()">重置</button> | 
|             </view> | 
|             <view> | 
|                 <button class="cu-btn lg pakin-btn bg-blue" @click="comb()">组托</button> | 
|             </view> | 
|         </view> | 
|         <view> | 
|             <!-- 提示信息弹窗 --> | 
|             <uni-popup ref="message" type="message"> | 
|                 <uni-popup-message :type="msgType" :message="messageText" :duration="2000"></uni-popup-message> | 
|             </uni-popup> | 
|         </view> | 
|         <view> | 
|             <!-- 修改数量 --> | 
|             <uni-popup ref="revise" background-color="#fff" @change="change"> | 
|                 <view class="revise-box"> | 
|                     <view class="revise-box-top"> | 
|                         <view class="color-block-blue"></view> | 
|                         <text class="title">组托数量</text> | 
|                     </view> | 
|                     <view class="text-box"> | 
|                         <text>可组数量:{{enableQty}}</text> | 
|                     </view> | 
|                     <view class="changeBox"> | 
|                         <view class="num-box"> | 
|                             <uni-number-box v-model="count" :min="minCount" :max="maxCount" color="#747474"  @change="changeValue"/> | 
|                         </view>  | 
|                     </view> | 
|                     <view class="revise-box-buttom"> | 
|                         <view> | 
|                             <button class="cu-btn bg-blue" @click="confirm()">确认</button> | 
|                         </view> | 
|                     </view> | 
|                      | 
|                 </view> | 
|             </uni-popup> | 
|         </view> | 
|     </view> | 
| </template> | 
|   | 
| <script> | 
|     import permision from "@/common/permission.js" | 
|     export default { | 
|         data() { | 
|             return { | 
|                 barcode: '', | 
|                 barcodeFocus:true, | 
|                 focus:false, | 
|                 matList:[], | 
|                 matNo:'', | 
|                 mat:null, | 
|                 type: 'center', | 
|                 searchBox: 'hide', | 
|                 pick:'hide', | 
|                 result: '', | 
|                 count:'', | 
|                 minCount:0, | 
|                 maxCount:'', | 
|                 rowNum:'', | 
|                 enableQty:'', | 
|                 msgType: 'success', | 
|                 messageText: '这是一条成功提示', | 
|                  | 
|                  | 
|             } | 
|         }, | 
|         mounted(){ | 
|             const UIP = uni.getStorageSync('UIP'); | 
|             this.baseIP = UIP; | 
|             const UPORT = uni.getStorageSync('UPORT'); | 
|             this.basePORT = UPORT | 
|         }, | 
|         methods: { | 
|             focuss() { | 
|                 // uni.hideKeyboard() | 
|             }, | 
|             messageToggle(type) { | 
|                 this.msgType = type | 
|                 this.messageText = `这是一条${type}消息提示` | 
|                 this.$refs.message.open() | 
|             }, | 
|             resst() { | 
|                 this.matList = [] | 
|                 this.barcode = '' | 
|                 this.matNo = '' | 
|                 uni.vibrateShort(); | 
|             }, | 
|             removeBarcode() { | 
|                 this.barcode = '' | 
|                 uni.vibrateShort(); | 
|                 this.barcodeFocus = false; | 
|                 this.$nextTick(function() { | 
|                     this.barcodeFocus = true; | 
|                 }); | 
|             }, | 
|             removeMat() { | 
|                 this.matNo = '' | 
|                 uni.vibrateShort(); | 
|                 this.focus = false; | 
|                 this.$nextTick(function() { | 
|                     this.focus = true; | 
|                 }); | 
|             }, | 
|             eject(type) { | 
|                 this.type = type | 
|                 // open 方法传入参数 等同在 uni-popup 组件上绑定 type属性 | 
|                 this.$refs.revise.open(type) | 
|             }, | 
|             initAnfme() { | 
|                 for (var i = 0; i < this.matList.length; i++) { | 
|                     this.matList[i].anfme = 1 | 
|                     this.matList[i].matnr = this.matList[i].barcode | 
|                 } | 
|             }, | 
|             changeValue() { | 
|                  | 
|             }, | 
|             remove(item,index) { | 
|                 this.matList.splice(index,1) | 
|                 uni.vibrateShort(); | 
|             }, | 
|             confirm() { | 
|                 this.matList[this.rowNum].anfme = this.count | 
|                 this.$refs.revise.close() | 
|             }, | 
|             comb() { | 
|                 uni.vibrateShort(); | 
|                 let that = this; | 
|                 if (that.barcode === '') { | 
|                     this.messageToggle('warn') | 
|                     this.messageText = '请扫描托盘码' | 
|                     return; | 
|                 } | 
|                 if (that.barcode.length !== 8) { | 
|                     this.messageToggle('warn') | 
|                     this.messageText = '托盘码必须为8位' | 
|                     return; | 
|                 } | 
|                 if (that.matList.length === 0) { | 
|                     this.messageToggle('warn') | 
|                     this.messageText = '请添加商品列表' | 
|                     return; | 
|                 } | 
|                 for (var i = 0; i < that.matList.length; i++) { | 
|                     if (that.matList[i].anfme === 0) { | 
|                         this.messageToggle('error') | 
|                         this.messageText = '商品组托数量为0不能组托' | 
|                         return; | 
|                     } | 
|                 } | 
|                 uni.showLoading(); | 
|                 uni.request({ | 
|                     url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + '/mobile/pack/comb/auth', | 
|                     data: JSON.stringify({ | 
|                         barcode: that.barcode, | 
|                         combMats: that.matList | 
|                     }), | 
|                     method: 'POST', | 
|                     header: { | 
|                         'token':uni.getStorageSync('token') | 
|                     }, | 
|                     success(result) { | 
|                         uni.hideLoading(); | 
|                         var res = result.data | 
|                         if (res.code === 200) { | 
|                             that.messageToggle('success') | 
|                             that.messageText = res.msg | 
|                             // uni.showToast({ | 
|                             //     title: res.msg, | 
|                             //     position: 'bottom', | 
|                             //     duration: 1000 | 
|                             // }); | 
|                             that.barcode = '' | 
|                             that.orderNo = '' | 
|                             that.order = '' | 
|                             that.matList = [] | 
|                         } else if (res.code == 403) { | 
|                             that.messageToggle('warn') | 
|                             that.messageText = res.msg | 
|                             setTimeout(() => { | 
|                                 uni.reLaunch({ | 
|                                     url: '../login/login' | 
|                                 }); | 
|                             }, 1000); | 
|                         } else { | 
|                             that.messageToggle('error') | 
|                             that.messageText = res.msg | 
|                         } | 
|                     } | 
|                 }); | 
|             }, | 
|             findMat() { | 
|                 let that = this | 
|                 uni.request({ | 
|                     url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + '/mobile/pack/get/auth', | 
|                     data: { | 
|                         barcode: that.matNo | 
|                     }, | 
|                     header: { | 
|                         'token':uni.getStorageSync('token') | 
|                     }, | 
|                     success(result) { | 
|                         let res = result.data | 
|                         if (res.code === 200) { | 
|                             if(res.data) { | 
|                                 that.mat = res.data | 
|                                 that.addMatList(that.mat) | 
|                                 that.initAnfme() | 
|                                 that.matNo = '', | 
|                                 that.focus = false; | 
|                                 that.$nextTick(function() { | 
|                                     that.focus = true; | 
|                                 }); | 
|                             } else { | 
|                                 that.messageToggle('warn') | 
|                                 that.messageText = '请重新扫码 \ 输入' | 
|                             } | 
|                         } else if (res.code == 403) { | 
|                             that.messageToggle('warn') | 
|                             that.messageText = res.msg | 
|                             setTimeout(() => { | 
|                                 uni.reLaunch({ | 
|                                     url: '../login/login' | 
|                                 }); | 
|                             }, 1000); | 
|                         } else { | 
|                             that.messageToggle('warn') | 
|                             that.messageText = res.msg | 
|                             // uni.showToast({title: res.msg, icon: "none",position: 'top'}) | 
|                         } | 
|                     } | 
|                 }); | 
|             }, | 
|             addMatList(mat) { | 
|                 let barcode = this.mat.barcode | 
|                 let toUnshift = true | 
|                 for (var i = 0; i < this.matList.length; i++) { | 
|                     if (barcode === this.matList[i].barcode) { | 
|                         this.messageToggle('warn') | 
|                         this.messageText = barcode + '已经扫描,请勿重复扫描' | 
|                         toUnshift = false | 
|                     } | 
|                 } | 
|                 if (toUnshift) { | 
|                     this.matList.unshift(mat) | 
|                 } | 
|             }, | 
|             change(e) { | 
|                 // console.log('当前模式:' + e.type + ',状态:' + e.show); | 
|             }, | 
|             toggle(type) { | 
|                 this.type = type | 
|                 // open 方法传入参数 等同在 uni-popup 组件上绑定 type属性 | 
|                 this.$refs.goodsSearch.open(type) | 
|             }, | 
|         } | 
|     } | 
| </script> | 
|   | 
| <style> | 
|     /* @import "../../colorui/main.css"; | 
|     @import "../../colorui/icon.css"; */ | 
|      | 
|     .pak-seach-box { | 
|         background-color: #FFFFFF; | 
|         margin: 15rpx 15rpx 0rpx 15rpx; | 
|         width: 96%; | 
|         height: 150rpx; | 
|         border-radius: 20rpx; | 
|     } | 
|     .box-top{ | 
|         display: block; | 
|         height: 60rpx; | 
|         width: 720rpx; | 
|     } | 
|     .color-block-blue { | 
|         background-color: #1E9FFF; | 
|         display: inline-block; | 
|         float: left; | 
|         margin: 15rpx 15rpx 0 15rpx; | 
|         width: 12rpx; | 
|         height: 40rpx; | 
|         border: 5rpx solid #1E9FFF; | 
|         border-radius: 20rpx; | 
|     } | 
|     .title { | 
|         display: inline-block; | 
|         float: left; | 
|         font-size: 34rpx; | 
|         font-weight: 700; | 
|         height: 50rpx; | 
|         line-height: 50rpx; | 
|         margin-top: 10rpx; | 
|     } | 
|     .box-buttom { | 
|         display: inline-block; | 
|         background-color: #ededed; | 
|         width: 96%; | 
|         height: 60rpx; | 
|         border-radius: 20rpx; | 
|         margin: 15rpx 15rpx 0rpx 15rpx; | 
|     } | 
|     .box-buttom input { | 
|         width: 75%; | 
|         float: left; | 
|         margin: 8rpx 10rpx 0rpx 25rpx; | 
|     } | 
|     .box-buttom .search-icon{ | 
|         width: 60rpx; | 
|         height: 60rpx; | 
|         float: right; | 
|         margin-top: 5rpx; | 
|         margin-right: 10rpx; | 
|     } | 
|     .pak-seach-box button { | 
|         background-color: #1E9FFF; | 
|         color: #ffffff; | 
|         display: inline-block; | 
|         float: right; | 
|         width: 150rpx; | 
|         height: 60rpx; | 
|         margin: 15rpx 15rpx 0rpx 15rpx; | 
|         line-height: 60rpx; | 
|     } | 
|     .pakin-btn { | 
|         background-color: #1E9FFF; | 
|     } | 
|     .pak-data-box { | 
|         background-color: #F1F1F1; | 
|         margin: 15rpx 15rpx 0rpx 15rpx; | 
|         width: 96%; | 
|         height: 70rpx; | 
|         border-radius: 20rpx; | 
|     } | 
|     .pak-data-box .box-top { | 
|         background-color: #FFFFFF; | 
|         height: 70rpx; | 
|         border-radius: 20rpx 20rpx 20rpx 20rpx; | 
|     } | 
|     .bg-false { | 
|         background-color: #FFFFFF; | 
|     } | 
|     .bg-true { | 
|         background-color: #ebebeb; | 
|     } | 
|     .data-list { | 
|         border-bottom: 1px solid #d8d8d8; | 
|         height: 130rpx; | 
|         margin: 15rpx; | 
|         border-radius: 20rpx; | 
|     } | 
|     .data-list:first-child { | 
|         margin-top: 20rpx; | 
|     } | 
|     .data-list:last-child { | 
|         margin-bottom: 160rpx; | 
|     } | 
|     /* .data-list-left { | 
|         display: inline-block; | 
|         float: left; | 
|         text-align: center; | 
|         width: 100rpx; | 
|         height: 180rpx; | 
|         line-height: 180rpx; | 
|     } */ | 
|     .data-list-left { | 
|         width: 550rpx; | 
|         /* background-color: #007AFF; */ | 
|         display: inline-block; | 
|         float: left; | 
|         margin-left: 4%; | 
|         height: 130rpx; | 
|         color: #676767; | 
|     } | 
|     .matnr { | 
|         display: inline-block; | 
|         width: 100%; | 
|         font-size: 16px; | 
|         font-weight: 700; | 
|         height: 130rpx; | 
|         line-height: 130rpx; | 
|     } | 
|     .data-list-right { | 
|         /* background-color: #6739B6; */ | 
|         display: inline-block; | 
|         float: right; | 
|         width: 100rpx; | 
|         height: 130rpx; | 
|         line-height: 130rpx; | 
|     } | 
|     .data-list-right label { | 
|         display: inline-block; | 
|         float: left; | 
|         width: 100rpx; | 
|         height: 130rpx; | 
|     } | 
|     .revise-box { | 
|         width: 500rpx; | 
|         height: 500rpx; | 
|     } | 
|     .revise-box-top { | 
|         width: 100%; | 
|         height: 100rpx; | 
|         background-color: #fff; | 
|         padding: 10rpx; | 
|     } | 
|     .changeBox { | 
|         width: 100%; | 
|         height: 100rpx; | 
|         line-height: 120rpx; | 
|         text-align: center; | 
|         background-color: #FFF; | 
|         margin-top: 20rpx; | 
|         border-bottom: 1px solid #e3e3e3; | 
|     } | 
|     .text-box { | 
|         width: 100%; | 
|         height: 100rpx; | 
|         line-height: 120rpx; | 
|         text-align: center; | 
|         /* padding-left: 120rpx; */ | 
|         background-color: #FFF; | 
|         margin-top: 20rpx; | 
|         border-bottom: 1px solid #e3e3e3; | 
|     } | 
|     .changeBox .num-box { | 
|         display:  inline-block; | 
|     } | 
|     .revise-box-buttom { | 
|         position: absolute; | 
|         width: 100%; | 
|         height: 100rpx; | 
|         line-height: 100rpx; | 
|         background-color: #FFFFFF; | 
|         bottom: 0; | 
|         text-align: center; | 
|     } | 
|      | 
| </style> |