From 08a7cd64ef63ff7b0718ed0b27a746075b9e6222 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期五, 06 二月 2026 13:01:45 +0800
Subject: [PATCH] 组托优化

---
 pages/listing/matnrPalletising.vue |   67 +++++++++++++++++++++++++++++++--
 pages/login/index.vue              |    2 
 2 files changed, 63 insertions(+), 6 deletions(-)

diff --git a/pages/listing/matnrPalletising.vue b/pages/listing/matnrPalletising.vue
index 7148980..0a72781 100644
--- a/pages/listing/matnrPalletising.vue
+++ b/pages/listing/matnrPalletising.vue
@@ -256,8 +256,9 @@
 						data[i].selected = true;
 					}
 					that.showBackData(data)
-					// 鍔犺浇鐗╂枡鎴愬姛鍚庯紝娓呯┖鐗╂枡缂栫爜杈撳叆妗�
-					that.matnrCode = '';
+					// 鍔犺浇鐗╂枡鎴愬姛鍚庯紝涓嶆竻绌虹墿鏂欑紪鐮佽緭鍏ユ锛屾柟渚胯繛缁壂鎻忎笉鍚岀墿鏂�
+					// 鐢ㄦ埛鍙互閫氳繃鎵嬪姩娓呯┖鎴栫偣鍑绘竻绌烘寜閽潵娓呯┖杈撳叆妗�
+					// 閲嶅鎵弿鍚屼竴鐗╂枡浼氶�氳繃showBackData涓殑鍘婚噸閫昏緫鑷姩杩囨护
 				} else {
 					uni.showToast({
 						title: msg || "鏌ヨ澶辫触",
@@ -303,14 +304,70 @@
 				}
 			},
 			showBackData(data) {
-				// 杩藉姞鏂扮墿鏂欏埌鍒楄〃锛屽彧鏍规嵁id鍘婚噸锛屼笉闄愬埗璐ㄦ缁撴灉
+				// 杩藉姞鏂扮墿鏂欏埌鍒楄〃锛屾牴鎹墿鏂欑紪鐮佸拰璺熻釜鐮佺粍鍚堝幓閲�
+				let addedCount = 0;
+				let skippedCount = 0;
 				data.forEach(item => {
-					// 妫�鏌ユ槸鍚﹀凡瀛樺湪鐩稿悓id鐨勭墿鏂欙紝濡傛灉涓嶅瓨鍦ㄥ垯杩藉姞
-					const exists = this.list.some(existingItem => existingItem.id === item.id);
+					// 妫�鏌ユ槸鍚﹀凡瀛樺湪鐩稿悓鐨勭墿鏂�
+					const exists = this.list.some(existingItem => {
+						// 浼樺厛妫�鏌ョ墿鏂欑紪鐮侊紝濡傛灉鐗╂枡缂栫爜涓嶅悓锛岃涓烘槸涓嶅悓鐗╂枡锛屽厑璁告坊鍔�
+						if (existingItem.matnrCode && item.matnrCode) {
+							// 涓や釜閮芥湁鐗╂枡缂栫爜锛屽鏋滀笉鍚屽垯鍏佽娣诲姞
+							if (existingItem.matnrCode !== item.matnrCode) {
+								return false; // 鐗╂枡缂栫爜涓嶅悓锛屼笉瀛樺湪锛屽厑璁告坊鍔�
+							}
+							// 鐗╂枡缂栫爜鐩稿悓锛岀户缁鏌ュ叾浠栧瓧娈�
+						} else if (existingItem.matnrCode || item.matnrCode) {
+							// 涓�涓湁涓�涓病鏈夌墿鏂欑紪鐮侊紝璁や负鏄笉鍚岀墿鏂欙紝鍏佽娣诲姞
+							return false;
+						}
+						// 涓や釜閮芥病鏈夌墿鏂欑紪鐮侊紝缁х画妫�鏌ュ叾浠栧瓧娈�
+						// 濡傛灉涓や釜閮芥湁id涓旂浉鍚岋紝璁や负鏄悓涓�鐗╂枡
+						if (existingItem.id && item.id && existingItem.id === item.id) {
+							return true;
+						}
+						// 鐗╂枡缂栫爜鐩稿悓锛堟垨閮戒负绌猴級锛屾鏌ヨ窡韪爜锛堝鏋滄湁璺熻釜鐮侊紝璺熻釜鐮佷笉鍚屽垯鍏佽娣诲姞锛�
+						if (existingItem.trackCode && item.trackCode) {
+							// 閮芥湁璺熻釜鐮侊紝璺熻釜鐮佺浉鍚屽垯璁や负鏄悓涓�鐗╂枡
+							return existingItem.trackCode === item.trackCode;
+						}
+						// 鐗╂枡缂栫爜鐩稿悓锛屾鏌SN鍗曞彿锛堝鏋滄湁ASN鍗曞彿锛孉SN鍗曞彿涓嶅悓鍒欏厑璁告坊鍔狅級
+						if (existingItem.asnCode && item.asnCode) {
+							// 閮芥湁ASN鍗曞彿锛孉SN鍗曞彿鐩稿悓鍒欒涓烘槸鍚屼竴鐗╂枡
+							return existingItem.asnCode === item.asnCode;
+						}
+						// 鐗╂枡缂栫爜鐩稿悓锛屼絾閮芥病鏈夎窡韪爜鍜孉SN鍗曞彿锛堥兘鏄粠鐗╂枡淇℃伅琛ㄨ幏鍙栫殑锛夛紝璁や负鏄悓涓�鐗╂枡
+						if (existingItem.matnrCode === item.matnrCode &&
+						    !existingItem.trackCode && !item.trackCode && 
+						    !existingItem.asnCode && !item.asnCode) {
+							return true;
+						}
+						// 鐗╂枡缂栫爜鐩稿悓锛屼絾涓�涓病鏈夎窡韪爜/ASN锛屽彟涓�涓湁锛岃涓烘槸涓嶅悓鐗╂枡锛屽厑璁告坊鍔�
+						// 鎴栬�呬袱涓兘娌℃湁鐗╂枡缂栫爜涓旀病鏈夊叾浠栧敮涓�鏍囪瘑锛屼篃鍏佽娣诲姞锛堝彲鑳芥槸涓嶅悓鐗╂枡锛�
+						return false;
+					});
 					if (!exists) {
 						this.list.push(item);
+						addedCount++;
+					} else {
+						skippedCount++;
 					}
 				});
+				// 濡傛灉鎵�鏈夌墿鏂欓兘宸插瓨鍦紝鎻愮ず鐢ㄦ埛
+				if (addedCount === 0 && skippedCount > 0) {
+					uni.showToast({
+						title: "璇ョ墿鏂欏凡娣诲姞锛岃鎵弿鍏朵粬鐗╂枡",
+						icon: "none",
+						position: 'top',
+						duration: 1500
+					});
+				} else if (addedCount > 0) {
+					// 鎴愬姛娣诲姞鐗╂枡鍚庯紝寤惰繜娓呯┖鐗╂枡缂栫爜杈撳叆妗嗭紝鏂逛究杩炵画鎵弿涓嶅悓鐗╂枡
+					// 寤惰繜300ms娓呯┖锛岃鐢ㄦ埛鍙互蹇�熻繛缁壂鎻忎笉鍚岀殑鐗╂枡
+					setTimeout(() => {
+						this.matnrCode = '';
+					}, 300);
+				}
 			},
 			showMsg(msg) {
 				setTimeout(function() {
diff --git a/pages/login/index.vue b/pages/login/index.vue
index 2929bb8..95fe23c 100644
--- a/pages/login/index.vue
+++ b/pages/login/index.vue
@@ -12,7 +12,7 @@
 		</view>
 		<view class="logoView">
 			<image src="/static/img/newLogo.png" mode="aspectFit">
-			</image>
+			</image>	
 		</view>
 		<view class="bottomView">
 			<view class="itemView" style="margin-bottom: 40px;">

--
Gitblit v1.9.1