From 0977ef0703ee7cc57c6969af164de4a42fa52f47 Mon Sep 17 00:00:00 2001 From: lijiahang Date: Mon, 15 Jan 2024 19:09:12 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=BB=88=E7=AB=AF=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E6=8A=BD=E8=B1=A1.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/store/modules/terminal/index.ts | 5 + .../src/store/modules/terminal/types.ts | 16 ++ .../components/layout/terminal-content.vue | 2 + .../components/xterm/terminal-view.vue | 61 ++----- .../handler/terminal-session-handler.ts | 167 ++++++++++++++++++ .../handler/terminal-session-manager.ts | 7 +- .../host/terminal/handler/terminal-session.ts | 43 ++++- .../handler/terminal-shortcut-dispatch.ts | 167 ++++++++++++++++++ .../host/terminal/types/terminal.const.ts | 2 +- .../host/terminal/types/terminal.type.ts | 58 +++++- 10 files changed, 470 insertions(+), 58 deletions(-) create mode 100644 orion-ops-ui/src/views/host/terminal/handler/terminal-session-handler.ts create mode 100644 orion-ops-ui/src/views/host/terminal/handler/terminal-shortcut-dispatch.ts diff --git a/orion-ops-ui/src/store/modules/terminal/index.ts b/orion-ops-ui/src/store/modules/terminal/index.ts index dbef8a3c..42adea66 100644 --- a/orion-ops-ui/src/store/modules/terminal/index.ts +++ b/orion-ops-ui/src/store/modules/terminal/index.ts @@ -5,6 +5,7 @@ import type { TerminalPluginsSetting, TerminalPreference, TerminalSessionSetting, + TerminalShortcutSetting, TerminalState } from './types'; import type { AuthorizedHostQueryResponse } from '@/api/asset/asset-authorized-data'; @@ -55,6 +56,10 @@ export default defineStore('terminal', { interactSetting: {} as TerminalInteractSetting, pluginsSetting: {} as TerminalPluginsSetting, sessionSetting: {} as TerminalSessionSetting, + shortcutSetting: { + enabled: true, + keys: [] + } as TerminalShortcutSetting, }, hosts: {} as AuthorizedHostQueryResponse, tabManager: new TerminalTabManager(), diff --git a/orion-ops-ui/src/store/modules/terminal/types.ts b/orion-ops-ui/src/store/modules/terminal/types.ts index 737e6760..1ac82dfb 100644 --- a/orion-ops-ui/src/store/modules/terminal/types.ts +++ b/orion-ops-ui/src/store/modules/terminal/types.ts @@ -19,6 +19,7 @@ export interface TerminalPreference { interactSetting: TerminalInteractSetting; pluginsSetting: TerminalPluginsSetting; sessionSetting: TerminalSessionSetting; + shortcutSetting: TerminalShortcutSetting; } // 显示设置 @@ -66,3 +67,18 @@ export interface TerminalSessionSetting { terminalEmulationType: string; scrollBackLine: number; } + +// 终端快捷键设置 +export interface TerminalShortcutSetting { + enabled: boolean; + keys: Array; +} + +// 终端快捷键 +export interface TerminalShortcutKey { + option: string; + ctrlKey: boolean; + shiftKey: boolean; + altKey: boolean; + key: string; +} diff --git a/orion-ops-ui/src/views/host/terminal/components/layout/terminal-content.vue b/orion-ops-ui/src/views/host/terminal/components/layout/terminal-content.vue index 9c6d0558..510ea2c1 100644 --- a/orion-ops-ui/src/views/host/terminal/components/layout/terminal-content.vue +++ b/orion-ops-ui/src/views/host/terminal/components/layout/terminal-content.vue @@ -67,6 +67,8 @@ } }); + // TODO 快捷键逻辑 主机加载逻辑 加载中逻辑 +