From 75ea1362b54946c8a8b6aa8260c2f4e5843154ab Mon Sep 17 00:00:00 2001 From: whycq <whycq> Date: 星期一, 28 二月 2022 16:58:28 +0800 Subject: [PATCH] # --- pages/basics/combPro.vue | 259 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 239 insertions(+), 20 deletions(-) diff --git a/pages/basics/combPro.vue b/pages/basics/combPro.vue index aea4f32..5374feb 100644 --- a/pages/basics/combPro.vue +++ b/pages/basics/combPro.vue @@ -3,7 +3,7 @@ <form> <view class="cu-form-group margin-top"> <view class="title">鍗曞彿</view> - <input v-model="billNo" placeholder="鎵爜 / 杈撳叆" name="input" autocomplete="off"> + <input v-model="billNo" placeholder="鎵爜 / 杈撳叆" name="input" autocomplete="off" focus @input="find()"> </view> <view class="cu-form-group margin-top"> <view class="title">鎵樼洏鐮�</view> @@ -11,25 +11,56 @@ </view> </form> <view class="margin-top"> - <uni-table border stripe emptyText="鏆傛棤鏇村鏁版嵁"> + <uni-table ref="table" border stripe emptyText="鏆傛棤鏇村鏁版嵁" type="selection" @selection-change="selectionChange"> <uni-tr> - <uni-th>鐗╂枡缂栫爜</uni-th> - <uni-th>鐢熶骇鍗曞彿</uni-th> - <uni-th>鏁伴噺</uni-th> - <uni-th>鐗╂枡鍚嶇О</uni-th> + <uni-th align="center" width="90">鏁伴噺</uni-th> + <uni-th align="center" width="90">缁勬墭鏁伴噺</uni-th> + <uni-th align="center" width="90">浜у搧浠e彿</uni-th> + <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">鎵瑰彿</uni-th> + + </uni-tr> - <uni-tr> - <uni-td>1121</uni-td> - <uni-td>1121</uni-td> - <uni-td>1121</uni-td> - <uni-td>1121</uni-td> + <uni-tr v-for="(item, index) in matData" :key="index"> + <uni-td align="center">{{item.count}}</uni-td> + <uni-td align="center"> + <button class ="cu-btn bg-orange margin-xs" @click="confirm(index,item)">淇� 鏀�</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 class="flex solid-bottom justify-between"> + <button class ="cu-btn bg-red margin-xs" @click="delTable">鎵归噺鍒犻櫎</button> + <button class ="cu-btn bg-olive margin-xs" @click="reSelection">鍙嶉��</button> + <button class ="cu-btn bg-cyan margin-xs" @click="clearSel">娓呯┖閫夋嫨</button> + </view> + <view class="flex solid-bottom padding justify-around"> + <button class="cu-btn bg-yellow lg" @click="comb()">缁� 鎵�</button> + <button class="cu-btn bg-grey lg" @click="reset">閲� 缃�</button> </view> <view> - <button class="cu-btn bg-yellow pda-btn">缁勬墭</button> - <button class="cu-btn bg-grey pda-btn" @click="reset">閲嶇疆</button> + <!-- 鎻愮ず淇℃伅寮圭獥 --> + <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="inputDialog" type="dialog"> + <uni-popup-dialog ref="inputClose" mode="input" title="缁勬墭鏁伴噺" + placeholder="璇疯緭鍏ョ粍鎵樻暟閲�" @confirm="dialogInputConfirm"> + <uni-number-box :min="minCount" :max="maxCount" v-model="value" /> + </uni-popup-dialog> + </uni-popup> </view> </view> </template> @@ -40,23 +71,211 @@ return { billNo:'', code:'', + matData:[], + type: '', + msgType: '', + messageText: '', + minCount:0, + maxCount:1, + rowNum:'', + value:'', + couChange:true, + baseIP:'', + selectArr : [], + selectedIndexs:[], + + } }, + mounted(){ + const UIP = uni.getStorageSync('UIP'); + this.baseIP = UIP + }, methods: { + // 澶氶�� + selectionChange(e) { + // 鑾峰彇閫変腑鐘舵�� + this.selectedIndexs = e.detail.index + this.selectedIndexs.sort(function(a,b){ + return a-b + });// 閲嶆柊鎺掑簭锛堝崌搴忥級 + }, + + // 鍏ㄩ�� + // 鎵归噺鍒犻櫎鐨勬柟娉� + toggleSelection(rows) { + console.log(rows) + if (rows) { + this.$refs["table"].toggleAllSelection(rows); + } else { + this.$refs["table"].clearSelection(); + } + }, + //鎵归噺鍒犻櫎 + delTable() { + // 瀹炵幇鍏ㄩ�夊垹闄ゅ拰澶氶�夊垹闄� + let len = this.selectedIndexs.length + // len.forEach(index => { + // console.log(index) + // this.matData.splice(index,1); + // }) + for (let i = len-1; i >= 0; i--) { + console.log(this.selectedIndexs[i]) + this.matData.splice(this.selectedIndexs[i],1) // splice鍒犻櫎鏁扮粍浼氭敼鍙樺師鏁扮粍锛屾墍浠ラ渶瑕侀�嗗悜鍒犻櫎 + } + this.$refs["table"].clearSelection(); // 娓呯┖閫夋嫨 + + }, + // 鍙嶉�� + reSelection(){ + this.toggleSelection(this.selectedIndexs) + }, + // 娓呯┖ + clearSel() { + this.toggleSelection() + }, reset:function() { - let that =this; - that.billNo = ''; - that.code = ''; + this.billNo = ''; + this.code = ''; + this.matData = []; + this.toggleSelection() + }, + messageToggle(type) { + this.msgType = type + this.messageText = '鎻愬彇澶辫触' + this.$refs.message.open() }, + // 鏍规嵁閫氱煡鍗曞彿鏌ヨ鐗╂枡璇︽儏 + find(){ + let billNo = this.billNo + 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.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 { + + } + } + } + }) + + }, + 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.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; + } + uni.request({ + url: that.baseHttp + that.baseIP + 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 = '缁勬墭鎴愬姛' + } + } + }) + }, }, onShow() { - // const query = uni.createSelectorQuery() - // console.log(prototype.placeholder) } } </script> <style> - + .delTable { + margin-left:0; + margin-right: auto; + width: 200rpx; + height: 80rpx; + font-size: 30upx; + font-weight: bold; + } </style> -- Gitblit v1.9.1