From 54fce333aae7d6f596616a6eb5e65c27c28a9994 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期三, 21 八月 2024 12:39:26 +0800
Subject: [PATCH] #

---
 pages/basics/pakin.vue |  398 +++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 274 insertions(+), 124 deletions(-)

diff --git a/pages/basics/pakin.vue b/pages/basics/pakin.vue
index 92d886e..dfdf8d4 100644
--- a/pages/basics/pakin.vue
+++ b/pages/basics/pakin.vue
@@ -8,13 +8,39 @@
 				</view>
 				<view class="square-content">
 					<view class="content-input">
-						<input v-model="barcode" type="text" placeholder="鎵爜 / 杈撳叆" placeholder-style="margin-top:10px" maxlength="10" 
-						:focus="barcodeFocus" @confirm="barcodeInput()">
+						<input v-model="barcode" type="text" placeholder="鎵爜 / 杈撳叆" 
+						:focus="barcodeFocus" @input="checkedBarcode()" placeholder-style="line-height:  85rpx;">
 						<uni-icons type="closeempty" size="20" color="#dadada" @click="removeBarcode()"></uni-icons>
 					</view>
 				</view>
 			</view>
+			<view class="square-1">
+				<view class="square-title">
+					<view class="title-sign"><view class="sign"></view></view>
+					<view class="title-text"><text>鏄惁鍐荤粨</text></view>
+					<radio-group @change="isFrozen">
+						<label>
+							<radio :checked="ck1" style="margin-left: 100rpx;"/><text>鏄�</text>
+						</label>
+						<label>
+							<radio :checked="ck2" style="margin-left: 50rpx;"/><text>鍚�</text>
+						</label>
+					</radio-group>
+					<!-- <radio :value="yes" style="margin-left: 100rpx;">鏄�</radio>
+					<radio :value="no" style="margin-left: 50rpx;">鍚�</radio> -->
+				</view>
+			</view>
 			
+			<view class="square-1">
+				<view class="square-title" style="display: flex;align-items: center;">
+					<view class="title-sign"><view class="sign"></view></view>
+					<view class="title-text" style="flex: 1;"><text>鍟嗗搧绫诲瀷</text></view>
+					<view style="">
+						<uni-combox style="width: 150px;margin-right: 10px;" :candidates="matTypes" placeholder="璇烽�夋嫨鍟嗗搧绫诲瀷"
+						v-model="matType"></uni-combox>
+					</view>
+				</view>
+			</view>
 			
 			<view class="square-2">
 				<view class="square-title">
@@ -22,14 +48,14 @@
 					<view class="title-text"><text>妫�绱㈠晢鍝�</text></view>
 				</view>
 				<view class="square-content">
-					<view class="content-input">
+					<view class="content-input-btn">
 						<input v-model="matnr" type="text" placeholder="鎵爜 / 杈撳叆" @input="findMat()"
-						:focus="focus" placeholder-style="margin-top:9px">
+						:focus="focus" placeholder-style="line-height:  85rpx;">
 						<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>
 			
@@ -52,15 +78,24 @@
 						<!-- <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>
+						<table>
+							<tr><td>缂栧彿锛�</td><td>{{item.matnr}}</td></tr>
+						</table>
+						<view><text style="width: 400rpx;">鍝佸悕锛歿{item.maktx}}</text></view>
+						<view><text style="width: 400rpx;">瑙勬牸锛歿{item.specs}}</text></view>
+						<view><text style="width: 400rpx;">鍏ュ簱鍖哄煙锛歿{item.matType$}}</text></view>
+						<view><text style="width: 400rpx;">鎵瑰彿锛歿{item.batch}}</text></view>
+						<view><text style="width: 400rpx;">瀹㈡埛淇℃伅锛歿{item.owner}}</text></view>
 						<view>
-							<text style="width: 400rpx;">鏁伴噺锛歿{item.count}}</text>
+							<text style="width: 400rpx;">澶囨敞锛歿{item.memo}}</text>
+							<text style="width: 400rpx;margin-left: 100rpx">鏁伴噺锛歿{item.anfme}}</text>
 						</view>
