From caffaccc7c6f76503f8618368ef612146252ef8a Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期一, 15 四月 2024 22:13:14 +0800
Subject: [PATCH] #

---
 pages/phyz/mat/mat.vue                  |  233 +++++++++++++++++++++++++
 pages/phyz/mat/matSelected.vue          |  166 ++++++++++++++++++
 pages.json                              |   16 +
 pages/phyz/checkLocDetl/locDetlList.vue |   69 +++++++
 4 files changed, 481 insertions(+), 3 deletions(-)

diff --git a/pages.json b/pages.json
index b9b357e..c3e009e 100644
--- a/pages.json
+++ b/pages.json
@@ -638,6 +638,22 @@
         		"navigationBarTitleText" : "搴撳瓨鏄庣粏",
         		"enablePullDownRefresh" : false
         	}
+        },
+        {
+        	"path" : "pages/phyz/mat/mat",
+        	"style" : 
+        	{
+        		"navigationBarTitleText" : "妫�绱㈢墿鏂�",
+        		"enablePullDownRefresh" : false
+        	}
+        },
+        {
+        	"path" : "pages/phyz/mat/matSelected",
+        	"style" : 
+        	{
+        		"navigationBarTitleText" : "鍟嗗搧璇︽儏",
+        		"enablePullDownRefresh" : false
+        	}
         }
     ],
 	"globalStyle": {
diff --git a/pages/phyz/checkLocDetl/locDetlList.vue b/pages/phyz/checkLocDetl/locDetlList.vue
index a9190bc..a1d5d8b 100644
--- a/pages/phyz/checkLocDetl/locDetlList.vue
+++ b/pages/phyz/checkLocDetl/locDetlList.vue
@@ -12,9 +12,10 @@
 			<view class="list-right" @click="goToLocDetl(locDetl)">
 				<uni-icons type="right" size="25"  color="#fff"></uni-icons>
 			</view>
-			
 		</view>
-		
+		<view style="height: 100rpx;display: flex;align-items: center;justify-content: center;" @click="add()">
+			<uni-icons type="folder-add" size="25"  color="#000" style="padding-right: 20rpx;"></uni-icons> 娣诲姞鐗╂枡
+		</view>
 		<!-- 搴曢儴鎿嶄綔鎸夐挳 -->
 		<view class="buttom">
 			<button size="mini" type="primary" @click="agvStart('warn')">娣诲姞鐗╂枡</button>
@@ -45,7 +46,69 @@
 			})
 		},
 		methods: {
-			
+			add() {
+				let _this = this
+				uni.navigateTo({
+					url: "../mat/mat",
+					events: {
+						// 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹�  鍙﹀涓�涓〉闈紶杩囨潵鐨�
+						acceptDataFromOpenedPage: function(data) {
+							console.log(data.data);
+							setTimeout(()=> {
+								_this.findMat(data.data)
+							},100)
+						}
+					},
+				});
+			},
+			findMat(mat) {
+				let _this = this
+				uni.navigateTo({
+					url: "../mat/matSelected",
+					success: function(res) {
+						// 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹�   鍚戝彟澶栦竴涓〉闈紶閫掑�肩殑
+						res.eventChannel.emit('item', {
+							item: mat
+						})
+					},
+					events: {
+						matList: function(data) {
+							_this.checkMat(data.data)
+						},
+					},
+				});
+			},
+			checkMat(mat) {
+				var len = this.dataList.length
+				var add = true ,sameItem = false
+				for (var i = 0; i < len; i++) {
+					if (mat.matnr == this.dataList[i].matnr) {
+						for (var j = 0; j < len; j++) {
+							if (mat.batch == this.dataList[j].batch) {
+								sameItem = true
+							}
+						}
+						// 鐩稿悓鐗╂枡 涓嶅悓鎵瑰彿  鏂板姞鍒楄〃
+						if (mat.batch != this.dataList[i].batch) {
+							this.$forceUpdate() // 寮哄埗鍒锋柊
+							if (sameItem) {
+								add = false
+							} else {
+								add = true
+							}
+							
+						} else {
+							// 鐩稿悓鐗╂枡鐩稿悓鎵瑰彿 鏁伴噺绱姞
+							this.dataList[i].anfme += mat.anfme
+							this.$forceUpdate() // 寮哄埗鍒锋柊
+							add = false
+						}
+					}
+				}
+				if (add) {
+					this.dataList.unshift(mat)
+				}
+			}
 		}
 	}
 </script>
