From 009851b4daec9895cfe6bcb895dce5fed2cf59b0 Mon Sep 17 00:00:00 2001
From: whycq <whycq>
Date: 星期五, 04 三月 2022 08:09:04 +0800
Subject: [PATCH] # 增加搜素功能

---
 pages/basics/combPro.vue |  382 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 360 insertions(+), 22 deletions(-)

diff --git a/pages/basics/combPro.vue b/pages/basics/combPro.vue
index aea4f32..d0de175 100644
--- a/pages/basics/combPro.vue
+++ b/pages/basics/combPro.vue
@@ -3,33 +3,83 @@
 		<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>
 				<input v-model="code" placeholder="鎵爜 / 杈撳叆" name="input">
 			</view>
 		</form>
+		
 		<view class="margin-top">
-			<uni-table border stripe emptyText="鏆傛棤鏇村鏁版嵁">
+			<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>
+			<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.qty}}</uni-td>
+					<uni-td align="center">
+						<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 class="flex solid-bottom  padding justify-start">
+			<button class ="cu-btn bg-red margin-xs" @click="delTable">鎵归噺鍒犻櫎</button>
+			<button class ="cu-btn bg-cyan margin-xs" @click="clearSel">娓呯┖閫夋嫨</button>
+			<button class ="cu-btn bg-olive margin-xs" @click="reSelection">鍙嶉��</button>
+		</view>
+		<view style="height: 200rpx;">
+			 <!-- 绌虹櫧灞� -->
+		</view>
+		<view class="cu-bar foot input">
+			<view class="flex solid-bottom padding justify-start">
+				<button class="cu-btn bg-yellow  lg margin-xs" style="width: 250rpx;" @click="comb()">缁� 鎵�</button>
+				<button class="cu-btn bg-grey lg margin-xs" @click="reset">閲� 缃�</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>
-			<button class="cu-btn bg-yellow pda-btn">缁勬墭</button>
-			<button class="cu-btn bg-grey pda-btn" @click="reset">閲嶇疆</button>
+			<!-- 杈撳叆妗嗙ず渚� -->
+			<uni-popup ref="inputDialog" type="dialog">
+				<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"
+					@close="dialogClose"></uni-popup-dialog>
+			</uni-popup>
 		</view>
 	</view>
 </template>
@@ -40,23 +90,311 @@
 			return {
 				billNo:'',
 				code:'',
+				matData:[], // 涓昏鏁版嵁琛�
+				type: '',
+				msgType: '',
+				messageText: '',
+				minCount:0,
+				maxCount:1,
+				rowNum:'',
+				value:'',
+				couChange:true,
+				baseIP:'',
+				basePORT:'',
+				selectArr : [],
+				selectedIndexs:[],
+				size:'',
+				message:'123'
+				
 			}
 		},
+		mounted(){
+			const UIP = uni.getStorageSync('UIP');
+			this.baseIP = UIP;
+			const UPORT = uni.getStorageSync('UPORT');
+			this.basePORT = UPORT
+		},
 		methods: {
-				reset:function() {
-					let that =this;
-					that.billNo = '';
-					that.code = '';
-				},
+			// 澶氶��
+			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/query/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){
+								
+							}else {
+								
+							}
+						}
+					}
+				})
+				// var str = ''
+				// var tempData = []
+				// str = val.detail.value;
+				// tempData = this.tableData
+				// for (var i = 0; i < tempData.length; i++) {
+				// 	var size = tempData[i].size
+				// 	if (str != '') {
+				// 		if (str === size) {
+				// 			tempData =[]
+				// 			tempData.push(this.matData[i])
+				// 			break	
+				// 		}
+				// 	}
+				// }
+				// this.tableData = tempData
+				// this.matData = tempData
+			}, //SA290475 SH3102081
+			// 閲嶇疆
+			reset:function() {
+				this.billNo = '';
+				this.code = '';
+				this.matData = [];
+				
+				this.size = '';
+				this.toggleSelection()
+			},
+			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/query/auth",
+					header: {
+						'content-type':'application/x-www-form-urlencoded',
+						'token':uni.getStorageSync('token')},
+					data: {
+					    billNo: billNo,
+						size:size
+					},
+					method: 'POST',
+					success(res){
+						console.log(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){
+				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 ){
+							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++) {
+					console.log(that.value)
+					console.log(that.matData[i].qty)
+					var sad = that.matData[i].qty - that.value
+					console.log(sad)
+					if (sad <= 5 && sad > 0) {
+						this.$refs.alertDialog.open()
+						that.message = '浜у搧浠e彿' + that.matData[i].size + '鍓╀綑寰呯粍鎵樻暟閲忓皯浜�5锛屾槸鍚︾户缁粍鎵�'
+						return
+					} 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.messageToggle('success')
+									that.messageText = '缁勬墭鎴愬姛'
+								}
+							}
+						})
+					}
+				}
+				
+			},
+			// 纭畾缁勬墭
+			dialogConfirm() {
+				console.log(1)
+				let that = this
+				let barcode = that.code
+				let billNo = this.billNo
+				console.log(that.matData)
+				for (var i = 0; i < that.matData.length; i++) {
+					that.matData[i].oveFlag = 1
+				}
+				console.log(that.matData)
+				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.messageToggle('success')
+							that.messageText = '缁勬墭鎴愬姛'
+						}
+					}
+				})
+			},
+			// 鍙栨秷缁勬墭
+			dialogClose() {
+				console.log('鍙栨秷缁勬墭浜�')
+			}
 		},
 		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