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);
+}