|  |  |  | 
|---|
|  |  |  | <template> | 
|---|
|  |  |  | <view > | 
|---|
|  |  |  | <scroll-view scroll-y catch:touchmove="touchmove"> | 
|---|
|  |  |  | <scroll-view scroll-y class="scroll-Y"> | 
|---|
|  |  |  | <view class="square-2"> | 
|---|
|  |  |  | <view class="square-title"> | 
|---|
|  |  |  | <view class="title-sign"><view class="sign"></view></view> | 
|---|
|  |  |  | 
|---|
|  |  |  | <view class="square-title"> | 
|---|
|  |  |  | <view class="title-sign"><view class="sign"></view></view> | 
|---|
|  |  |  | <view class="title-text"><text>商品列表</text></view> | 
|---|
|  |  |  | <view v-show="matCount > 0" style="display: inline-block;float: right;height: 100rpx;line-height: 100rpx;margin-right: 50rpx;">请扫码选取 {{matCount}} 件商品</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="square-none" v-show="matList.length === 0"> | 
|---|
|  |  |  | <view class="v-show">请扫码选取 {{matCount}} 件商品</view> | 
|---|
|  |  |  | <view class="v-show">暂无更多数据. . . </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <checkbox-group @change="checkbox"> | 
|---|
|  |  |  | <view v-for="(item,index) in matList" :key="index" class="data-list bg-false" :class="'bg-'+item.checked" > | 
|---|
|  |  |  | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | data() { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | commonUrl:null, | 
|---|
|  |  |  | barcode: '', | 
|---|
|  |  |  | barcodeFocus:true, | 
|---|
|  |  |  | focus:false, | 
|---|
|  |  |  | 
|---|
|  |  |  | matList:[], | 
|---|
|  |  |  | result: '', | 
|---|
|  |  |  | siteList:[], | 
|---|
|  |  |  | desc:'', | 
|---|
|  |  |  | staNoList:[], | 
|---|
|  |  |  | satNo:'', | 
|---|
|  |  |  | listLen:0, | 
|---|
|  |  |  | msgType: 'success', | 
|---|
|  |  |  | messageText: '这是一条成功提示', | 
|---|
|  |  |  | fontColor:{color:'red'}, | 
|---|
|  |  |  | matCount:'0' | 
|---|
|  |  |  | matCount:'', | 
|---|
|  |  |  | wrkNo:'', | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | onReady() { | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | huanghang() { | 
|---|
|  |  |  | this.matnr = '' | 
|---|
|  |  |  | this.focus = false; | 
|---|
|  |  |  | this.$nextTick(function() { | 
|---|
|  |  |  | this.focus = true; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | messageToggle(type) { | 
|---|
|  |  |  | this.msgType = type | 
|---|
|  |  |  | this.messageText = `这是一条${type}消息提示` | 
|---|
|  |  |  | this.$refs.message.open() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | choseStaNo() { | 
|---|
|  |  |  | for (var i = 0;i < this.staNoList.length; i++) { | 
|---|
|  |  |  | if (this.desc == this.staNoList[i].desc) { | 
|---|
|  |  |  | this.staNo = this.staNoList[i].siteId | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | getMatListLen() { | 
|---|
|  |  |  | // this.listLen = this.matList.length; | 
|---|
|  |  |  | 
|---|
|  |  |  | this.matList = [] | 
|---|
|  |  |  | this.barcode = '' | 
|---|
|  |  |  | this.matnr = '' | 
|---|
|  |  |  | this.desc = '' | 
|---|
|  |  |  | this.matCount = '' | 
|---|
|  |  |  | uni.vibrateShort(); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | removeBarcode() { | 
|---|
|  |  |  | 
|---|
|  |  |  | findBarcode() { | 
|---|
|  |  |  | let that = this | 
|---|
|  |  |  | uni.request({ | 
|---|
|  |  |  | url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + '/mobile/pakout/query/auth/v2', | 
|---|
|  |  |  | url: that.commonUrl + '/mobile/pakout/confirm/barcode/auth', | 
|---|
|  |  |  | data: { | 
|---|
|  |  |  | barcode:that.barcode | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | 
|---|
|  |  |  | 'token':uni.getStorageSync('token'), | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | success(result) { | 
|---|
|  |  |  | var res = result.data; | 
|---|
|  |  |  | console.log(result) | 
|---|
|  |  |  | let res = result.data; | 
|---|
|  |  |  | if (res.code === 200) { | 
|---|
|  |  |  | if (res.data) { | 
|---|
|  |  |  | that.matCount = res.data.length | 
|---|
|  |  |  | if (res.data.ioType === 101) { | 
|---|
|  |  |  | that.matList = res.data.list.concat(that.matList) | 
|---|
|  |  |  | that.listLen = that.matList.length; | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (res.data.ioType === 103) { | 
|---|
|  |  |  | that.matCount = res.data.list.length | 
|---|
|  |  |  | that.wrkNo = res.data.list[0].wrkNo | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // if (res.data) { | 
|---|
|  |  |  | //    that.matCount = res.data.length | 
|---|
|  |  |  | // } | 
|---|
|  |  |  | } else if (res.code === 403) { | 
|---|
|  |  |  | uni.showToast({title: res.msg, icon: "none", position: 'top'}) | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | 
|---|
|  |  |  | findMat() { | 
|---|
|  |  |  | let that = this | 
|---|
|  |  |  | uni.request({ | 
|---|
|  |  |  | url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + '/mobile/pakout/query/auth/v2', | 
|---|
|  |  |  | url: that.commonUrl + '/mobile/pakout/confirm/pick/auth', | 
|---|
|  |  |  | data: { | 
|---|
|  |  |  | staNo:that.staNo, | 
|---|
|  |  |  | wrkNo:that.wrkNo, | 
|---|
|  |  |  | matnr:that.matnr | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | header: { | 
|---|
|  |  |  | 'token':uni.getStorageSync('token') | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | success(result) { | 
|---|
|  |  |  | console.log(result) | 
|---|
|  |  |  | var res = result.data; | 
|---|
|  |  |  | if(res.code === 200 ) { | 
|---|
|  |  |  | if(res.data) { | 
|---|
|  |  |  | if (that.matList.length == 0) { | 
|---|
|  |  |  | that.matList.push(res.data) | 
|---|
|  |  |  | that.listLen = that.matList.length; | 
|---|
|  |  |  | that.huanghang(); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for(let i = 0;i<that.matList.length;i++) { | 
|---|
|  |  |  | for (let j = 0;j < res.data.length; j++) { | 
|---|
|  |  |  | if(JSON.stringify(that.matList[i]) === JSON.stringify(res.data[j])) { | 
|---|
|  |  |  | res.data.splice(j,1) | 
|---|
|  |  |  | if (that.matList.length < that.matCount){ | 
|---|
|  |  |  | if(JSON.stringify(that.matList[i]) === JSON.stringify(res.data)) { | 
|---|
|  |  |  | that.messageToggle('warn'); | 
|---|
|  |  |  | that.messageText = '该商品已添加'; | 
|---|
|  |  |  | that.huanghang(); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | that.matList.unshift(res.data); | 
|---|
|  |  |  | that.listLen = that.matList.length; | 
|---|
|  |  |  | that.huanghang(); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | that.messageToggle('warn'); | 
|---|
|  |  |  | that.messageText = '已出全部商品,请确认出库'; | 
|---|
|  |  |  | that.huanghang(); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (that.matList.length < that.matCount) { | 
|---|
|  |  |  | that.matList = res.data.concat(that.matList) | 
|---|
|  |  |  | that.listLen = that.matList.length; | 
|---|
|  |  |  | that.focus = false; | 
|---|
|  |  |  | that.$nextTick(function() { | 
|---|
|  |  |  | that.focus = true; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | that.matnr = '' | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | that.messageToggle('warn') | 
|---|
|  |  |  | that.messageText = '商品已全部添加' | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else if (res.code == 403) { | 
|---|
|  |  |  | uni.showToast({title: res.msg, icon: "none", position: 'top'}) | 
|---|
|  |  |  | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | comb() { | 
|---|
|  |  |  | uni.vibrateShort(); | 
|---|
|  |  |  | let that = this; | 
|---|
|  |  |  | uni.showLoading(); | 
|---|
|  |  |  | if (that.barcode === '') { | 
|---|
|  |  |  | this.messageToggle('error') | 
|---|
|  |  |  | this.messageText = '请扫描托盘码' | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (that.barcode.length !== 8) { | 
|---|
|  |  |  | this.messageToggle('error') | 
|---|
|  |  |  | this.messageText = '托盘码必须为8位' | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (that.matList.length === 0) { | 
|---|
|  |  |  | this.messageToggle('error') | 
|---|
|  |  |  | this.messageText = '请添加商品列表' | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (that.matList.length < that.matCount) { | 
|---|
|  |  |  | var len = that.matCount - that.matList.length | 
|---|
|  |  |  | that.messageToggle('error') | 
|---|
|  |  |  | that.messageText = '还剩' + len + '件未扫描' | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | uni.showLoading(); | 
|---|
|  |  |  | uni.request({ | 
|---|
|  |  |  | url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + '/mobile/pakout/confirm/auth', | 
|---|
|  |  |  | url: that.commonUrl + '/mobile/pakout/confirm/auth', | 
|---|
|  |  |  | data: that.matList, | 
|---|
|  |  |  | method: 'POST', | 
|---|
|  |  |  | header: { | 
|---|
|  |  |  | 
|---|
|  |  |  | uni.showLoading(); | 
|---|
|  |  |  | var res = result.data | 
|---|
|  |  |  | if (res.code === 200) { | 
|---|
|  |  |  | uni.showToast({ | 
|---|
|  |  |  | title: res.msg, | 
|---|
|  |  |  | position: 'bottom', | 
|---|
|  |  |  | duration: 1000 | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | that.matList = [] | 
|---|
|  |  |  | that.barcode = '' | 
|---|
|  |  |  | that.matnr = '' | 
|---|
|  |  |  | that.desc = '' | 
|---|
|  |  |  | uni.showToast({ title: res.msg,position: 'bottom',duration: 1000}); | 
|---|
|  |  |  | that.resst(); | 
|---|
|  |  |  | } else if (res.code == 403) { | 
|---|
|  |  |  | uni.showToast({title: res.msg, icon: "none", position: 'top'}) | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | 
|---|
|  |  |  | <style> | 
|---|
|  |  |  | /* @import "../../colorui/main.css"; | 
|---|
|  |  |  | @import "../../colorui/icon.css"; */ | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .pak-seach-box { | 
|---|
|  |  |  | background-color: #FFFFFF; | 
|---|
|  |  |  | margin: 15rpx 15rpx 0rpx 15rpx; | 
|---|