+						<!-- <view>
+							<text style="width: 400rpx;">鏁伴噺锛歿{item.anfme}}</text>
+						</view> -->
 					</view>
 					<view class="data-list-right">
-						<label><uni-icons type="compose" size="20" color="#a5a5a5" @click="revise(index)"></uni-icons></label>
+						<label><uni-icons type="compose" size="20" color="#a5a5a5" @click="revise(item,index)"></uni-icons></label>
 						<label><uni-icons type="trash" size="25" color="#a5a5a5" @click="remove(item,index)"></uni-icons></label>
 					</view>
 				</view>
@@ -84,22 +119,30 @@
 				<button class="cu-btn bg-blue " @click="comb()">缁勬墭</button>
 			</label>
 		</view>
-		
 		<!-- 寮圭獥 -->
 		<!-- 淇敼鏁伴噺 -->
-		
-		<uni-popup ref="revise" background-color="#fff">
-			<view class="revise-box">
+		<uni-popup ref="revise" >
+			<view class="revise-box ">
 				<view class="revise-box-top">
 					<view class="color-block-blue"></view>
-					<text class="title">缁勬墭鏁伴噺</text>
+					<text class="title">淇敼</text>
 				</view>
-				<view class="text-box">
-					<text>纭缁勬墭鏁伴噺</text>
+				<view class="" style="position: relative;left: 50px;margin-bottom: 20px;">
+					<text style="display: inline-block;float: left;width: 50px;">鎵瑰彿锛�</text>
+					<input type="text" style="width: 100px;border-bottom: 1px solid #9e9e9e;" v-model="batch">
+				</view>
+				<view class="" style="position: relative;left: 50px;margin-bottom: 20px;">
+					<text style="display: inline-block;float: left;width: 50px;">澶囨敞锛�</text>
+					<input type="text" style="width: 100px;border-bottom: 1px solid #9e9e9e;" v-model="memo">
+				</view>
+				<view class="" style="position: relative;left: 50px;margin-bottom: 20px;">
+					<text style="display: inline-block;float: left;width: 50px;">瀹㈡埛锛�</text>
+					<input type="text" style="width: 100px;border-bottom: 1px solid #9e9e9e;" v-model="cstmr">
 				</view>
 				<view class="changeBox">
 					<view class="num-box">
-						<uni-number-box v-model="counts" :min="0" :max="99999" color="#747474" />
+						<text style="display: inline-block;float: left;width: 50px;">鏁伴噺锛�</text>
+						<uni-number-box :value="count" :max="9999999" color="#747474"  @change="changeValue"/>
 					</view> 
 				</view>
 				<view class="revise-box-buttom">
@@ -114,9 +157,11 @@
 
 <script>
 	import permision from "@/common/permission.js"
