From a27ddbef869c993682355a6aed02b5f6a0c0b84a Mon Sep 17 00:00:00 2001 From: whycq <whycq> Date: 星期三, 09 三月 2022 08:14:15 +0800 Subject: [PATCH] #V20220308B --- pages/basics/combPro.vue | 533 +++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 387 insertions(+), 146 deletions(-) diff --git a/pages/basics/combPro.vue b/pages/basics/combPro.vue index 49fb84b..b74495a 100644 --- a/pages/basics/combPro.vue +++ b/pages/basics/combPro.vue @@ -3,39 +3,64 @@ <form> <view class="cu-form-group margin-top"> <view class="title">鍗曞彿</view> - <input v-model="billNo" placeholder="鎵爜 / 杈撳叆" name="input" autocomplete="off" focus @input="find()"> + <input v-model="billNo" placeholder="鎵爜 / 杈撳叆" name="input" autocomplete="off" @confirm="firstConfirm" :focus="firstFocus" @input="find()"> </view> <view class="cu-form-group margin-top"> <view class="title">鎵樼洏鐮�</view> - <input v-model="code" placeholder="鎵爜 / 杈撳叆" name="input"> + <input v-model="code" placeholder="鎵爜 / 杈撳叆" name="input" @confirm="secondConfirm" :focus="secondFocus" > </view> </form> + <view class="margin-top"> - <uni-table ref="table" border stripe emptyText="鏆傛棤鏇村鏁版嵁" rowKey=""> + <view class="cu-bar search bg-white"> + <view class="search-form round"> + <text class="cuIcon-search"></text> + <input :adjust-position="false" type="text" placeholder="浜у搧浠e彿" confirm-type="search" v-model="size" @input="searchSize()"></input> + </view> + </view> + <view class="flex solid-bottom padding justify-start bg-gray" style="height: 110rpx;padding: 5rpx;"> + <button class ="cu-btn bg-red lg margin-xs" @click="delTable">鎵归噺鍒犻櫎</button> + <button class ="cu-btn bg-cyan lg margin-xs" @click="clearSel">娓呯┖閫夋嫨</button> + <button class ="cu-btn bg-olive lg margin-xs" @click="reSelection">鍙嶉��</button> + </view> + <uni-table ref="table" border stripe emptyText="鏆傛棤鏇村鏁版嵁" type="selection" @selection-change="selectionChange"> <uni-tr> - <uni-th align="center" width="90">搴忓彿</uni-th> - <uni-th align="center" width="90">鏁伴噺</uni-th> - <uni-th align="center" width="90">浜у搧鍚嶇О</uni-th> - <uni-th align="center" width="90">浜у搧ID</uni-th> - <uni-th align="center" width="200">缁勬墭鏁伴噺</uni-th> + <uni-th align="center" width="50">鏁伴噺</uni-th> + <uni-th align="center" width="70">缁勬墭鏁伴噺</uni-th> + <uni-th align="center" width="80">浜у搧浠e彿</uni-th> + <uni-th align="center" width="70">浜у搧缂栫爜</uni-th> + <uni-th align="center" width="150">浜у搧鍚嶇О</uni-th> + <uni-th align="center" width="50">搴忓彿</uni-th> + <uni-th align="center" width="70">鎵瑰彿</uni-th> + </uni-tr> <uni-tr v-for="(item, index) in matData" :key="index"> - <uni-td align="center">{{item.seqNo}}</uni-td> - <uni-td align="center">{{item.count}}</uni-td> - <uni-td align="center">{{item.matName}}</uni-td> - <uni-td align="center">{{item.matNo}}</uni-td> + <uni-td align="center">{{item.qty}}</uni-td> <uni-td align="center"> - <button class="uni-button" size="mini" type="primary" @click="confirm(index,item)">淇敼</button> - <button class="uni-button" size="mini" type="warn" @click="remove(index,item)">鍒犻櫎</button> + <button class ="cu-btn bg-orange margin-xs" @click="confirm(index,item)">{{item.count}}</button> + <!-- <button class="uni-button" size="mini" type="warn" @click="remove(index,item)">鍒犻櫎</button> --> </uni-td> + <uni-td align="center">{{item.size}}</uni-td> + <uni-td align="center">{{item.matNo}}</uni-td> + <uni-td align="center">{{item.matName}}</uni-td> + <uni-td align="center">{{item.seqNo}}</uni-td> + <uni-td align="center">{{item.itemBatch}}</uni-td> + </uni-tr> </uni-table> </view> - <view> - <button class="cu-btn bg-yellow pda-btn" @click="comb()">缁� 鎵�</button> - <button class="cu-btn bg-grey pda-btn" @click="reset">閲� 缃�</button> + + <view style="height: 200rpx;"> + <!-- 绌虹櫧灞� --> </view> + <view class="cu-bar foot input" style="height: 130rpx;"> + <view class="flex solid-bottom padding justify-start"> + <button class="cu-btn bg-yellow main-btn margin-xs" style="width: 430rpx;" @click="comb()">缁� 鎵�</button> + <button class="cu-btn bg-grey main-btn margin-xs" @click="reset">閲� 缃�</button> + </view> + </view> + <view> <!-- 鎻愮ず淇℃伅寮圭獥 --> <uni-popup ref="message" type="message"> @@ -45,11 +70,16 @@ <view> <!-- 杈撳叆妗嗙ず渚� --> <uni-popup ref="inputDialog" type="dialog"> - <uni-popup-dialog ref="inputClose" mode="input" title="缁勬墭鏁伴噺" - placeholder="璇疯緭鍏ョ粍鎵樻暟閲�" @confirm="dialogInputConfirm"> + <uni-popup-dialog ref="inputClose" mode="input" title="缁勬墭鏁伴噺" @confirm="dialogInputConfirm"> <uni-number-box :min="minCount" :max="maxCount" v-model="value" /> </uni-popup-dialog> - + </uni-popup> + </view> + <view> + <!-- 鎻愮ず绐楃ず渚� --> + <uni-popup ref="alertDialog" type="dialog"> + <uni-popup-dialog :type="msgType" title="璀﹀憡" :content="message" @confirm="dialogConfirm('error')" + @close="dialogClose"></uni-popup-dialog> </uni-popup> </view> </view> @@ -61,148 +91,352 @@ return { billNo:'', code:'', - matData:[], + matData:[], // 涓昏鏁版嵁琛� type: '', msgType: '', messageText: '', - minCount:1, + minCount:0, maxCount:1, rowNum:'', value:'', couChange:true, - - + baseIP:'', + basePORT:'', + selectArr : [], + selectedIndexs:[], + size:'', + message:'123', + firstFocus:true, // 鎺у埗绗竴涓劍鐐癸紝榛樿鑱氱劍 + secondFocus:false, // 鎺у埗绗簩涓劍鐐� } }, - + mounted(){ + const UIP = uni.getStorageSync('UIP'); + this.baseIP = UIP; + const UPORT = uni.getStorageSync('UPORT'); + this.basePORT = UPORT + }, methods: { - reset:function() { - this.billNo = ''; - this.code = ''; - }, - messageToggle(type) { - this.msgType = type - this.messageText = '鎻愬彇澶辫触' - this.$refs.message.open() - }, + // 璺冲埌绗簩涓� + firstConfirm(){ + this.getFocus('secondFocus') + }, + // 璺冲埌绗竴涓� + secondConfirm(){ - // 鏍规嵁閫氱煡鍗曞彿鏌ヨ鐗╂枡璇︽儏 - find(){ - let billNo = this.billNo - let that = this - if(this.billNo.length === 0){ + }, + + // 鑾峰彇鐒︾偣 + getFocus(nextfocus){ + this[nextfocus] = false // 涓嶈兘浣跨敤鐐硅娉� + this.$nextTick(()=>{ + this[nextfocus] = true + }) + }, + + // 澶氶�� + selectionChange(e) { + // 鑾峰彇閫変腑鐘舵�� + this.selectedIndexs = e.detail.index + this.selectedIndexs.sort(function(a,b){ + return a-b + });// 閲嶆柊鎺掑簭锛堝崌搴忥級 + }, + + // 鍏ㄩ�� + // 鎵归噺鍒犻櫎鐨勬柟娉� + toggleSelection(rows) { + if (rows) { + this.$refs["table"].toggleAllSelection(rows); + } else { + this.$refs["table"].clearSelection(); + } + }, + //鎵归噺鍒犻櫎 + delTable() { + // 瀹炵幇鍏ㄩ�夊垹闄ゅ拰澶氶�夊垹闄� + let len = this.selectedIndexs.length + for (let i = len-1; i >= 0; i--) { + this.matData.splice(this.selectedIndexs[i],1) // splice鍒犻櫎鏁扮粍浼氭敼鍙樺師鏁扮粍锛屾墍浠ラ渶瑕侀�嗗悜鍒犻櫎 + } + this.$refs["table"].clearSelection(); // 娓呯┖閫夋嫨 + + }, + // 鍙嶉�� + reSelection(){ + this.toggleSelection(this.selectedIndexs) + }, + // 娓呯┖ + clearSel() { + this.toggleSelection() + }, + // 鎼滅储浜у搧浠e彿 + searchSize() { + let billNo = this.billNo + let size = this.size; + let that = this + uni.request({ + url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + "/mobile/bill/query1/auth", + header: { + 'content-type':'application/x-www-form-urlencoded', + 'token':uni.getStorageSync('token')}, + data: { + billNo: billNo, + size:size + }, + method: 'POST', + success(res){ + if(res.data.code === 200){ + if(res.data.data != null){ + that.addTableData(res.data.data) + }else if(res.data.code === 403){ + uni.navigateBack({ + delta: 1 + }) + }else { + that.messageToggle('error') + that.messageText = res.data.msg + } + } + } + }) + + }, + // 閲嶇疆 + reset:function() { + this.billNo = ''; + this.code = ''; + this.matData = []; + this.size = ''; + this.toggleSelection(); + this.getFocus('firstFocus') + }, + messageToggle(type) { + this.msgType = type + this.messageText = '鎻愬彇澶辫触' + this.$refs.message.open() + }, + // 鏍规嵁閫氱煡鍗曞彿鏌ヨ鐗╂枡璇︽儏 + find(){ + let billNo = this.billNo + let size = this.size + let that = this + if(this.billNo.length === 0){ + return + } + if(billNo.indexOf('=')>-1){ + billNo = billNo.split(",")[0].split("=")[1]; + } + if(billNo.length===0){ + return + } + this.matData = [] + uni.request({ + url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + "/mobile/bill/query1/auth", + header: { + 'content-type':'application/x-www-form-urlencoded', + 'token':uni.getStorageSync('token')}, + data: { + billNo: billNo, + size:size + }, + method: 'POST', + success(res){ + if(res.data.code === 200){ + if(res.data.data != null){ + that.addTableData(res.data.data) + }else if(res.data.code === 403){ + uni.navigateBack({ + delta: 1 + }) + }else { + that.messageToggle('error') + that.messageText = res.data.msg + } + } + } + }) + + }, + addTableData(data){ + this.matData=[]; + for(var i=0;i<data.length;i++){ + var toPush = true; + for(var j=0;j<this.matData.length;j++){ + if(data[i].matNo ===this.matData[j].matNo && data[i].itemBatch === this.matData[j].itemBatch && data[i].specs === this.matData[j].specs){ + this.matData[j].count = Number(this.matData[j].count) + Number(data[i].count); + toPush = false; + } + } + if(toPush) { + this.matData.push(data[i]); + } + } + }, + + // 淇敼鏁伴噺 + confirm(index,item){ + this.couChange=false + this.$refs.inputDialog.open() + this.maxCount = item.qty + this.rowNum = index + this.value = this.minCount + }, + // 淇敼鏁伴噺寮圭獥 + dialogInputConfirm() { + this.matData[this.rowNum].count = this.value + this.messageToggle('success') + this.messageText = '淇敼鎴愬姛' + }, + // 鍒犻櫎 + remove(index,item){ + this.matData.splice(index,1) + this.messageToggle('success') + this.messageText = '鍒犻櫎鎴愬姛' + }, + // 缁勬墭 + comb(){ + let that = this + let barcode = that.code + let billNo = this.billNo + if(billNo.length === 0){ + that.messageToggle('error') + that.messageText = '鍏ュ簱鍗曞彿涓虹┖' + return; + } + if(barcode.length === 0){ + that.messageToggle('error') + that.messageText = '璇疯緭鍏ユ墭鐩樼爜' + return; + } + if (barcode.length !== 8) { + that.messageToggle('error') + that.messageText = '鎵樼洏鐮佸繀椤讳负8浣�' + return; + } + if(that.couChange){ + that.messageToggle('error') + that.messageText = '璇峰厛纭鍏ュ簱鏁伴噺' + return; + } + for (var i = 0; i < that.matData.length; i++){ + if (that.matData[i].count === 0) { + that.messageToggle('error') + that.messageText = '缁勬墭鏁伴噺涓嶈兘涓�0' + return; + } + } + + for (var i = 0; i < that.matData.length; i++) { + var sad = that.matData[i].qty - that.value + if (sad <= 5 && sad > 0) { + this.$refs.alertDialog.open() + that.message = '浜у搧浠e彿' + that.matData[i].size + '鍓╀綑寰呯粍鎵樻暟閲忓皯浜�5锛屾槸鍚﹀畬缁撴鍗�' return - } - if(billNo.indexOf('=')>-1){ - billNo = billNo.split(",")[0].split("=")[1]; - } - if(billNo.length===0){ - return - } - this.matData = [] - uni.request({ - url: that.baseUrl + "/mobile/bill/query/auth", - header: { - 'content-type':'application/x-www-form-urlencoded', - 'token':uni.getStorageSync('token')}, - data: { - billNo: billNo - }, - method: 'POST', - success(res){ - if(res.data.code === 200){ - if(res.data.data != null){ - that.addTableData(res.data.data) - }else if(res.data.code === 403){ - - }else { - + } else { + uni.request({ + url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + "/mobile/comb/auth", + header: {'token':uni.getStorageSync('token')}, + data:{ + barcode:barcode, + combMats:that.matData, + billNo: billNo, + }, + method:'POST', + success(res) { + if(res.data.code === 200){ + that.reset() + that.matData = [] + that.couChange=true + that.messageToggle('success') + that.messageText = '缁勬墭鎴愬姛' + this.getFocus('firstFocus') + } else if(res.data.code === 403){ + uni.navigateBack({ + delta: 1 + }) + } else { + that.messageToggle('error') + that.messageText = res.data.msg } } - } - }) - - }, - addTableData(data){ - for(var i=0;i<data.length;i++){ - var toPush = true; - for(var j=0;j<this.matData.length;j++){ - if(data[i].matNo ===this.matData[j].matNo ){ - this.matData[j].count = Number(this.matData[j].count) + Number(data[i].count); - toPush = false; - } - } - if(toPush) { - this.matData.push(data[i]); - } + }) } - - }, + } - // 淇敼鏁伴噺 - confirm(index,item){ - this.couChange=false - this.$refs.inputDialog.open() - this.maxCount = item.count - this.rowNum = index - this.value = this.maxCount - }, - // 淇敼鏁伴噺寮圭獥 - dialogInputConfirm() { - this.matData[this.rowNum].count = this.value - this.messageToggle('success') - this.messageText = '淇敼鎴愬姛' - }, - // 鍒犻櫎 - remove(index,item){ - this.matData.splice(index,1) - this.messageToggle('success') - this.messageText = '鍒犻櫎鎴愬姛' - }, - comb(){ - let that = this - let barcode = that.code - let billNo = this.billNo - if(billNo.length === 0){ - that.messageToggle('error') - that.messageText = '鍏ュ簱鍗曞彿涓虹┖' - return; - } - if(barcode.length === 0){ - that.messageToggle('error') - that.messageText = '璇疯緭鍏ユ墭鐩樼爜' - return; - } - if (barcode.length !== 8) { - that.messageToggle('error') - that.messageText = '鎵樼洏鐮佸繀椤讳负8浣�' - return; - } - if(that.couChange){ - that.messageToggle('error') - that.messageText = '璇峰厛纭鍏ュ簱鏁伴噺' - return; - } - uni.request({ - url: that.baseUrl + "/mobile/comb/auth", - header: {'token':uni.getStorageSync('token')}, - data:{ - barcode:barcode, - combMats:that.matData, - billNo: billNo, - }, - method:'POST', - success(res) { - - if(res.data.code === 200){ - that.reset() - that.matData = [] - that.messageToggle('success') - that.messageText = '缁勬墭鎴愬姛' - } + }, + // 鏄惁 + dialogConfirm() { + let that = this + let barcode = that.code + let billNo = this.billNo + for (var i = 0; i < that.matData.length; i++) { + that.matData[i].oveFlag = 1 + } + uni.request({ + url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + "/mobile/comb/auth", + header: {'token':uni.getStorageSync('token')}, + data:{ + barcode:barcode, + combMats:that.matData, + billNo: billNo, + }, + method:'POST', + success(res) { + if(res.data.code === 200){ + that.reset() + that.matData = [] + that.couChange=true + that.messageToggle('success') + that.messageText = '缁勬墭鎴愬姛' + this.getFocus('firstFocus') + } else if(res.data.code === 403){ + uni.navigateBack({ + delta: 1 + }) + } else { + that.messageToggle('error') + that.messageText = res.data.msg } - }) - }, + } + }) + }, + // 鍚� + dialogClose() { + let that = this + let barcode = that.code + let billNo = this.billNo + for (var i = 0; i < that.matData.length; i++) { + that.matData[i].oveFlag = 0 + } + uni.request({ + url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + "/mobile/comb/auth", + header: {'token':uni.getStorageSync('token')}, + data:{ + barcode:barcode, + combMats:that.matData, + billNo: billNo, + }, + method:'POST', + success(res) { + if(res.data.code === 200){ + that.reset() + that.matData = [] + that.couChange=true + that.messageToggle('success') + that.messageText = '缁勬墭鎴愬姛' + this.getFocus('firstFocus') + } else if(res.data.code === 403){ + uni.navigateBack({ + delta: 1 + }) + } else { + that.messageToggle('error') + that.messageText = res.data.msg + } + } + }) + } }, onShow() { } @@ -210,5 +444,12 @@ </script> <style> - + .delTable { + margin-left:0; + margin-right: auto; + width: 200rpx; + height: 80rpx; + font-size: 30upx; + font-weight: bold; + } </style> -- Gitblit v1.9.1