| New file | 
 |  |  | 
 |  |  | <template> | 
 |  |  |     <view> | 
 |  |  |         <scroll-view scroll-y> | 
 |  |  |             <!-- <view class="pak-seach-box"> | 
 |  |  |                 <view class="box-top"> | 
 |  |  |                     <view class="color-block-blue"></view> | 
 |  |  |                     <text class="title">选择站台</text> | 
 |  |  |                 </view> | 
 |  |  |                 <view> | 
 |  |  |                     <text class="item">出库口</text> | 
 |  |  |                     <view class="example-body"> | 
 |  |  |                         <uni-combox @input="getCheckDetl" emptyTips="暂无数据" :candidates="staNoList" v-model="staNo" placeholder="请选择"></uni-combox> | 
 |  |  |                     </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="barcode" @input="search" type="text" placeholder="扫码 / 输入" maxlength="8"placeholder-style="line-height:  85rpx;"> | 
 |  |  |                         <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-btn"> | 
 |  |  |                         <input v-model="matnr" type="text" placeholder="扫码 / 输入" @input="findMat()" | 
 |  |  |                         :focus="focus" placeholder-style="line-height:  85rpx;"> | 
 |  |  |                         <uni-icons type="closeempty" size="20" color="#dadada" @click="removeMatnr()"></uni-icons> | 
 |  |  |                     </view> | 
 |  |  |                     <view class="content-btn"> | 
 |  |  |                         <button class="cu-btn bg-blue pda-btn" @click="selectMat()">+提取</button> | 
 |  |  |                     </view> | 
 |  |  |                 </view> | 
 |  |  |             </view> | 
 |  |  |             <view class="pak-data-box"> | 
 |  |  |                 <view class="box-top"> | 
 |  |  |                     <view class="color-block-blue"></view> | 
 |  |  |                     <text class="title">商品列表</text> | 
 |  |  |                     <!-- <button class="cu-btn bg-blue" @click="selectMat()">+ 添加</button> --> | 
 |  |  |                 </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" :class="'bg-'+item.checked" > | 
 |  |  |                     <view class="data-list-left"> | 
 |  |  |                         <view class="matnr"><text style="width: 400rpx;">编码:{{item.matnr}}</text></view> | 
 |  |  |                         <view><text style="width: 400rpx;">规格:{{item.specs}}</text></view> | 
 |  |  |                         <view><text style="width: 400rpx;">品名:{{item.maktx}}</text></view> | 
 |  |  |                         <view><text style="width: 400rpx;">批号:{{item.batch}}</text></view> | 
 |  |  |                         <view><text style="width: 400rpx;">客户信息:{{item.cstmr}}</text></view> | 
 |  |  |                         <view> | 
 |  |  |                             <text style="width: 400rpx;">备注:{{item.memo}}</text> | 
 |  |  |                             <text style="width: 400rpx;margin-left: 100rpx">数量:{{item.anfme}}</text> | 
 |  |  |                         </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> | 
 |  |  |             <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="adjust()">确认</button> | 
 |  |  |                 </view> | 
 |  |  |             </view> | 
 |  |  |         </scroll-view> | 
 |  |  |         <!-- <y-pop v-model="count" title="修改" :max="9999999" :show="show"></y-pop> --> | 
 |  |  |         <view> | 
 |  |  |             <!-- 修改数量 --> | 
 |  |  |             <uni-popup ref="revise" @change="change"> | 
 |  |  |                 <view class="revise-box"> | 
 |  |  |                     <view class="revise-box-top"> | 
 |  |  |                         <view class="color-block-blue"></view> | 
 |  |  |                         <text class="title">修改</text> | 
 |  |  |                     </view> | 
 |  |  |                     <view class="change"> | 
 |  |  |                         <view class="text-box"> | 
 |  |  |                             <text>数量:{{enableQty}}</text> | 
 |  |  |                         </view> | 
 |  |  |                         <view class="changeBox"> | 
 |  |  |                             <view class="num-box"> | 
 |  |  |                                 <uni-number-box v-model="count" :min="minCount" :max="99999999" color="#747474"  @change="changeValue"/> | 
 |  |  |                             </view>  | 
 |  |  |                         </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> | 
 |  |  |     export default { | 
 |  |  |         data() { | 
 |  |  |             return { | 
 |  |  |                 commonUrl:null, | 
 |  |  |                 matList:[], | 
 |  |  |                 staNoList:[], | 
 |  |  |                 barcode: '', | 
 |  |  |                 staNo:'', | 
 |  |  |                 matnr:'', | 
 |  |  |                 enableQty:'', | 
 |  |  |                 count:15, | 
 |  |  |                 maxCount:'', | 
 |  |  |                 minCount:0, | 
 |  |  |                 rowNum:'', | 
 |  |  |                 show: false, | 
 |  |  |                 focus: false, | 
 |  |  | 				 | 
 |  |  |             } | 
 |  |  |         }, | 
 |  |  |         mounted(){ | 
 |  |  |             const UIP = uni.getStorageSync('UIP'); | 
 |  |  |             this.baseIP = UIP; | 
 |  |  |             const UPORT = uni.getStorageSync('UPORT'); | 
 |  |  |             this.basePORT = UPORT | 
 |  |  |             const PROJ = uni.getStorageSync('UPROJ'); | 
 |  |  |             this.baseUrl = PROJ | 
 |  |  |             this.getUrl() | 
 |  |  |         }, | 
 |  |  |         methods: { | 
 |  |  |             // 获取url | 
 |  |  |             getUrl() { | 
 |  |  |                 this.commonUrl = this.baseHttp + this.baseIP + ':' +this.basePORT + "/" +this.baseUrl | 
 |  |  |             }, | 
 |  |  |             // 根据托盘码搜索 | 
 |  |  |             search() { | 
 |  |  |                 let that = this | 
 |  |  |                 uni.request({ | 
 |  |  |                     url: that.commonUrl + '/mobile/checkDetl/auth2', | 
 |  |  |                     header: { | 
 |  |  |                         'token':uni.getStorageSync('token') | 
 |  |  |                     }, | 
 |  |  |                     data: {barcode: that.barcode}, | 
 |  |  |                     method:'GET', | 
 |  |  |                     success(result) { | 
 |  |  |                         let res = result.data | 
 |  |  |                         if(res.code === 200){ | 
 |  |  |                             for(var i = 0; i < res.data.length;i++){ | 
 |  |  |                                 that.matList.push(res.data[i]) | 
 |  |  |                             } | 
 |  |  |                         } 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'}) | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  | 					 | 
 |  |  |                 }) | 
 |  |  |             }, | 
 |  |  |             selectMat() {  // 选择商品 | 
 |  |  |                 let that = this | 
 |  |  |                 uni.vibrateShort(); | 
 |  |  |                 uni.navigateTo({ | 
 |  |  |                     url: "matSelect", | 
 |  |  |                     events: { | 
 |  |  |                         // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据  另外一个页面传过来的 | 
 |  |  |                         acceptDataFromOpenedPage: function(data) { | 
 |  |  |                             that.matnr = data.data | 
 |  |  |                             that.findMat(that.matnr) | 
 |  |  |                             that.matnr = '' | 
 |  |  |                         }, | 
 |  |  |                     }, | 
 |  |  |                     success: function(res) { | 
 |  |  |                         // 通过eventChannel向被打开页面传送数据   向另外一个页面传递值的 | 
 |  |  |                         res.eventChannel.emit('commonUrl', {commonUrl:that.commonUrl }) | 
 |  |  |                     }, | 
 |  |  | 					 | 
 |  |  |                 }); | 
 |  |  | 				 | 
 |  |  |             }, // selectMat | 
 |  |  |             findMat() { | 
 |  |  |                 let that = this | 
 |  |  |                 uni.request({ | 
 |  |  |                     url: that.commonUrl + '/mat/auth', | 
 |  |  |                     data: { | 
 |  |  |                         matnr:that.matnr | 
 |  |  |                     }, | 
 |  |  |                     header: { | 
 |  |  |                         'token':uni.getStorageSync('token') | 
 |  |  |                     }, | 
 |  |  |                     success(result) { | 
 |  |  |                         uni.vibrateShort(); | 
 |  |  |                         let res = result.data | 
 |  |  |                         if (res.code === 200 && res.data) { | 
 |  |  |                             that.matData = res.data | 
 |  |  |                             uni.navigateTo({ | 
 |  |  |                                 url: "matQuery", | 
 |  |  |                                 events: { | 
 |  |  |                                     // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据 | 
 |  |  |                                     matList: function(data) { | 
 |  |  |                                         that.checkMat(data.data) | 
 |  |  |                                     }, | 
 |  |  |                                   }, | 
 |  |  |                                   success: function(res) { | 
 |  |  |                                     // 通过eventChannel向被打开页面传送数据 | 
 |  |  |                                     res.eventChannel.emit('matData', { data: that.matData }) | 
 |  |  |                                   } | 
 |  |  |                             }); | 
 |  |  |                         } | 
 |  |  | 						 | 
 |  |  |                     } | 
 |  |  |                 }); | 
 |  |  |             }, // findMat | 
 |  |  |             removeMatnr() { | 
 |  |  |                 this.matnr = '' | 
 |  |  |                 uni.vibrateShort(); | 
 |  |  |                 this.focus = false; | 
 |  |  |                 this.$nextTick(function() { | 
 |  |  |                     this.focus = true; | 
 |  |  |                 }); | 
 |  |  |             }, | 
 |  |  |             revise(item,index) { | 
 |  |  |                 // var maxCount = this.matList[index].maxCount | 
 |  |  |                 // if (maxCount == undefined ) { | 
 |  |  |                 //     this.matList[index]["maxCount"] = item.enableQty | 
 |  |  |                 // }  | 
 |  |  |                 // this.enableQty = item.enableQty | 
 |  |  |                 // this.count = this.minCount | 
 |  |  |                 // this.maxCount = item.maxCount | 
 |  |  |                 this.count = this.matList[index].anfme | 
 |  |  |                 this.rowNum = index | 
 |  |  |                 this.eject() | 
 |  |  |                 // this.show = true | 
 |  |  |             },  | 
 |  |  |             remove(item,index) { | 
 |  |  |                 this.matList[index].anfme = 0 | 
 |  |  |                 uni.vibrateShort(); | 
 |  |  |                 this.$forceUpdate() // 强制刷新 | 
 |  |  |             }, | 
 |  |  |             eject(type) { | 
 |  |  |                 this.type = type | 
 |  |  |                 // open 方法传入参数 等同在 uni-popup 组件上绑定 type属性 | 
 |  |  |                 this.$refs.revise.open(type) | 
 |  |  |             }, | 
 |  |  |             change(e) { | 
 |  |  |                 // console.log('当前模式:' + e.type + ',状态:' + e.show); | 
 |  |  |             }, | 
 |  |  |             changeValue() { | 
 |  |  | 				 | 
 |  |  |             }, | 
 |  |  |             confirm() { | 
 |  |  |                 this.matList[this.rowNum].anfme = this.count | 
 |  |  |                 this.$refs.revise.close() | 
 |  |  |                 this.$forceUpdate() // 强制刷新 | 
 |  |  |             }, | 
 |  |  |             resst() { | 
 |  |  |                 this.matList = [] | 
 |  |  |                 this.staNo = '' | 
 |  |  |             }, | 
 |  |  |             // 添加商品 | 
 |  |  |             addMat(mat) { | 
 |  |  |                 this.matList.unshift(mat) | 
 |  |  |             }, | 
 |  |  |             checkMat(mat) { | 
 |  |  |                 var len = this.matList.length | 
 |  |  |                 var add = true | 
 |  |  |                 for (var i = 0; i < len; i++) { | 
 |  |  |                     if (mat.matnr == this.matList[i].matnr) { | 
 |  |  |                         this.matList[i].anfme += mat.anfme  | 
 |  |  |                         this.$forceUpdate() // 强制刷新 | 
 |  |  |                         add = false | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 if (add) { | 
 |  |  |                     this.matList.unshift(mat) | 
 |  |  |                 } | 
 |  |  |             }, | 
 |  |  |             adjust() { | 
 |  |  |                 let that = this | 
 |  |  |                 var combMats = [] | 
 |  |  |                 var combParam = {} | 
 |  |  |                 combParam['barcode'] = that.barcode | 
 |  |  |                 combParam['wrkDetls'] = that.matList | 
 |  |  |                 uni.request({ | 
 |  |  |                     url: that.commonUrl + '/mobile/adjustNew/v2/auth', | 
 |  |  |                     method: 'POST', | 
 |  |  |                     data: JSON.stringify(combParam), | 
 |  |  |                     header: { | 
 |  |  |                         'token':uni.getStorageSync('token') | 
 |  |  |                     }, | 
 |  |  |                     success(result) { | 
 |  |  |                         var res = result.data | 
 |  |  |                         if (res.code === 200) { | 
 |  |  |                             that.matList = [] | 
 |  |  |                             that.barcode = '' | 
 |  |  |                             uni.showToast({title: res.msg, icon: "none", position: 'top'}) | 
 |  |  |                         } 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'}) | 
 |  |  |                         } | 
 |  |  |                     }, | 
 |  |  |                 }); | 
 |  |  |             }, | 
 |  |  |             removeBarcode() { | 
 |  |  |                 this.barcode = '' | 
 |  |  |             } | 
 |  |  |         } // methods | 
 |  |  |     } // exprot | 
 |  |  | </script> | 
 |  |  | <style> | 
 |  |  |     .revise-box { | 
 |  |  |         width: 500rpx; | 
 |  |  |         height: 300rpx; | 
 |  |  |         display: flex; | 
 |  |  |         flex-direction: column; | 
 |  |  |         border-radius: 20rpx; | 
 |  |  |         background-color: #F1F1F1; | 
 |  |  |     } | 
 |  |  |     .change { | 
 |  |  |         height: 150rpx; | 
 |  |  |         display: flex; | 
 |  |  |         align-items: center; | 
 |  |  |         justify-content: center; | 
 |  |  |     } | 
 |  |  |     .revise-box-buttom { | 
 |  |  |         display: flex; | 
 |  |  |         align-items: center; | 
 |  |  |         justify-content: center; | 
 |  |  |     } | 
 |  |  |     .pak-seach-box { | 
 |  |  |         background-color: #FFFFFF; | 
 |  |  |         margin: 15rpx 15rpx 0rpx 15rpx; | 
 |  |  |         width: 96%; | 
 |  |  |         height: 200rpx; | 
 |  |  |         border-radius: 20rpx; | 
 |  |  |     } | 
 |  |  |     .box-top{ | 
 |  |  |         display: block; | 
 |  |  |         height: 80rpx; | 
 |  |  |         width: 720rpx; | 
 |  |  |     } | 
 |  |  |     .color-block-blue { | 
 |  |  |         background-color: #1E9FFF; | 
 |  |  |         display: inline-block; | 
 |  |  |         float: left; | 
 |  |  |         margin: 30rpx 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: 80rpx; | 
 |  |  |         margin-top: 10rpx; | 
 |  |  |     } | 
 |  |  |     .item { | 
 |  |  |         text-indent: 1em; | 
 |  |  |         font-size: 16px; | 
 |  |  |         display: inline-block; | 
 |  |  |         margin-top: 40rpx; | 
 |  |  |     } | 
 |  |  |     .example-body { | 
 |  |  |         position: fixed; | 
 |  |  |         display: inline-block; | 
 |  |  |         margin-top: 3.5%; | 
 |  |  |         margin-left: 5%; | 
 |  |  |         width: 70%; | 
 |  |  |         z-index: 999; | 
 |  |  |     } | 
 |  |  | 	 | 
 |  |  |     .pak-data-box { | 
 |  |  |         background-color: #F1F1F1; | 
 |  |  |         margin: 15rpx 15rpx 0rpx 15rpx; | 
 |  |  |         width: 96%; | 
 |  |  |         height: 100rpx; | 
 |  |  |         border-radius: 20rpx; | 
 |  |  |         line-height: 100rpx; | 
 |  |  |     } | 
 |  |  |     .pak-data-box>.box-top { | 
 |  |  |         background-color: #FFFFFF; | 
 |  |  |         height: 100rpx; | 
 |  |  |         border-radius: 20rpx 20rpx 20rpx 20rpx; | 
 |  |  |     } | 
 |  |  |     .pak-data-box button { | 
 |  |  |         background-color: #1E9FFF; | 
 |  |  |         color: #ffffff; | 
 |  |  |         display: inline-block; | 
 |  |  |         float: right; | 
 |  |  |         width: 150rpx; | 
 |  |  |         height: 80rpx; | 
 |  |  |         margin: 10rpx 25rpx 0rpx 0rpx; | 
 |  |  |         line-height: 80rpx; | 
 |  |  |     } | 
 |  |  |     .bg-false { | 
 |  |  |         background-color: #FFFFFF; | 
 |  |  |     } | 
 |  |  |     .bg-true { | 
 |  |  |         background-color: #ebebeb; | 
 |  |  |     } | 
 |  |  |     .data-list { | 
 |  |  |         border-bottom: 1px solid #d8d8d8; | 
 |  |  |         height: 250rpx; | 
 |  |  |         margin: 15rpx; | 
 |  |  |         border-radius: 20rpx; | 
 |  |  |     } | 
 |  |  |     .data-list:first-child { | 
 |  |  |         margin-top: 20rpx; | 
 |  |  |     } | 
 |  |  |     .data-list:last-child { | 
 |  |  |         margin-bottom: 180rpx; | 
 |  |  |     } | 
 |  |  |     .data-list-left { | 
 |  |  |         display: inline-block; | 
 |  |  |         float: left; | 
 |  |  |         margin-left: 6%; | 
 |  |  |         height: 180rpx; | 
 |  |  |         color: #676767; | 
 |  |  |     } | 
 |  |  |     .matnr { | 
 |  |  |         padding-top: 10rpx; | 
 |  |  |     } | 
 |  |  |     .data-list-right { | 
 |  |  |         display: inline-block; | 
 |  |  |         float: right; | 
 |  |  |         width: 200rpx; | 
 |  |  |         height: 230rpx; | 
 |  |  |         line-height: 230rpx; | 
 |  |  |     } | 
 |  |  |     .data-list-right label { | 
 |  |  |         display: inline-block; | 
 |  |  |         float: left; | 
 |  |  |         width: 100rpx; | 
 |  |  |         height: 180rpx; | 
 |  |  |     } | 
 |  |  | </style> |