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