From c925e9935a39fc36a4760e86a29c08f43a16c6a0 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Mon, 19 Aug 2024 15:56:47 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E5=A4=A7=E5=B1=8F):=20?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=9B=A0=E7=BC=A9=E6=94=BE=E5=AF=BC=E8=87=B4?= =?UTF-8?q?Tab=E5=86=85=E5=A4=96=E7=94=BB=E5=B8=83=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E7=9A=84=E7=BB=84=E4=BB=B6=E9=A2=84=E7=BD=AE?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=E7=9A=84=E5=81=8F=E7=A7=BB=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data-visualization/canvas/Shape.vue | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/core/core-frontend/src/components/data-visualization/canvas/Shape.vue b/core/core-frontend/src/components/data-visualization/canvas/Shape.vue index c45ecc4b78..6d41a1aa60 100644 --- a/core/core-frontend/src/components/data-visualization/canvas/Shape.vue +++ b/core/core-frontend/src/components/data-visualization/canvas/Shape.vue @@ -115,7 +115,7 @@ import ComponentEditBar from '@/components/visualization/ComponentEditBar.vue' import { useEmitt } from '@/hooks/web/useEmitt' import ComposeShow from '@/components/data-visualization/canvas/ComposeShow.vue' import { groupSizeStyleAdaptor, groupStyleRevert } from '@/utils/style' -import { isGroupCanvas, isMainCanvas, isTabCanvas } from '@/utils/canvasUtils' +import { isDashboard, isGroupCanvas, isMainCanvas, isTabCanvas } from '@/utils/canvasUtils' import Board from '@/components/de-board/Board.vue' import { activeWatermarkCheckUser, removeActiveWatermark } from '@/components/watermark/watermark' const dvMainStore = dvMainStoreWithOut() @@ -489,6 +489,10 @@ const handleMouseDownOnShape = e => { const pos = { ...defaultStyle.value } const startY = e.clientY const startX = e.clientX + + const offsetY = e.offsetY + const offsetX = e.offsetX + // 如果直接修改属性,值的类型会变为字符串,所以要转为数值型 const startTop = Number(pos['top']) const startLeft = Number(pos['left']) @@ -502,6 +506,10 @@ const handleMouseDownOnShape = e => { //当前组件宽高 定位 const componentWidth = shapeInnerRef.value.offsetWidth const componentHeight = shapeInnerRef.value.offsetHeight + let outerTabDom = isTabCanvas(canvasId.value) + ? document.getElementById('shape-id-' + canvasId.value.split('--')[0]) + : null + const curDom = document.getElementById(domId.value) const move = moveEvent => { hasMove = true const curX = moveEvent.clientX @@ -511,6 +519,7 @@ const handleMouseDownOnShape = e => { pos['top'] = top pos['left'] = left // 非主画布非分组画布的情况 需要检测是否从Tab中移除组件(向左移除30px 或者向右移除30px) + // 大屏和仪表板暂时做位置算法区分 仪表板暂时使用curX 因为缩放的影响 大屏使用 tab位置 + 组件位置(相对内部画布)+初始触发点 if ( !isMainCanvas(canvasId.value) && !isGroupCanvas(canvasId.value) && @@ -518,8 +527,14 @@ const handleMouseDownOnShape = e => { ) { contentDisplay.value = false dvMainStore.setMousePointShadowMap({ - mouseX: curX, - mouseY: curY, + mouseX: + !isDashboard() && outerTabDom + ? outerTabDom.offsetLeft + curDom.offsetLeft + offsetX + : curX, + mouseY: + !isDashboard() && outerTabDom + ? outerTabDom.offsetTop + curDom.offsetTop + offsetY + 100 + : curY, width: componentWidth, height: componentHeight })