From 9716aceabf5b587ad4412499cab2b55ad968a251 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Fri, 16 Jun 2023 17:39:50 +0800 Subject: [PATCH] =?UTF-8?q?feat(editor):=20=E5=AE=8C=E5=96=84=E5=BF=AB?= =?UTF-8?q?=E6=8D=B7=E9=94=AE=E6=B3=A8=E5=86=8C=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/editor/src/Editor.vue | 3 + packages/editor/src/initService.ts | 2 + .../editor/src/layouts/sidebar/LayerPanel.vue | 91 +++-- .../editor/src/layouts/workspace/Stage.vue | 11 +- .../src/layouts/workspace/Workspace.vue | 4 +- packages/editor/src/services/keybinding.ts | 347 ++++++++---------- packages/editor/src/theme/stage.scss | 4 + packages/editor/src/type.ts | 55 +++ .../editor/src/utils/keybinding-config.ts | 120 ++++++ 9 files changed, 397 insertions(+), 240 deletions(-) create mode 100644 packages/editor/src/utils/keybinding-config.ts diff --git a/packages/editor/src/Editor.vue b/packages/editor/src/Editor.vue index a6384464..c684e14a 100644 --- a/packages/editor/src/Editor.vue +++ b/packages/editor/src/Editor.vue @@ -100,6 +100,7 @@ import keybindingService from './services/keybinding'; import propsService from './services/props'; import storageService from './services/storage'; import uiService from './services/ui'; +import keybindingConfig from './utils/keybinding-config'; import editorProps from './editorProps'; import { initServiceEvents, initServiceState } from './initService'; import type { Services } from './type'; @@ -136,6 +137,8 @@ export default defineComponent({ initServiceEvents(props, emit, services); initServiceState(props, services); + keybindingService.registe(keybindingConfig); + keybindingService.registeEl('global'); provide('services', services); diff --git a/packages/editor/src/initService.ts b/packages/editor/src/initService.ts index d0fba7f8..43147660 100644 --- a/packages/editor/src/initService.ts +++ b/packages/editor/src/initService.ts @@ -25,6 +25,7 @@ export const initServiceState = ( eventsService, uiService, codeBlockService, + keybindingService, }: Services, ) => { // 初始值变化,重新设置节点信息 @@ -104,6 +105,7 @@ export const initServiceState = ( uiService.resetState(); componentListService.resetState(); codeBlockService.resetState(); + keybindingService.reset(); }); }; diff --git a/packages/editor/src/layouts/sidebar/LayerPanel.vue b/packages/editor/src/layouts/sidebar/LayerPanel.vue index e1d8c876..3b94699b 100644 --- a/packages/editor/src/layouts/sidebar/LayerPanel.vue +++ b/packages/editor/src/layouts/sidebar/LayerPanel.vue @@ -50,8 +50,7 @@