fix(数据大屏): 解决因缩放导致Tab内外画布移动导致的组件预置位置的偏移问题

This commit is contained in:
wangjiahao 2024-08-19 15:56:47 +08:00
parent 13036b68a7
commit c925e9935a

View File

@ -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
})