From f3a018b6953e6c94ba47c72fbe184efa269a098c Mon Sep 17 00:00:00 2001
From: whycq <whycq>
Date: 星期二, 15 二月 2022 16:51:21 +0800
Subject: [PATCH] !

---
 pages/basics/combPro.vue |  188 ++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 170 insertions(+), 18 deletions(-)

diff --git a/pages/basics/combPro.vue b/pages/basics/combPro.vue
index aea4f32..8cdd861 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,46 @@
 			</view>
 		</form>
 		<view class="margin-top">
-			<uni-table border stripe emptyText="鏆傛棤鏇村鏁版嵁">
+			<uni-table ref="table" border stripe emptyText="鏆傛棤鏇村鏁版嵁" rowKey="">
 				<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">浜у搧鍚嶇О</uni-th>
+					<uni-th align="center" width="90">浜у搧ID</uni-th>
+					<uni-th align="center" width="200">缁勬墭鏁伴噺</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.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">
+						<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>
+					</uni-td>
 				</uni-tr>
 			</uni-table>
-			
 		</view>
 		<view>
-			<button class="cu-btn bg-yellow pda-btn">缁勬墭</button>
+			<button class="cu-btn bg-yellow pda-btn" @click="comb()">缁勬墭</button>
 			<button class="cu-btn bg-grey pda-btn" @click="reset">閲嶇疆</button>
+		</view>
+		<view>
+			<!-- 鎻愮ず淇℃伅寮圭獥 -->
+			<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,19 +61,150 @@
 			return {
 				billNo:'',
 				code:'',
+				matData:[],
+				type: '',
+				msgType: '',
+				messageText: '',
+				minCount:1,
+				maxCount:1,
+				rowNum:'',
+				value:'',
+				couChange:true,
+				
+				
 			}
 		},
+		
 		methods: {
 				reset:function() {
-					let that =this;
-					that.billNo = '';
-					that.code = '';
+					this.billNo = '';
+					this.code = '';
+				},
+				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.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.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 = '缁勬墭鎴愬姛'
+							}
+						}
+					})
+				},
 		},
 		onShow() {
-			// const query = uni.createSelectorQuery()
-			// console.log(prototype.placeholder)
 		}
 	}
 </script>

--
Gitblit v1.9.1