| New file | 
 |  |  | 
 |  |  | <template> | 
 |  |  |     <view > | 
 |  |  |         <scroll-view scroll-y catch:touchmove="touchmove"> | 
 |  |  |             <view class="pak-seach-box"> | 
 |  |  |                 <view class="box-top"> | 
 |  |  |                     <view class="color-block-blue"></view> | 
 |  |  |                     <text class="title">托盘条码</text> | 
 |  |  |                 </view> | 
 |  |  |                 <view class="box-buttom"> | 
 |  |  |                     <input v-model="barcode" type="text" placeholder="扫码 / 输入"> | 
 |  |  |                     <view class="search-icon"> | 
 |  |  |                         <uni-icons type="closeempty" size="20" color="#a5a5a5" @click="removeBarcode()"></uni-icons> | 
 |  |  |                     </view> | 
 |  |  |                 </view> | 
 |  |  |             </view> | 
 |  |  |             <view class="pak-seach-box"> | 
 |  |  |                 <view class="box-top"> | 
 |  |  |                     <view class="color-block-blue"></view> | 
 |  |  |                     <text class="title">物料条码</text> | 
 |  |  |                 </view> | 
 |  |  |                 <view class="box-buttom"> | 
 |  |  |                     <input v-model="matNo" type="text" placeholder="扫码 / 输入" @input="findMat()"> | 
 |  |  |                     <view class="search-icon"> | 
 |  |  |                         <uni-icons type="closeempty" size="20" color="#a5a5a5" @click="removeMat()"></uni-icons> | 
 |  |  |                     </view> | 
 |  |  |                 </view> | 
 |  |  |             </view> | 
 |  |  |             <view class="pak-data-box"> | 
 |  |  |                 <view class="box-top"> | 
 |  |  |                     <view class="color-block-blue"></view> | 
 |  |  |                     <text class="title">商品列表</text> | 
 |  |  |                 </view> | 
 |  |  |             </view> | 
 |  |  |             <view class="pak-data-box"  v-show="matList.length === 0"> | 
 |  |  |                 <view style="text-align: center;">暂无更多数据</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: '', | 
 |  |  |                 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: { | 
 |  |  |             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(); | 
 |  |  |             }, | 
 |  |  |             removeMat() { | 
 |  |  |                 this.matNo = '' | 
 |  |  |                 uni.vibrateShort(); | 
 |  |  |             }, | 
 |  |  |             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) { | 
 |  |  |                     uni.showToast({title: '请添加商品列表', icon: "none", position: 'top'}); | 
 |  |  |                     return; | 
 |  |  |                 } | 
 |  |  |                 for (var i = 0; i < that.matList.length; i++) { | 
 |  |  |                     if (that.matList[i].anfme === 0) { | 
 |  |  |                         uni.showToast({title: '商品组托数量为0不能组托', icon: "none", position: 'top'}); | 
 |  |  |                         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.showLoading(); | 
 |  |  |                         var res = result.data | 
 |  |  |                         if (res.code === 200) { | 
 |  |  |                             uni.showToast({ | 
 |  |  |                                 title: res.msg, | 
 |  |  |                                 position: 'bottom', | 
 |  |  |                                 duration: 1000 | 
 |  |  |                             }); | 
 |  |  |                             that.barcode = '' | 
 |  |  |                             that.orderNo = '' | 
 |  |  |                             that.order = '' | 
 |  |  |                             that.matList = [] | 
 |  |  |                         } else if (res.code == 403) { | 
 |  |  |                             uni.showToast({title: res.msg, icon: "none", position: 'top'}) | 
 |  |  |                             setTimeout(() => { | 
 |  |  |                                 uni.reLaunch({ | 
 |  |  |                                     url: '../login/login' | 
 |  |  |                                 }); | 
 |  |  |                             }, 1000); | 
 |  |  |                         } else { | 
 |  |  |                             uni.showToast({title: res.msg, icon: "none",position: 'top'}) | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 }); | 
 |  |  |             }, | 
 |  |  |             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() | 
 |  |  |                             } else { | 
 |  |  |                                 this.messageToggle('warn') | 
 |  |  |                                 this.messageText = '请重新扫码 \ 输入' | 
 |  |  |                             } | 
 |  |  |                         } else if (res.code == 403) { | 
 |  |  |                             uni.showToast({title: res.msg, icon: "none", position: 'top'}) | 
 |  |  |                             setTimeout(() => { | 
 |  |  |                                 uni.reLaunch({ | 
 |  |  |                                     url: '../login/login' | 
 |  |  |                                 }); | 
 |  |  |                             }, 1000); | 
 |  |  |                         } else { | 
 |  |  |                             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> |