From 722736f9a56cf64b615e37ed1722dd430ad90d2d Mon Sep 17 00:00:00 2001
From: whycq <123456>
Date: 星期三, 26 十月 2022 08:48:31 +0800
Subject: [PATCH] #

---
 pages/basics/pakin.vue |  307 +++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 238 insertions(+), 69 deletions(-)

diff --git a/pages/basics/pakin.vue b/pages/basics/pakin.vue
index 5f62d7d..c79978c 100644
--- a/pages/basics/pakin.vue
+++ b/pages/basics/pakin.vue
@@ -8,8 +8,8 @@
 				</view>
 				<view class="square-content">
 					<view class="content-input">
-						<input v-model="barcode" type="text" placeholder="鎵爜 / 杈撳叆" maxlength="8"
-						:focus="barcodeFocus" @focus="focuss">
+						<input v-model="barcode" type="text" placeholder="鎵爜 / 杈撳叆" placeholder-style="margin-top:10px" maxlength="10" 
+						:focus="barcodeFocus" @confirm="barcodeInput()">
 						<uni-icons type="closeempty" size="20" color="#dadada" @click="removeBarcode()"></uni-icons>
 					</view>
 				</view>
@@ -22,14 +22,14 @@
 					<view class="title-text"><text>妫�绱㈠晢鍝�</text></view>
 				</view>
 				<view class="square-content">
-					<view class="content-input-btn">
+					<view class="content-input">
 						<input v-model="matnr" type="text" placeholder="鎵爜 / 杈撳叆" @input="findMat()"
-						:focus="focus" @focus="focuss">
+						:focus="focus" placeholder-style="margin-top:9px">
 						<uni-icons type="closeempty" size="20" color="#dadada" @click="removeMatnr()"></uni-icons>
 					</view>
-					<view class="content-btn">
+					<!-- <view class="content-btn">
 						<button class="cu-btn bg-blue pda-btn" @click="selectMat()">+鎻愬彇</button>
-					</view>
+					</view> -->
 				</view>
 			</view>
 			
@@ -38,8 +38,10 @@
 				<view class="square-title">
 					<view class="title-sign"><view class="sign"></view></view>
 					<view class="title-text"><text>鍟嗗搧鍒楄〃</text></view>
+					<!-- <label v-show="matList.length != 0" style="float: right;margin-right: 20px;margin-top: 13px;"><uni-icons type="trash" size="25" color="#a5a5a5" @click="remove()"></uni-icons></label> -->
 				</view>
 			</view>
+			
 			<view class="square-none"  v-show="matList.length === 0">
 				<view class="v-show">鏆傛棤鏇村鏁版嵁...</view>
 			</view>
@@ -47,41 +49,57 @@
 			<checkbox-group @change="checkbox">
 				<view v-for="(item,index) in matList" :key="index" class="data-list bg-false" :class="'bg-'+item.checked" >
 					<view class="data-list-left">
-						<view class="matnr"><text style="width: 400rpx;">缂栫爜锛歿{item.matnr}}</text></view>
-						<view><text style="width: 400rpx;">鍝佸悕锛歿{item.maktx}}</text></view>
-						<view><text style="width: 400rpx;">鎵瑰彿锛歿{item.batch}}</text></view>
+						<!-- <view>
+							<checkbox :value="item.id+''" :checked="item.checked" style="display: block;" />
+						</view> -->
+						<view class="matnr"><text style="width: 400rpx;">缂栫爜锛歿{item.matNo}}</text></view>
+						<view><text style="width: 400rpx;">鍝佸悕锛歿{item.matName}}</text></view>
+						<view><text style="width: 400rpx;">瑙勬牸锛歿{item.str2}}</text></view>
 						<view>
-							<text style="width: 400rpx;">鏁伴噺锛歿{item.anfme}}</text>
+							<text style="width: 400rpx;">鏁伴噺锛歿{item.count}}</text>
 						</view>
 					</view>
 					<view class="data-list-right">
-						<label><uni-icons type="compose" size="20" color="#a5a5a5" @click="revise(item,index)"></uni-icons></label>
+						<label><uni-icons type="compose" size="20" color="#a5a5a5" @click="revise(index)"></uni-icons></label>
 						<label><uni-icons type="trash" size="25" color="#a5a5a5" @click="remove(item,index)"></uni-icons></label>
 					</view>
 				</view>
 			</checkbox-group>
 		</scroll-view>