+import loginVue from "../login/login.vue";
 	export default {
 		data() {
 			return {
+				commonUrl:null,
 				barcode: '',
 				barcodeFocus:true,
 				focus:false,
@@ -128,13 +173,22 @@
 				result: '',
 				enableQty:'',
 				count:'',
-				counts:'',
 				minCount:0,
 				maxCount:'',
 				rowNum:'',
 				check:false,
 				checkText:'鍏ㄩ��',
 				checkedData:[],
+				batch:'',
+				memo: '',
+				cstmr: '',
+				ck1: false,
+				ck2: true,
+				frozen: 0,
+				owner: '',
+				matType: '',
+				matTypes: ['鍗曞搧鐗╂枡','楂橀娣峰悎鐗╂枡','浣庨娣峰悎鐗╂枡'],
+				matTypeId: 0,
 			}
 		},
 		onShow() {
@@ -148,8 +202,49 @@
 			this.baseIP = UIP;
 			const UPORT = uni.getStorageSync('UPORT');
 			this.basePORT = UPORT
+			const PROJ = uni.getStorageSync('UPROJ');
+			this.baseUrl = PROJ
+			this.getUrl()
 		},
 		methods: {
+			// 鑾峰彇url
+			getUrl() {
+				this.commonUrl = this.baseHttp + this.baseIP + ':' +this.basePORT + "/" +this.baseUrl
+			},
+			// 妫�鏌ユ潯鐮�
+			checkedBarcode() {
+				let that = this
+				uni.request({
+					url: that.commonUrl + '/mobile/barcode/auth',
+					data: {
+						barcode: that.barcode,
+					},
+					header: {
+						'token':uni.getStorageSync('token')
+					},
+					success(result) {
+						var res = result.data
+						if (res.code === 500) {
+							that.barcodeFocuss()
+							uni.showToast({title: res.msg, icon: "none", position: 'top'});
+						} else if(res.code === 200) {
+							that.barcodeInput()
+						}
+					}
+				})
+			},
+			// 鍐荤粨
+			isFrozen() {
+				var temp = this.ck1
+				this.ck1 = this.ck2
+				this.ck2 = temp
+				this.frozen = this.ck1
+				if (this.frozen == true) {
+					this.frozen = 1
+				} else {
+					this.frozen = 0
+				}
+			},
 			// barcode input 浜嬩欢
 			barcodeInput() {
 				// 涓嶈缃畾鏃跺櫒 浼氬嚭鐜版壂鍏ョ殑瀛楃涓蹭笉鍏�
@@ -160,22 +255,17 @@
 						this.barcodeFocuss()
 						return;
 					}
-					if (len == 8) {
-						this.focuss()
-					}
-				},100)
-				
+					this.focuss()
+				},200)
 			},
 			// 鎵樼洏鐮佹湁璇噸缃�
 			barcodeFocuss() {
-				// #ifdef APP
 				let that = this;
 				that.barcodeFocus = false;
 				setTimeout(()=>{
 					that.barcode = '';
 					that.barcodeFocus = true;
 				}, 100);
-				// #endif
 			},
 			// 鍟嗗搧鍏夋爣娓呯┖閲嶇疆
 			focuss() {
@@ -191,6 +281,9 @@
 			resst() {
 				this.matList = []
 				this.barcode = ''
+				this.matnr = ''
+				this.matType = ''
+				this.matTypeId = 0
 				this.barcodeFocuss()
 				uni.vibrateShort();
 			},
@@ -210,9 +303,9 @@
 					this.focus = true;
 				});
 			},
+			// 鍒楄〃鍒犻櫎鎸夐挳
 			remove(item,index) {
 				this.matList.splice(index,1)
-				this.checkList();
 				uni.vibrateShort();
 			},
 			comb() {
@@ -226,11 +319,28 @@
 					uni.showToast({title: '璇锋坊鍔犲晢鍝佸垪琛�', icon: "none", position: 'top'});
 					return;
 				}
+				for (var i = 0; i < that.matList.length; i++) {
+					if (that.matList[i].anfme == 0 || that.matList[i].anfme == '') {
+						uni.showToast({title: that.matList[i].matnr + '缁勬墭鏁伴噺涓嶈兘涓�0', icon: "none", position: 'top'});
+						return;
+					}
+				}
+				// 瀹㈡埛淇℃伅涓枃杞暟瀛�
+				for (let k in that.matList) {
+					for (let t in that.owner) {
+						if (that.matList[k].owner == that.owner[t].owner) {
+							that.matList[k].owner = that.owner[t].id
+						}
+					}
+				}
+				this.getMatTypeIn(this.matType)
 				uni.showLoading();
 				uni.request({
-				    url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + '/mobile/comb/auth',
+				    url: that.commonUrl + '/mobile/comb/auth',
 				    data: JSON.stringify({
+						frozen: that.frozen,
 						barcode: that.barcode,
+						matTypeIn: that.matTypeId,
 						combMats: that.matList
 					}),
 					method: 'POST',
@@ -241,6 +351,9 @@
 						uni.hideLoading();
 						var res = result.data
 						if (res.code === 200) {
+							const innerAudioContext = uni.createInnerAudioContext();
+							innerAudioContext.src = '/static/music/pakinOk.mp3';
+							innerAudioContext.play()
 							that.resst();
 							uni.showToast({
 								title: res.msg,
@@ -255,10 +368,32 @@
 								});
 							}, 1000);
 						} else {
+							for (let k in that.matList) {
+								for (let t in that.owner) {
+									if (that.matList[k].owner == that.owner[t].id) {
+										that.matList[k].owner = that.owner[t].owner
+									}
+								}
+							}
 							uni.showToast({title: res.msg, icon: "none",position: 'top'})
 						}
 					}
 				});
