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