+		
+		
+		<!-- 搴曢儴鎸夐挳 -->
 		<view class="footer flex justify-around">
-			<view>
-				<button class="cu-btn lg" @click="resst()">閲嶇疆</button>
-			</view>
-			<view>
-				<button class="cu-btn lg pakin-btn bg-blue" @click="comb()">缁勬墭</button>
-			</view>
+			<!-- <label class="label-btn" style="width: 170rpx;">
+				<checkbox :checked="check" @click="allChecked()">{{checkText}}</checkbox>
+			</label>
+			<label class="label-btn" style="width: 100rpx;">
+				<text  @click="reChecked()">鍙嶉��</text>
+			</label> -->
+			
+			<label class="label-btn" style="width: 150rpx;">
+				<button class="cu-btn" @click="resst()">閲嶇疆</button>
+			</label>
+			<label class="label-btn">
+				<button class="cu-btn bg-blue " @click="comb()">缁勬墭</button>
+			</label>
 		</view>
+		
+		<!-- 寮圭獥 -->
 		<!-- 淇敼鏁伴噺 -->
-		<uni-popup ref="revise" background-color="#fff" @change="change">
+		
+		<uni-popup ref="revise" background-color="#fff">
 			<view class="revise-box">
 				<view class="revise-box-top">
 					<view class="color-block-blue"></view>
 					<text class="title">缁勬墭鏁伴噺</text>
 				</view>
 				<view class="text-box">
-					<text>鍙粍鏁伴噺锛歿{enableQty}}</text>
+					<text>纭缁勬墭鏁伴噺</text>
 				</view>
 				<view class="changeBox">
 					<view class="num-box">
-						<uni-number-box v-model="count" :min="minCount" :max="maxCount" color="#747474"  @change="changeValue"/>
+						<uni-number-box :value="count" :max="999999999" color="#747474" @change="changeValue" />
 					</view> 
 				</view>
 				<view class="revise-box-buttom">
@@ -89,7 +107,6 @@
 						<button class="cu-btn bg-blue" @click="confirm()">纭</button>
 					</view>
 				</view>
-				
 			</view>
 		</uni-popup>
 	</view>
@@ -111,10 +128,20 @@
 				result: '',
 				enableQty:'',
 				count:'',
+				counts:'',
 				minCount:0,
 				maxCount:'',
 				rowNum:'',
+				check:false,
+				checkText:'鍏ㄩ��',
+				checkedData:[],
 			}