+			},
+			getMatTypeIn(type) {
+				switch (type) {
+					case '鍗曞搧鐗╂枡':
+						this.matTypeId = 1
+						break;
+					case '楂橀娣峰悎鐗╂枡':
+						this.matTypeId = 2
+						break;
+					case '浣庨娣峰悎鐗╂枡':
+						this.matTypeId = 3
+						break;
+					default:
+						this.matType = 0
+				}
 			},
 			selectMat() {
 				let that = this
@@ -274,7 +409,7 @@
 					},
 					success: function(res) {
 					    // 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹�   鍚戝彟澶栦竴涓〉闈紶閫掑�肩殑
-					    res.eventChannel.emit('acceptDataFromOpenerPage', {baseIP:that.baseIP, basePORT:that.basePORT })
+					    res.eventChannel.emit('commonUrl', {commonUrl:that.commonUrl })
 					},
 					
 				});
@@ -283,9 +418,9 @@
 			findMat() {
 				let that = this
 				uni.request({
-				    url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + '/matCode/auth',
+				    url: that.commonUrl + '/mat/auth',
 				    data: {
-						id:that.matnr
+						matnr:that.matnr
 				    },
 				    header: {
 						'token':uni.getStorageSync('token')
@@ -296,19 +431,33 @@
 						if (res.code === 200 && res.data) {
 							that.matData = res.data
 							that.matnr = ''
+							that.matData['batch'] = ''
 							uni.navigateTo({
 								url: "matQuery",
 								events: {
 								    // 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹�
 								    matList: function(data) {
-										that.matList.push(data.data)
+										that.checkMat(data.data)
+									},
+									owner: function(data) {
+										that.owner = data.data
 									},
 								},
 								success: function(res) {
 									// 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹�
 									res.eventChannel.emit('matData', { data: that.matData })
+									res.eventChannel.emit('url', { data: that.commonUrl })
 								},
 							});
+						} else if (res.code == 403) {
+							uni.showToast({title: res.msg, icon: "none", position: 'top'})
+							setTimeout(() => {
+								uni.reLaunch({
+									url: '../login/login'
+								});
+							}, 1000);
+						} else {
+							uni.showToast({title: res.msg, icon: "none",position: 'top'})
 						}
 						
 					}
@@ -316,8 +465,30 @@
 				
 			},
 		
+			// 娣诲姞鍟嗗搧
+			addMat(mat) {
+				this.matList.unshift(mat)
+			},
+			checkMat(mat) {
+				var len = this.matList.length
+				var add = true
+				var date = new Date()
+				var today = date.getFullYear() + '/' + (date.getMonth()+1) + '/' + date.getDate()
+				for (var i = 0; i < len; i++) {
+					if (mat.matnr == this.matList[i].matnr) {
+						this.matList[i].anfme += mat.anfme 
+						this.$forceUpdate() // 寮哄埗鍒锋柊
+						add = false
+					}
+				}
+				if (add) {
+					if(mat.batch === '' || mat.batch === null) {
+						// mat.batch = today
+					}
+					this.matList.unshift(mat)
+				}
+			},
 			change(e) {
-				console.log('褰撳墠妯″紡锛�' + e.type + ',鐘舵�侊細' + e.show);
 			},
 			toggle(type) {
 				this.type = type
@@ -325,39 +496,49 @@
 				this.$refs.goodsSearch.open(type)
 			},
 			checkbox: function (e) {
-				// 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();
+				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) {
+			revise(item,index) {
+				this.count = this.matList[index].anfme
+				this.batch = this.matList[index].batch
+				this.memo = this.matList[index].memo
+				this.cstmr = this.matList[index].cstmr
 				this.rowNum = index
-				this.$refs.revise.open()
-				
+				this.eject()
 			},
-			changeCount(e) {
-				
+			eject(type) {
+				this.type = type
+				// open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦� uni-popup 缁勪欢涓婄粦瀹� type灞炴��
+				this.$refs.revise.open(type)
 			},
-			// 纭缁勬墭鏁伴噺
+			changeValue(value) {
+				this.count = value
+			},
 			confirm() {
-				this.matList[this.rowNum].count = this.counts
-				this.$forceUpdate() // 寮哄埗鍒锋柊
+				this.matList[this.rowNum].anfme = this.count
+				this.matList[this.rowNum].batch = this.batch
+				this.matList[this.rowNum].memo = this.memo
+				this.matList[this.rowNum].cstmr = this.cstmr
 				this.$refs.revise.close()
+				this.$forceUpdate() // 寮哄埗鍒锋柊
 			},
 			// 鍒楄〃鍙嶉��
 			reChecked() { 
@@ -402,14 +583,6 @@
 				}
 				uni.vibrateShort();
 			},
-			// 妫�楠屽垪琛ㄩ暱搴� 绛変簬0 鏄剧ず鍏ㄩ��  
-			checkList() {
-				if (this.matList.length == 0) {
-					this.check = false
-					this.checkText = "鍏ㄩ��"
-					return;
-				}
-			}
 		}
 	}
 </script>
@@ -417,7 +590,29 @@
 <style>
 	/* @import "../../colorui/main.css";
 	@import "../../colorui/icon.css"; */
-	
+	.revise-box {
+		position: relative;
+		width: 500rpx;
+		height: 570rpx;
+		border-radius: 25px;
+		background-color: #fff;
+		border-radius: 20rpx;
+	}
+	.revise-box-top {
+		width: 400rpx;
+		height: 120rpx;
+		border-radius: 25px;
+	}
+	.changeBox {
+		width: 400rpx;
+		height: 100rpx;
+	}
+	.num-box {
+		margin-left: 100rpx;
+	}
+	.revise-box-buttom{
+		margin-left: 190rpx;
+	}
 	.pak-seach-box {
 		background-color: #FFFFFF;
 		margin: 15rpx 15rpx 0rpx 15rpx;
@@ -514,16 +709,16 @@
 	}
 	.data-list {
 		border-bottom: 1px solid #d8d8d8;
-		height: 180rpx;
+		min-height: 320rpx;
 		margin: 15rpx;
 		border-radius: 20rpx;
-		font-size: 12px;
+		display: flex;
 	}
 	.data-list:first-child {
 		margin-top: 20rpx;
 	}
 	.data-list:last-child {
-		margin-bottom: 170rpx;
+		margin-bottom: 180rpx;
 	}
 	/* .data-list-left {
 		display: inline-block;
@@ -534,11 +729,12 @@
 		line-height: 180rpx;
 	} */
 	.data-list-left {
-		display: inline-block;
-		float: left;
 		margin-left: 6%;
-		height: 180rpx;
+		min-height: 320rpx;
 		color: #676767;
+		width: 500rpx;
+		color: #676767;
+		max-width: 450rpx;
 	}
 	.matnr {
 		padding-top: 10rpx;
@@ -546,8 +742,8 @@
 	.data-list-right {
 		display: inline-block;
 		float: right;
-		height: 180rpx;
-		line-height: 180rpx;
+		min-height: 290rpx;
+		line-height: 290rpx;
 	}
 	/* display: inline-block;
 	float: right;
@@ -560,50 +756,4 @@
 		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