From 16d50e59a415f5001d96f580efef75f8ec3f967a Mon Sep 17 00:00:00 2001 From: shenjunjian <40288193@qq.com> Date: Thu, 13 Mar 2025 23:39:03 -0700 Subject: [PATCH 1/2] fix(popper): fix popper doms in custom element, cant get zindex --- packages/renderless/src/common/deps/popper.ts | 4 ++++ packages/renderless/src/common/deps/vue-popper.ts | 5 +++++ packages/renderless/src/grid/utils/dom.ts | 8 ++++++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/renderless/src/common/deps/popper.ts b/packages/renderless/src/common/deps/popper.ts index b8b0504e41..8b59fd3209 100644 --- a/packages/renderless/src/common/deps/popper.ts +++ b/packages/renderless/src/common/deps/popper.ts @@ -77,6 +77,10 @@ const isFixed = (el: HTMLElement) => { return true } + // 处理遇到 shadowRoot的情况 + if (el.host) { + el = el.host + } return el.parentNode ? isFixed(el.parentNode as HTMLElement) : false } diff --git a/packages/renderless/src/common/deps/vue-popper.ts b/packages/renderless/src/common/deps/vue-popper.ts index 409d7bb99c..a2ebc571f3 100644 --- a/packages/renderless/src/common/deps/vue-popper.ts +++ b/packages/renderless/src/common/deps/vue-popper.ts @@ -59,6 +59,11 @@ const getReferMaxZIndex = (reference) => { do { reference = reference.parentNode + // 处理遇到shadowRoot的情况 + if (reference && reference instanceof ShadowRoot && reference.host) { + reference = reference.host + } + if (reference) { z = getZIndex(reference) } else { diff --git a/packages/renderless/src/grid/utils/dom.ts b/packages/renderless/src/grid/utils/dom.ts index 8cbf00d328..03fe39574f 100644 --- a/packages/renderless/src/grid/utils/dom.ts +++ b/packages/renderless/src/grid/utils/dom.ts @@ -180,11 +180,15 @@ export const colToVisible = ($table, column, move) => { } export const hasDataTag = (el, value) => { - // el可能为shadow-root,shadow-root没有getAttribute方法 - if (!el || !value || !el.getAttribute) { + if (!el || !value) { return false } + // 处理遇到 shadowRoot的情况 + if (el.host) { + el = el.host + } + return (' ' + el.getAttribute('data-tag') + ' ').includes(' ' + value + ' ') } From 83b710b07b670e6889835c92bd86a6be3aa3daf5 Mon Sep 17 00:00:00 2001 From: shenjunjian <40288193@qq.com> Date: Sun, 16 Mar 2025 19:07:58 -0700 Subject: [PATCH 2/2] fix(utils): update packages's versions --- packages/renderless/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/renderless/package.json b/packages/renderless/package.json index 095593d64a..2eca08a542 100644 --- a/packages/renderless/package.json +++ b/packages/renderless/package.json @@ -1,6 +1,6 @@ { "name": "@opentiny/vue-renderless", - "version": "3.21.1", + "version": "3.21.2", "private": true, "description": "An enterprise-class UI component library, support both Vue.js 2 and Vue.js 3, as well as PC and mobile.", "author": "OpenTiny Team", @@ -36,8 +36,8 @@ "release": "esno ./scripts/postbuild.ts && shx cp README.md dist" }, "dependencies": { - "color": "4.2.3", - "@opentiny/utils": "workspace:~" + "@opentiny/utils": "workspace:~", + "color": "4.2.3" }, "devDependencies": { "esno": "^4.7.0",