+		},
+		onShow() {
+			setTimeout(()=>{
+				// this.focuss()
+			}, 100);
+			
 		},
 		mounted(){
 			const UIP = uni.getStorageSync('UIP');
@@ -123,12 +150,40 @@
 			this.basePORT = UPORT
 		},
 		methods: {
+			// barcode input 浜嬩欢
+			barcodeInput() {
+				// 涓嶈缃畾鏃跺櫒 浼氬嚭鐜版壂鍏ョ殑瀛楃涓蹭笉鍏�
+				setTimeout(()=>{
+					var len = this.barcode.length
+					if (len != 8) {
+						uni.showToast({title: '鎵樼洏鐮佹湁璇閲嶈瘯', icon: "none", position: 'top'});
+						this.barcodeFocuss()
+						return;
+					}
+					if (len == 8) {
+						this.focuss()
+					}
+				},100)
+				
+			},
+			// 鎵樼洏鐮佹湁璇噸缃�
+			barcodeFocuss() {
+				// #ifdef APP
+				let that = this;
+				that.barcodeFocus = false;
+				setTimeout(()=>{
+					that.barcode = '';
+					that.barcodeFocus = true;
+				}, 100);
+				// #endif
+			},
+			// 鍟嗗搧鍏夋爣娓呯┖閲嶇疆
 			focuss() {
 				// #ifdef APP
 				let that = this;
 				that.focus = false;
 				setTimeout(()=>{
-					that.matnrId = '';
+					that.matnr = '';
 					that.focus = true;
 				}, 100);
 				// #endif
@@ -136,7 +191,7 @@
 			resst() {
 				this.matList = []
 				this.barcode = ''
-				this.matnr = ''
+				this.barcodeFocuss()
 				uni.vibrateShort();
 			},
 			removeBarcode() {
@@ -157,6 +212,7 @@
 			},
 			remove(item,index) {
 				this.matList.splice(index,1)
+				this.checkList();
 				uni.vibrateShort();
 			},
 			comb() {
@@ -215,20 +271,21 @@
 							that.matnr = data.data
 							that.findMat(that.matnr)
 					    },
-					  },
-					  success: function(res) {
+					},
+					success: function(res) {
 					    // 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹�   鍚戝彟澶栦竴涓〉闈紶閫掑�肩殑
-					    res.eventChannel.emit('acceptDataFromOpenerPage', {baseIP:that.baseIP, basePORT:that.basePORT })
-					  }
+					    res.eventChannel.emit('matData', {baseIP:that.baseIP, basePORT:that.basePORT })
+					},
+					
 				});
 				that.matnr = ''
 			},
 			findMat() {
 				let that = this
 				uni.request({
-				    url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + '/mat/auth',
+				    url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + '/matCode/auth',
 				    data: {
-						matnr:that.matnr
+						id:that.matnr
 				    },
 				    header: {
 						'token':uni.getStorageSync('token')
@@ -238,26 +295,45 @@
 						let res = result.data
 						if (res.code === 200 && res.data) {
 							that.matData = res.data
+							that.matnr = ''
 							uni.navigateTo({
 								url: "matQuery",
 								events: {
 								    // 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹�
 								    matList: function(data) {
-										that.matList.push(data.data)
-										console.log(that.matList)
-								    },
-								  },
-								  success: function(res) {
-								    // 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹�
-								    res.eventChannel.emit('matData', { data: that.matData })
-								  }
+										that.checkMat(data.data)
+										// that.matList.push(data.data)
+									},
+								},
+								success: function(res) {
+									// 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹�
+									res.eventChannel.emit('matData', { data: that.matData })
+								},
 							});
 						}
 						
 					}
 				});
+				
 			},
-		
+			// 娣诲姞鍟嗗搧
+			addMat(mat) {
+				this.matList.unshift(mat)
+			},
+			checkMat(mat) {
+				var len = this.matList.length
+				var add = true
+				for (var i = 0; i < len; i++) {
+					if (mat.matNo === this.matList[i].matNo) {
+						this.matList[i].count += mat.count 
+						this.$forceUpdate() // 寮哄埗鍒锋柊
+						add = false
+					}
+				}
+				if (add) {
+					this.matList.unshift(mat)
+				}
+			},
 			change(e) {
 				console.log('褰撳墠妯″紡锛�' + e.type + ',鐘舵�侊細' + e.show);
 			},
