|
@@ -3,7 +3,9 @@
|
|
|
<div
|
|
<div
|
|
|
id="mtCanvasArea"
|
|
id="mtCanvasArea"
|
|
|
ref="canvasAreaRef"
|
|
ref="canvasAreaRef"
|
|
|
- :class="`canvasArea ${globalStore.intention == 'runDragCanvas' ? 'cursor-grab' : ''}`"
|
|
|
|
|
|
|
+ :class="`canvasArea ${
|
|
|
|
|
+ ['beginDragCanvas', 'runDragCanvas'].includes(globalStore.intention) ? 'cursor-grab' : ''
|
|
|
|
|
+ }`"
|
|
|
@drop="onDrop"
|
|
@drop="onDrop"
|
|
|
@dragover="onDragOver"
|
|
@dragover="onDragOver"
|
|
|
@touchstart="onDrop($event, true)"
|
|
@touchstart="onDrop($event, true)"
|
|
@@ -121,6 +123,7 @@ const canvasAreaRef = ref()
|
|
|
const selectedAreaRef = ref<InstanceType<typeof SelectedArea>>()
|
|
const selectedAreaRef = ref<InstanceType<typeof SelectedArea>>()
|
|
|
const dragCanvasRef = ref<InstanceType<typeof DragCanvas>>()
|
|
const dragCanvasRef = ref<InstanceType<typeof DragCanvas>>()
|
|
|
const dragLineRenderRef = ref<InstanceType<typeof DrawLineRender>>()
|
|
const dragLineRenderRef = ref<InstanceType<typeof DrawLineRender>>()
|
|
|
|
|
+const shortcut_drag_select_item_id = ref('')
|
|
|
// 是否需要重新计算画布缩放中心点
|
|
// 是否需要重新计算画布缩放中心点
|
|
|
const is_need_recal_center = ref(true)
|
|
const is_need_recal_center = ref(true)
|
|
|
let is_listen_keydown = false // 是否已经监听了键盘事件
|
|
let is_listen_keydown = false // 是否已经监听了键盘事件
|
|
@@ -275,6 +278,11 @@ const onDragOver = (e: DragEvent) => {
|
|
|
}
|
|
}
|
|
|
const onRenderCoreMouseDown = (item: IDoneJson, e: MouseEvent) => {
|
|
const onRenderCoreMouseDown = (item: IDoneJson, e: MouseEvent) => {
|
|
|
beginListenerKeyDown()
|
|
beginListenerKeyDown()
|
|
|
|
|
+ if (isSystemShortcutKey(e)) {
|
|
|
|
|
+ shortcut_drag_select_item_id.value = item.lock ? '' : item.id
|
|
|
|
|
+ beginDragCanvas(e)
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
if (globalStore.lock) {
|
|
if (globalStore.lock) {
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
@@ -317,11 +325,15 @@ const onRenderCoreMouseDown = (item: IDoneJson, e: MouseEvent) => {
|
|
|
}
|
|
}
|
|
|
const onMouseDown = (e: MouseEvent) => {
|
|
const onMouseDown = (e: MouseEvent) => {
|
|
|
beginListenerKeyDown()
|
|
beginListenerKeyDown()
|
|
|
|
|
+ if (isSystemShortcutKey(e)) {
|
|
|
|
|
+ shortcut_drag_select_item_id.value = ''
|
|
|
|
|
+ beginDragCanvas(e)
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
globalStore.cancelAllSelect()
|
|
globalStore.cancelAllSelect()
|
|
|
// 锁定状态或者右键点击进行画布拖动
|
|
// 锁定状态或者右键点击进行画布拖动
|
|
|
if (globalStore.lock || e.button == 2) {
|
|
if (globalStore.lock || e.button == 2) {
|
|
|
- globalStore.setIntention('beginDragCanvas')
|
|
|
|
|
- dragCanvasRef.value?.onMouseDown(e)
|
|
|
|
|
|
|
+ beginDragCanvas(e)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
if (mainPanelProps.lineAppendEnable) {
|
|
if (mainPanelProps.lineAppendEnable) {
|
|
@@ -733,6 +745,12 @@ const dragCanvasMouseDown = () => {
|
|
|
init_drag_offset.x = globalStore.canvasCfg.drag_offset.x
|
|
init_drag_offset.x = globalStore.canvasCfg.drag_offset.x
|
|
|
init_drag_offset.y = globalStore.canvasCfg.drag_offset.y
|
|
init_drag_offset.y = globalStore.canvasCfg.drag_offset.y
|
|
|
}
|
|
}
|
|
|
|
|
+const beginDragCanvas = (e: MouseEvent | TouchEvent) => {
|
|
|
|
|
+ e.preventDefault()
|
|
|
|
|
+ e.stopPropagation()
|
|
|
|
|
+ globalStore.setIntention('beginDragCanvas')
|
|
|
|
|
+ dragCanvasRef.value?.onMouseDown(e)
|
|
|
|
|
+}
|
|
|
/**
|
|
/**
|
|
|
* 画布拖动移动事件
|
|
* 画布拖动移动事件
|
|
|
* @param move_x
|
|
* @param move_x
|
|
@@ -742,6 +760,7 @@ const dragCanvasMouseMove = (move_x: number, move_y: number) => {
|
|
|
if (move_x === 0 && move_y === 0) {
|
|
if (move_x === 0 && move_y === 0) {
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
+ shortcut_drag_select_item_id.value = ''
|
|
|
globalStore.setIntention('runDragCanvas')
|
|
globalStore.setIntention('runDragCanvas')
|
|
|
// 设置画布偏移
|
|
// 设置画布偏移
|
|
|
globalStore.canvasCfg.drag_offset = {
|
|
globalStore.canvasCfg.drag_offset = {
|
|
@@ -756,6 +775,14 @@ const dragCanvasMouseUp = () => {
|
|
|
if (globalStore.intention == 'runDragCanvas') {
|
|
if (globalStore.intention == 'runDragCanvas') {
|
|
|
globalStore.setIntention('endDragCanvas')
|
|
globalStore.setIntention('endDragCanvas')
|
|
|
} else {
|
|
} else {
|
|
|
|
|
+ if (shortcut_drag_select_item_id.value) {
|
|
|
|
|
+ const find_item = globalStore.done_json.find((f) => f.id == shortcut_drag_select_item_id.value)
|
|
|
|
|
+ if (find_item) {
|
|
|
|
|
+ find_item.active = !find_item.active
|
|
|
|
|
+ globalStore.refreshSelectedItemsId()
|
|
|
|
|
+ }
|
|
|
|
|
+ shortcut_drag_select_item_id.value = ''
|
|
|
|
|
+ }
|
|
|
globalStore.setIntention('none')
|
|
globalStore.setIntention('none')
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|