From f26f29d84e0a68831a6af14dab3eec5500496d2e Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期三, 28 五月 2025 16:48:52 +0800
Subject: [PATCH] 初始化项目

---
 uview-ui/libs/function/getParent.js |   47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 47 insertions(+), 0 deletions(-)

diff --git a/uview-ui/libs/function/getParent.js b/uview-ui/libs/function/getParent.js
new file mode 100644
index 0000000..9cb45c4
--- /dev/null
+++ b/uview-ui/libs/function/getParent.js
@@ -0,0 +1,47 @@
+// 鑾峰彇鐖剁粍浠剁殑鍙傛暟锛屽洜涓烘敮浠樺疂灏忕▼搴忎笉鏀寔provide/inject鐨勫啓娉�
+// this.$parent鍦ㄩ潪H5涓紝鍙互鍑嗙‘鑾峰彇鍒扮埗缁勪欢锛屼絾鏄湪H5涓紝闇�瑕佸娆his.$parent.$parent.xxx
+export default function getParent(name, keys) {
+	let parent = this.$parent;
+	// 閫氳繃while鍘嗛亶锛岃繖閲屼富瑕佹槸涓轰簡H5闇�瑕佸灞傝В鏋愮殑闂
+	while (parent) {
+		// 鐖剁粍浠�
+		if (parent.$options.name !== name) {
+			// 濡傛灉缁勪欢鐨刵ame涓嶇浉绛夛紝缁х画涓婁竴绾у鎵�
+			parent = parent.$parent;
+		} else {
+			let data = {};
+			// 鍒ゆ柇keys鏄惁鏁扮粍锛屽鏋滀紶杩囨潵鐨勬槸涓�涓暟缁勶紝閭d箞鐩存帴浣跨敤鏁扮粍鍏冪礌鍊煎綋鍋氶敭鍊煎幓鐖剁粍浠跺鎵�
+			if(Array.isArray(keys)) {
+				keys.map(val => {
+					data[val] = parent[val] ? parent[val] : '';
+				})
+			} else {
+				// 鍘嗛亶浼犺繃鏉ョ殑瀵硅薄鍙傛暟
+				for(let i in keys) {
+					// 濡傛灉瀛愮粍浠舵湁姝ゅ�煎垯鐢紝鏃犳鍊煎垯鐢ㄧ埗缁勪欢鐨勫��
+					// 鍒ゆ柇鏄惁绌烘暟缁勶紝濡傛灉鏄紝鍒欑敤鐖剁粍浠剁殑鍊硷紝鍚﹀垯鐢ㄥ瓙缁勪欢鐨勫��
+					if(Array.isArray(keys[i])) {
+						if(keys[i].length) {
+							data[i] = keys[i];
+						} else {
+							data[i] = parent[i];
+						}
+					} else if(keys[i].constructor === Object) {
+						// 鍒ゆ柇鏄惁瀵硅薄锛屽鏋滄槸瀵硅薄锛屼笖鏈夊睘鎬э紝閭d箞浣跨敤瀛愮粍浠剁殑鍊硷紝鍚﹀垯浣跨敤鐖剁粍浠剁殑鍊�
+						if(Object.keys(keys[i]).length) {
+							data[i] = keys[i];
+						} else {
+							data[i] = parent[i];
+						}
+					} else {
+						// 鍙瀛愮粍浠舵湁浼犲�硷紝鍗充娇鏄痜alse鍊硷紝涔熸槸鈥滀紶鍊尖�濅簡锛屼篃闇�瑕佽鐩栫埗缁勪欢鐨勫悓鍚嶅弬鏁�
+						data[i] = (keys[i] || keys[i] === false) ? keys[i] : parent[i];
+					}
+				}
+			}
+			return data;
+		}
+	}
+
+	return {};
+}
\ No newline at end of file

--
Gitblit v1.9.3