@@ -267,18 +343,61 @@
 				this.$refs.goodsSearch.open(type)
 			},
 			checkbox: function (e) {
-				var items = this.data,
-					values = e.detail.value;
-				for (var i = 0, lenI = items.length; i < lenI; ++i) {
-					const item = items[i]
-					item.id = item.id + ''
-					if(values.indexOf(item.id) >= 0){
-						this.$set(item,'checked',true)
+				// var items = this.matList,
+				// 	values = e.detail.value;
+				// for (var i = 0, lenI = items.length; i < lenI; ++i) {
+				// 	const item = items[i]
+				// 	item.id = item.id + ''
+				// 	if(values.indexOf(item.id) >= 0){
+				// 		this.$set(item,'checked',true)
+				// 	}else{
+				// 		this.$set(item,'checked',false)
+				// 	}
+				// }
+				// if (values.length == items.length) {
+				// 	this.check = true
+				// 	this.checkText = "鍙栨秷鍏ㄩ��"
+				// } else {
+				// 	this.check = false
+				// 	this.checkText = "鍏ㄩ��"
+				// }
+				// uni.vibrateShort();
+			},
+			revise(index) {
+				this.rowNum = index
+				this.count = this.matList[this.rowNum].count
+				this.$refs.revise.open()
+				
+			},
+			changeCount(e) {
+				
+			},
+			changeValue(value) {
+				this.count = value
+			},
+			// 纭缁勬墭鏁伴噺
+			confirm() {
+				this.matList[this.rowNum].count = this.count
+				this.$refs.revise.close()
+				this.$forceUpdate() // 寮哄埗鍒锋柊
+			},
+			// 鍒楄〃鍙嶉��
+			reChecked() { 
+				if (this.matList.length == 0) {
+					return;
+				}
+				var checkArr = []
+				for (var i = 0; i < this.matList.length;i++) {
+					if (this.matList[i].checked == true) {
+						this.$set(this.matList[i],'checked',false)
 					}else{
-						this.$set(item,'checked',false)
+						this.$set(this.matList[i],'checked',true)
+					}
+					if (this.matList[i].checked == true) {
+						checkArr.push(this.matList[i].checked) 
 					}
 				}
-				if (values.length == items.length) {
+				if (checkArr.length == this.matList.length) {
 					this.check = true
 					this.checkText = "鍙栨秷鍏ㄩ��"
 				} else {
@@ -287,29 +406,32 @@
 				}
 				uni.vibrateShort();
 			},
-			revise(item,index) {
-				var maxCount = this.matList[index].maxCount
-				if (maxCount == undefined ) {
-					this.matList[index]["maxCount"] = item.enableQty
-				} 
-				this.enableQty = item.enableQty
-				this.count = this.minCount
-				this.maxCount = item.maxCount
-				this.rowNum = index
-				this.eject()
-			},
-			eject(type) {
-				this.type = type
-				// open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦� uni-popup 缁勪欢涓婄粦瀹� type灞炴��
-				this.$refs.revise.open(type)
-			},
-			changeValue() {
+			// 鍒楄〃鍏ㄩ��
+			allChecked(e){ 
 				
+				if (this.check == true) {
+					for (var i = 0; i < this.matList.length;i++) {
+						this.$set(this.matList[i],'checked',false)
+					}
+					this.check = false
+					this.checkText = "鍏ㄩ��"
+				} else {
+					for (var i = 0; i < this.matList.length;i++) {
+						this.$set(this.matList[i],'checked',true)
+					}
+					this.check = true
+					this.checkText = "鍙栨秷鍏ㄩ��"
+				}
+				uni.vibrateShort();
 			},
-			confirm() {
-				this.matList[this.rowNum].anfme = this.count
-				this.$refs.revise.close()
-			},
+			// 妫�楠屽垪琛ㄩ暱搴� 绛変簬0 鏄剧ず鍏ㄩ��  
+			checkList() {
+				if (this.matList.length == 0) {
+					this.check = false
+					this.checkText = "鍏ㄩ��"
+					return;
+				}
+			}
 		}
 	}
 </script>
@@ -417,12 +539,13 @@
 		height: 180rpx;
 		margin: 15rpx;
 		border-radius: 20rpx;
+		font-size: 12px;
 	}
 	.data-list:first-child {
 		margin-top: 20rpx;
 	}
 	.data-list:last-child {
-		margin-bottom: 120rpx;
+		margin-bottom: 170rpx;
 	}
 	/* .data-list-left {
 		display: inline-block;
@@ -459,4 +582,50 @@
 		width: 80rpx;
 		height: 180rpx;
 	}
+	.revise-box {
+		width: 500rpx;
+		height: 500rpx;
+	}
+	.revise-box-top {
+		width: 100%;
+		height: 100rpx;
+		background-color: #fff;
+		padding: 10rpx;
+	}
+	.changeBox {
+		width: 100%;
+		height: 100rpx;
+		line-height: 120rpx;
+		text-align: center;
+		background-color: #FFF;
+		margin-top: 20rpx;
+		border-bottom: 1px solid #e3e3e3;
+	}
+	.text-box {
+		width: 100%;
+		height: 100rpx;
+		line-height: 120rpx;
+		text-align: center;
+		/* padding-left: 120rpx; */
+		background-color: #FFF;
+		margin-top: 20rpx;
+		border-bottom: 1px solid #e3e3e3;
+	}
+	.changeBox .num-box {
+		display:  inline-block;
+		/* float: left; */
+	}
+	.changeBox button {
+		float: left;
+	}
+	.revise-box-buttom {
+		position: absolute;
+		width: 100%;
+		height: 100rpx;
+		line-height: 100rpx;
+		background-color: #FFFFFF;
+		bottom: 0;
+		text-align: center;
+	}
+	
 </style>
\ No newline at end of file

--
Gitblit v1.9.1