From 272637395f89c6958f83348bf58cc88d14c55f75 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Thu, 7 Nov 2024 18:18:03 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=95=B0=E6=8D=AE=E5=A4=A7=E5=B1=8F):=20?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=A4=A7=E5=B1=8F=E6=94=AF=E6=8C=81=E6=8C=89?= =?UTF-8?q?=E4=BD=8F=E7=A9=BA=E6=A0=BC=E9=94=AE=E6=97=B6=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E9=BC=A0=E6=A0=87=E7=9B=B4=E6=8E=A5=E7=A7=BB=E5=8A=A8=E6=95=B4?= =?UTF-8?q?=E4=B8=AA=E5=A4=A7=E5=B1=8F=20#12787?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data-visualization/canvas/CanvasCore.vue | 1 + .../modules/data-visualization/compose.ts | 5 ++ core/core-frontend/src/utils/DeShortcutKey.ts | 11 +++- .../src/views/data-visualization/index.vue | 66 ++++++++++++++++++- 4 files changed, 80 insertions(+), 3 deletions(-) diff --git a/core/core-frontend/src/components/data-visualization/canvas/CanvasCore.vue b/core/core-frontend/src/components/data-visualization/canvas/CanvasCore.vue index 6857004247..8a929df9d0 100644 --- a/core/core-frontend/src/components/data-visualization/canvas/CanvasCore.vue +++ b/core/core-frontend/src/components/data-visualization/canvas/CanvasCore.vue @@ -1519,6 +1519,7 @@ defineExpose({ :style="editStyle" @contextmenu="handleContextMenu" > + { + if (isSpaceDown.value) { + // 仅在空格键按下时启用拖动 + isDragging = true + startX = e.pageX - canvasOut.value.wrapRef.offsetLeft + startY = e.pageY - canvasOut.value.wrapRef.offsetTop + scrollLeft = canvasOut.value.wrapRef.scrollLeft + scrollTop = canvasOut.value.wrapRef.scrollTop + e.preventDefault() + e.stopPropagation() + } +} + +// 执行拖动 +const onMouseMove = e => { + if (!isDragging) return + e.preventDefault() + e.stopPropagation() + const x = e.pageX - canvasOut.value.wrapRef.offsetLeft + const y = e.pageY - canvasOut.value.wrapRef.offsetTop + const walkX = x - startX + const walkY = y - startY + canvasOut.value.wrapRef.scrollLeft = scrollLeft - walkX + canvasOut.value.wrapRef.scrollTop = scrollTop - walkY + console.log('====onMouseMove==walkX=' + walkX + ';walkY=' + walkY) +} + +// 禁用拖动 +const disableDragging = () => { + isDragging = false +} + const contentStyle = computed(() => { const { width, height } = canvasStyleData.value if (editMode.value === 'preview') { @@ -421,6 +456,8 @@ eventBus.on('handleNew', handleNew) :class="isDataEaseBi && !newWindowFromDiv && 'dataease-w-h'" > + ---{{ isSpaceDown }} +
+
+ > + +
@@ -580,6 +626,7 @@ eventBus.on('handleNew', handleNew) background-color: rgba(51, 51, 51, 1); overflow: auto; .content { + position: relative; flex: 1; width: 100%; overflow: auto; @@ -644,4 +691,19 @@ eventBus.on('handleNew', handleNew) color: #ebebeb; } } + +.canvas-drag { + position: absolute; + z-index: 1; + opacity: 0.3; + cursor: pointer; +} + +.canvas-drag-tip { + position: absolute; + right: 5px; + bottom: -20px; + font-size: 12px; + color: rgb(169, 175, 184); +}