From d8c2e4943409efa3ad1a6e8229d33a1e43247886 Mon Sep 17 00:00:00 2001 From: whycq <whycq> Date: 星期四, 19 五月 2022 13:49:55 +0800 Subject: [PATCH] # --- pages/basics/checkout.vue | 362 ++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 253 insertions(+), 109 deletions(-) diff --git a/pages/basics/checkout.vue b/pages/basics/checkout.vue index fc747d0..d78860f 100644 --- a/pages/basics/checkout.vue +++ b/pages/basics/checkout.vue @@ -1,50 +1,52 @@ <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> + <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="title-text"><text>鎵樼洏鏉$爜</text></view> </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 class="square-content"> + <view class="content-input"> + <input v-model="barcode" type="text" placeholder="鎵爜 / 杈撳叆" maxlength="8" + @input="findBarcode()" :focus="barcodeFocus" @focus="focuss" > + <uni-icons type="closeempty" size="20" color="#dadada" @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 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="box-buttom"> - <input v-model="matnr" type="text" placeholder="鎵爜 / 杈撳叆" @input="findMat()"> - <view class="search-icon"> - <uni-icons type="closeempty" size="20" color="#a5a5a5" @click="removeMatnr()"></uni-icons> + <view class="square-content"> + <view class="content-input-combox" style="width: 94%;"> + <input style="width: 90%;" type="text" v-model="matnr" placeholder="鎵爜 / 杈撳叆" @input="findMat()":focus="focus" + @focus="focuss"> + <!-- @focus="focuss" --> + <uni-icons type="closeempty" size="20" color="#dadada" @click="removeMatnr()"></uni-icons> </view> </view> - <button class="cu-btn bg-blue" @click="selectMat()">+鎻愬彇</button> </view> - <view class="pak-data-box"> - <view class="box-top"> - <view class="color-block-blue"></view> - <text class="title">鍟嗗搧鍒楄〃</text> + + <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 v-show="matCount > 0" style="display: inline-block;float: right;height: 100rpx;line-height: 100rpx;margin-right: 50rpx;">璇锋壂鐮侀�夊彇 {{matCount}} 浠跺晢鍝�</view> </view> </view> - <view class="pak-data-box" v-show="matList.length === 0"> - <view style="text-align: center;">鏆傛棤鏇村鏁版嵁</view> + <view class="square-none" v-show="matList.length === 0"> + <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" > <view class="data-list-left"> - <view class="matnr"><text style="width: 400rpx;">缂栫爜锛歿{item.matnr}}</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.anfme}}</text></view> + <view class="matnr" :style="item.color">No:{{listLen-index}}</view> + <view class="matnr" :style="item.color">{{item.matnr}}-{{item.batch}}</view> </view> <view class="data-list-right"> - <uni-icons type="trash" size="25" color="#a5a5a5" @click="remove(item,index)"></uni-icons> + <uni-icons type="trash" size="20" color="#a5a5a5" @click="remove(item,index)"></uni-icons> </view> </view> </checkbox-group> @@ -54,8 +56,14 @@ <button class="cu-btn lg" @click="resst()">閲嶇疆</button> </view> <view> - <button class="cu-btn lg pakin-btn bg-blue" @click="comb()">缁勬墭</button> + <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> </template> @@ -66,83 +74,90 @@ data() { return { barcode: '', + barcodeFocus:true, + focus:false, type: 'center', searchBox: 'hide', pick:'hide', matnr:'', + // matList:[{matnr:'1101842-10000',batch:'22047515999',color:{color:'red'}}], matList:[], - result: '' + result: '', + siteList:[], + staNoList:[], + satNo:'', + listLen:0, + msgType: 'success', + messageText: '杩欐槸涓�鏉℃垚鍔熸彁绀�', + fontColor:{color:'red'}, + matCount:'', + wrkNo:'', } + }, + onReady() { + setInterval(function(){ + // console.log(this.matList) + // this.getMatListLen() + },1000) }, mounted(){ const UIP = uni.getStorageSync('UIP'); this.baseIP = UIP; const UPORT = uni.getStorageSync('UPORT'); this.basePORT = UPORT + }, methods: { + huanghang() { + this.matnr = '' + this.focus = false; + this.$nextTick(function() { + this.focus = true; + }); + + }, + messageToggle(type) { + this.msgType = type + this.messageText = `杩欐槸涓�鏉�${type}娑堟伅鎻愮ず` + this.$refs.message.open() + }, + getMatListLen() { + // this.listLen = this.matList.length; + }, + focuss() { + // uni.hideKeyboard() + }, resst() { this.matList = [] this.barcode = '' this.matnr = '' + this.matCount = '' uni.vibrateShort(); }, removeBarcode() { this.barcode = '' - uni.vibrateShort(); + uni.vibrateShort(); + this.barcodeFocus = false; + this.$nextTick(function() { + this.barcodeFocus = true; + }); }, removeMatnr() { this.matnr = '' uni.vibrateShort(); - }, - remove(item,index) { - this.matList.splice(index,1) - uni.vibrateShort(); - }, - comb() { - uni.vibrateShort(); - let that = this; - if (that.barcode === '') { - uni.showToast({title: '璇锋壂鎻忔墭鐩樻潯鐮�', icon: "none", position: 'top'}); - return; - } - if (that.matList.length === 0) { - uni.showToast({title: '璇锋坊鍔犲晢鍝佸垪琛�', icon: "none", position: 'top'}); - return; - } - uni.showLoading(); - uni.request({ - url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + '/mobile/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 - }); - } 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'}) - } - } + this.focus = false; + this.$nextTick(function() { + this.focus = true; }); }, + remove(item,index) { + this.matList.splice(index,1); + this.listLen = this.matList.length + this.messageToggle('success') + this.messageText = '鍒犻櫎鎴愬姛' + uni.vibrateShort(); + }, + selectMat() { let that = this uni.vibrateShort(); @@ -163,42 +178,161 @@ }); that.matnr = '' }, + findBarcode() { + let that = this + uni.request({ + url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + '/mobile/pakout/confirm/barcode/auth', + data: { + barcode:that.barcode + }, + header: { + 'token':uni.getStorageSync('token'), + }, + success(result) { + console.log(result) + let res = result.data; + if (res.code === 200) { + 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(() => { + 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 + '/mat/auth', + url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + '/mobile/pakout/confirm/pick/auth', data: { + wrkNo:that.wrkNo, 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.matList.push(data.data) - }, - }, - success: function(res) { - // 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹� - res.eventChannel.emit('matData', { data: that.matData }) - } - }); + 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++) { + 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; + } + } + } + } 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'}) } } }); }, - + comb() { + let that = this; + 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', + data: 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.resst(); + } 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'}) + } + } + }); + }, + getCheckDetl() { // 鑾峰彇鍑哄簱鍙h揣鐗╀俊鎭� + let that = this + + }, // getCheckDetl change(e) { - console.log('褰撳墠妯″紡锛�' + e.type + ',鐘舵�侊細' + e.show); }, toggle(type) { this.type = type @@ -233,7 +367,7 @@ <style> /* @import "../../colorui/main.css"; @import "../../colorui/icon.css"; */ - + .pak-seach-box { background-color: #FFFFFF; margin: 15rpx 15rpx 0rpx 15rpx; @@ -267,7 +401,7 @@ } .box-buttom { display: inline-block; - background-color: #ededed; + background-color: #f0f0f0; width: 65%; height: 60rpx; border-radius: 20rpx; @@ -285,6 +419,7 @@ margin-top: 5rpx; margin-right: 10rpx; } + /* .pak-seach-box input { background-color: #ededed; border: 1rpx solid #d8d8d8; @@ -330,7 +465,7 @@ } .data-list { border-bottom: 1px solid #d8d8d8; - height: 180rpx; + height: 130rpx; margin: 15rpx; border-radius: 20rpx; } @@ -338,7 +473,7 @@ margin-top: 20rpx; } .data-list:last-child { - margin-bottom: 120rpx; + margin-bottom: 200rpx; } /* .data-list-left { display: inline-block; @@ -349,20 +484,29 @@ line-height: 180rpx; } */ .data-list-left { + width: 550rpx; + /* background-color: #007AFF; */ display: inline-block; float: left; - margin-left: 6%; - height: 180rpx; + margin-left: 4%; + height: 130rpx; color: #676767; } .matnr { - padding-top: 10rpx; + display: inline-block; + width: 100%; + font-size: 14px; + font-weight: 700; + padding-top: 15rpx; + /* height: 130rpx; + line-height: 130rpx; */ } .data-list-right { + /* background-color: #6739B6; */ display: inline-block; float: right; - height: 180rpx; - line-height: 180rpx; - margin-right: 10%; + width: 100rpx; + height: 130rpx; + line-height: 130rpx; } </style> \ No newline at end of file -- Gitblit v1.9.1