From 2a0b162d6deac3acb5f27f98f3a3becfc724c264 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Mon, 14 Apr 2025 15:04:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DTAB=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E7=BB=84=E5=90=88=E5=8F=96=E6=B6=88=E5=B9=B6?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=86=85=E5=AE=B9=E5=90=8E=EF=BC=8C=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=BC=82=E5=B8=B8=E9=97=AE=E9=A2=98=20#15532?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/store/modules/data-visualization/compose.ts | 4 +++- core/core-frontend/src/utils/decomposeComponent.ts | 13 +++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/core/core-frontend/src/store/modules/data-visualization/compose.ts b/core/core-frontend/src/store/modules/data-visualization/compose.ts index 09b75a9348..e3780f243c 100644 --- a/core/core-frontend/src/store/modules/data-visualization/compose.ts +++ b/core/core-frontend/src/store/modules/data-visualization/compose.ts @@ -230,6 +230,7 @@ export const composeStore = defineStore('compose', { const editorRect = editor.getBoundingClientRect() const isInTab = isTabCanvas(canvasId) let decomposeComponentData = componentData.value + let parentGroupStyle = null if (isInTab) { const pathMap = {} componentData.value.forEach(componentItem => { @@ -242,10 +243,11 @@ export const composeStore = defineStore('compose', { if (pComponentTarget && pComponentTarget.length > 0) { decomposeComponentData = pComponentTarget[0].componentData } + parentGroupStyle = curComponent.value.groupStyle } dvMainStore.deleteComponentById(curComponent.value.id, decomposeComponentData) components.forEach(component => { - decomposeComponent(component, editorRect, parentStyle, canvasId) + decomposeComponent(component, editorRect, parentStyle, canvasId, parentGroupStyle) dvMainStore.addComponent({ component: component, index: undefined, diff --git a/core/core-frontend/src/utils/decomposeComponent.ts b/core/core-frontend/src/utils/decomposeComponent.ts index bca1917bb0..aab2a8800e 100644 --- a/core/core-frontend/src/utils/decomposeComponent.ts +++ b/core/core-frontend/src/utils/decomposeComponent.ts @@ -3,11 +3,20 @@ export default function decomposeComponent( component, editorRect, parentStyle, - canvasId = 'canvas-main' + canvasId = 'canvas-main', + parentGroupStyle? ) { // 计算出元素新的 top left 坐标 component.style.left = component.style.left + parentStyle.left component.style.top = component.style.top + parentStyle.top - component.groupStyle = {} + if (parentGroupStyle && component.groupStyle) { + const originLeftScale = component.groupStyle['left'] / component.groupStyle['width'] + const originTopScale = component.groupStyle['top'] / component.groupStyle['height'] + component.groupStyle['width'] = component.groupStyle['width'] * parentGroupStyle['width'] + component.groupStyle['height'] = component.groupStyle['height'] * parentGroupStyle['height'] + component.groupStyle['left'] = + parentStyle.left + component.groupStyle['width'] * originLeftScale + component.groupStyle['top'] = parentStyle.top + component.groupStyle['height'] * originTopScale + } component.canvasId = canvasId }