diff --git a/pages/phyz/mat/mat.vue b/pages/phyz/mat/mat.vue
new file mode 100644
index 0000000..9aca1f4
--- /dev/null
+++ b/pages/phyz/mat/mat.vue
@@ -0,0 +1,233 @@
+<template>
+	<view>
+		<!-- 鎼滅储妗� -->
+		<view class="search-bar">
+			<uni-search-bar v-model="condition" placeholder=" 鎵爜 / 杈撳叆" bgColor="#EEEEEE" @confirm="search" />
+		</view>
+		<scroll-view>
+			<view class="tag-list" v-for="(item,i) in tagList" :key="i" @click="showTag(item.id)">
+				<view class="tag">
+					<view style="display: flex;">
+						<view class="wms-tag" :style="baColor" >鍒嗙被</view>
+					</view>
+				</view>
+				<view class="tag-item">{{item.name}}</view>
+			</view>
+		</scroll-view>
+		<view>
+			<view class="tag-list" v-for="(item,i) in matList" :key="i" @click="findBySelect(item)">
+				<view class="tag">
+					<view style="display: flex;">
+						<view class="wms-tag" :style="baColor" >鍟嗗搧</view>
+					</view>
+				</view>
+				<view class="tag-item">鍟嗗搧缂栧彿锛� {{item.matnr}}</view>
+				<view class="tag-item">鍟嗗搧鍚嶇О锛� {{item.maktx  ? item.maktx : '--'}}</view>
+				<view class="tag-item">鍟嗗搧瑙勬牸锛� {{item.specs  ? item.specs : '--'}}</view>
+			</view>
+		</view>
+		<uni-load-more v-show="matList.length != 0" :status="status" :icon-size="16" :content-text="contentText" />
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				tagList: [],
+				matList: [],
+				condition: '',
+				reload: false,
+				curr:1,
+				tag: '鍒嗙被',
+				baColor: "background-color: #0081ff;",
+				desc: '鍟嗗搧缂栧彿:',
+				baseUrl: '',
+				token: '',
+				status: 'more',
+				contentText: {
+					contentdown: '涓婃媺鍔犺浇鏇村',
+					contentrefresh: '鍔犺浇涓�',
+					contentnomore: '娌℃湁鏇村'
+				},
+				// 褰撳墠tagId
+				tagIdNow: 1
+			}
+		},
+		onReachBottom() {
+			this.status = 'more';
+			if (this.tagList == null) {
+				this.showMat(this.tagIdNow);
+			}
+		},
+		onShow() {
+			this.baseUrl = uni.getStorageSync('baseUrl');
+			this.token = uni.getStorageSync('token');
+			let that = this
+			// const eventChannel = this.$scope.eventChannel; // 鍏煎APP-NVUE
+			const eventChannel = this.getOpenerEventChannel();
+			
+			// 鐩戝惉acceptDataFromOpenerPage浜嬩欢锛岃幏鍙栦笂涓�椤甸潰閫氳繃eventChannel浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹�
+			eventChannel.on('commonUrl', function(data) {
+				that.commonUrl = data.commonUrl
+			})
+		},
+		methods: {
+			search() {
+				let that = this
+				that.tagList = []
+				that.matList = []
+				uni.request({
+				    url: that.baseUrl + '/mat/search/pda/auth',
+				    data: {
+						condition: that.condition
+				    },
+					method:"GET",
+				    header: {
+						'token':uni.getStorageSync('token'),
+				    },
+					success(result) {
+						console.log(result);
+						var res = result.data
+						if (res.code === 200 ) {
+							that.matList = res.data
+						} 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'})
+						}
+					}
+				});
+			},
+			showTag(parentId) {
+				let that = this
+				uni.request({
+				    url: that.baseUrl + '/tag/list/pda/auth',
+					header: {
+						'token':uni.getStorageSync('token'),
+					},
+				    data: {
+						limit: 100000,
+						parentId: parentId
+				    },
+					header: {
+						'token':uni.getStorageSync('token'),
+					},
+					success(result) {
+						that.tagList = null
+						that.matList = []
+						var res = result.data
+						if (res.code === 200) {
+							if (res.data != null && res.data.length > 0) {
+								that.tagList = res.data
+							} else {
+								that.tagList = []
+								that.showMat(parentId)
+							}
+						} 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'})
+						}
+					}
+				});
+			},
+			showMat(tagId) {
+				let that = this
+				that.tagIdNow = tagId
+				if (tagId == null || tagId == '' || tagId == undefined) {
+					return;
+				}
+				uni.showLoading({})
+				uni.request({
+				    url: that.baseUrl + '/mat/list/pda/page/auth',
+				    data: {
+						curr:that.curr,
+						limit: 20,
+						tagId: tagId
+				    },
+					method:"GET",
+				    header: {
+						'token':uni.getStorageSync('token'),
+				    },
+					success(result) {
+						that.tagList = null
+						var res = result.data
+						if (res.code === 200) {
+							uni.hideLoading()
+							if (res.data.records != null && res.data.records.length > 0) {
+								let list = res.data.records
+								that.matList = that.reload ? list : that.matList.concat(list);
+								that.curr = that.curr + 1
+							}
+							if (res.data.records.length == 0) {
+								that.status = 'noMore'
+							}
+							that.baColor = "background-color: #1cbbb4;"
+						} else if (res.code === 403 ) {
+							uni.hideLoading()
+							uni.showToast({title: res.msg, icon: "none", position: 'top'})
+							setTimeout(() => {
+								uni.reLaunch({
+									url: '../login/login'
+								});
+							}, 1000);
+						} else {
+							uni.hideLoading()
+							uni.showToast({title: res.msg, icon: "none",position: 'top'})
+						}
+						
+					}
+				});
+			},
+			findBySelect(mat) {
+				this.getOpenerEventChannel().emit('acceptDataFromOpenedPage', {data: mat});
+				uni.navigateBack({
+					
+				})
+			}
+		}
+	}
+</script>
+
+<style>
+	@import url('../../../static/css/wms.css/wms.css');
+	.tag-list {
+		width: 94%;
+		min-height: 160rpx;
+		margin: 10px auto;
+		background-color: #FFF;
+		border-radius: 5px;
+		box-shadow: 0 5upx 20upx rgba(0, 0, 0, 0.2);
+	}
+	.tag {
+		display: flex;
+		flex-direction: column;
+		min-height: 80rpx;
+		border-bottom: 1px solid #e2e2e2;
+	}
+	.wms-tag {
+		min-width: 60rpx;
+		margin-left: 50rpx;
+		margin-top: 30rpx;
+		color: #FFF;
+		font-size: 14px;
+		padding: 4rpx 12rpx;
+	}
+	.tag-item {
+		width: 100%;
+		min-height: 60rpx;
+		line-height: 2;
+		padding-left: 50rpx;
+		color: #606266;
+		font-size: 14px;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/phyz/mat/matSelected.vue b/pages/phyz/mat/matSelected.vue
new file mode 100644
index 0000000..5ced9f1
--- /dev/null
+++ b/pages/phyz/mat/matSelected.vue
@@ -0,0 +1,166 @@
+<template>
+	<view>
+		<view class="form">
+			<view class="form-item">
+				<view class="form-item-desc"><text>鍟嗗搧缂栫爜</text></view>
+				<view class="form-item-content"><text>{{mat.matnr}}</text></view>
+			</view>
+			<view class="form-item">
+				<view class="form-item-desc"><text>鍟嗗搧鍚嶇О</text></view>
+				<view class="form-item-content"><text>{{mat.maktx}}</text></view>
+			</view>
+			<view class="form-item">
+				<view class="form-item-desc"><text>瑙勬牸</text></view>
+				<view class="form-item-content"><text>{{mat.specs}}</text></view>
+			</view>
+			<view class="form-item">
+				<view class="form-item-desc"><text>閿�鍞崟鍙�</text></view>
+				<view class="form-item-content">
+					<view class="form-input">
+						<input type="text" v-model="mat.batch">
+					</view>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="form-item-desc"><text>璁㈠崟鍙�</text></view>
+				<view class="form-item-content">
+					<view class="form-input">
+						<input type="text" v-model="mat.batch">
+					</view>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="form-item-desc"><text>鏁伴噺</text></view>
+				<view class="form-item-content">
+					<uni-number-box :value="mat.anfme" :max="99999999" :step='1' color="#747474" @change="changeValue" />
+				</view>
+			</view>
+		</view>
+		<!-- 搴曢儴鎿嶄綔鎸夐挳 -->
+		<view class="buttom">
+			<button size="mini" type="primary" @click="back()">鎻愬彇</button>
+		</view>
+		
+		<view class="keyboard" :class="hidebg" mode="aspectFit" @click="hideKeyboard">
+			<image src="@/static/img/keyboard1.png" style="height: 70%;width: 70%;"></image>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				mat: {
+					matnr: null,
+					maktx: null,
+					specs: null,
+					batch: null,
+					anfme: 0,
+				},
+				baseIP:'',
+				basePORT:'',
+				hide: true,
+				hidebg: 'kb-bgtr'
+			}
+		},
+		onLoad(option) {
+			let that = this
+			// #ifdef APP-NVUE
+			const eventChannel = this.$scope.eventChannel; // 鍏煎APP-NVUE
+			// #endif
+			// #ifndef APP-NVUE
+			const eventChannel = this.getOpenerEventChannel();
+			// #endif
+			
+			// 鐩戝惉acceptDataFromOpenerPage浜嬩欢锛岃幏鍙栦笂涓�椤甸潰閫氳繃eventChannel浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹�
+			eventChannel.on('item', function(data) {
+				console.log(data);
+				that.mat = data.item
+				that.mat.anfme = 0
+			})
+			// #ifdef APP
+			setInterval(()=>{
+				if (this.hide) {
+					uni.hideKeyboard()
+				} else {
+					
+				}
+			},20)
+			// #endif
+			
+		},
+		onBackPress() {
+			this.hide = false
+		},
+		methods: {
+			hideKeyboard() {
+				this.hide = this.hide ? false : true
+				if (this.hide) {
+					this.hidebg = 'kb-bgtr'
+				} else {
+					this.hidebg = 'kb-bgfa'
+				}
+			},
+			blur() {
+				
+			},
+			focus() {
+				
+			},
+			changeValue(value) {
+				this.mat.anfme = value
+			},
+			back() {
+				if (this.mat.anfme === 0) {
+					uni.showToast({title: '璇疯緭鍏ユ暟閲�', icon: "none", position: 'top'});
+					return;
+				}
+				this.getOpenerEventChannel().emit('matList', {data: this.mat});
+				uni.navigateBack({
+				})
+			}
+		}
+	}
+</script>
+
+<style>
+	@import url('../../../static/css/wms.css/wms.css');
+	.form {
+		min-height: 80rpx;
+		background-color: #FFF;
+		margin-top: 10px;
+		color: #606266;
+		box-shadow: 0px 0px 50px 0px rgba(0,0,0,0.2) ;
+	}
+	.form-item {
+		height: 100rpx;
+		line-height: 100rpx;
+		border-bottom: 1px solid #DCDFE6;
+		margin-left: 40rpx;
+		display: flex;
+		align-items: center;
+	}
+	.form-item-desc {
+		width: 30%;
+	}
+	.form-item-content {
+		width: 60%;
+	}
+	
+	.form-item:last-child {
+		border: none;
+	}
+	.form-input {
+		display: flex;
+		align-items: center;
+		width: 50vw;
+		height: 50rpx;
+		padding: 2px 5px;
+		border-bottom: 1px solid #E4E7ED;
+		border-radius: 5rpx;
+	}
+	.form-input input{
+		color: #606266;
+	}
+</style>
\ No newline at end of file

--
Gitblit v1.9.1