From 663e8568a13bc329aca02dc09cd2fe49669fafa2 Mon Sep 17 00:00:00 2001 From: lijiahang Date: Thu, 1 Feb 2024 19:22:50 +0800 Subject: [PATCH] =?UTF-8?q?:construction:=E9=87=8D=E6=9E=84=E4=B8=AD:const?= =?UTF-8?q?ruction:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/store/modules/terminal/index.ts | 14 +++--- .../src/store/modules/terminal/types.ts | 1 + .../components/command-snippet-list-item.vue | 34 ++++++++++----- .../components/layout/empty-recommend.vue | 27 +++++------- .../components/layout/left-sidebar.vue | 32 +++++++------- .../components/layout/main-content.vue | 43 +++++++++---------- .../components/layout/terminal-panel-view.vue | 17 ++++++++ .../handler/terminal-session-handler.ts | 4 +- .../terminal/handler/terminal-tab-manager.ts | 12 ++++-- .../src/views/host/terminal/index.vue | 4 +- .../host/terminal/types/terminal.const.ts | 21 +++------ .../host/terminal/types/terminal.type.ts | 4 +- 12 files changed, 117 insertions(+), 96 deletions(-) create mode 100644 orion-ops-ui/src/views/host/terminal/components/layout/terminal-panel-view.vue diff --git a/orion-ops-ui/src/store/modules/terminal/index.ts b/orion-ops-ui/src/store/modules/terminal/index.ts index 9a7d084b..925dc4d3 100644 --- a/orion-ops-ui/src/store/modules/terminal/index.ts +++ b/orion-ops-ui/src/store/modules/terminal/index.ts @@ -17,7 +17,7 @@ import { defineStore } from 'pinia'; import { getPreference, updatePreference } from '@/api/user/preference'; import { nextSessionId } from '@/utils'; import { Message } from '@arco-design/web-vue'; -import { TerminalTabType } from '@/views/host/terminal/types/terminal.const'; +import { TerminalTabs } from '@/views/host/terminal/types/terminal.const'; import TerminalTabManager from '@/views/host/terminal/handler/terminal-tab-manager'; import TerminalSessionManager from '@/views/host/terminal/handler/terminal-session-manager'; @@ -62,7 +62,8 @@ export default defineStore('terminal', { } as TerminalShortcutSetting, }, hosts: {} as AuthorizedHostQueryResponse, - tabManager: new TerminalTabManager(), + tabManager: new TerminalTabManager(TerminalTabs.NEW_CONNECTION), + routerTabManager: [new TerminalTabManager()], sessionManager: new TerminalSessionManager() }), @@ -130,9 +131,11 @@ export default defineStore('terminal', { }, // 打开终端 - openTerminal(record: HostQueryResponse) { + openTerminal(record: HostQueryResponse, panelIndex: number = 0) { // 添加到最近连接 this.hosts.latestHosts = [...new Set([record.id, ...this.hosts.latestHosts])]; + // 切换到终端面板页面 + this.tabManager.openTab(TerminalTabs.TERMINAL_PANEL); // 获取 seq const tabSeqArr = this.tabManager.items .map(s => s.seq) @@ -141,9 +144,9 @@ export default defineStore('terminal', { const nextSeq = tabSeqArr.length ? Math.max(...tabSeqArr) + 1 : 1; + // FIXME // 打开 tab this.tabManager.openTab({ - type: TerminalTabType.TERMINAL, key: nextSessionId(10), seq: nextSeq, title: `(${nextSeq}) ${record.alias || record.name}`, @@ -164,7 +167,8 @@ export default defineStore('terminal', { // 获取当前终端会话 getCurrentTerminalSession(tips: boolean = true) { const tab = this.tabManager.getCurrentTab(); - if (!tab || tab.type !== TerminalTabType.TERMINAL) { + // FIXME + if (!tab || tab.type !== 'TERMINAL') { if (tips) { Message.warning('请切换到终端标签页'); } diff --git a/orion-ops-ui/src/store/modules/terminal/types.ts b/orion-ops-ui/src/store/modules/terminal/types.ts index 99624442..9dac7a70 100644 --- a/orion-ops-ui/src/store/modules/terminal/types.ts +++ b/orion-ops-ui/src/store/modules/terminal/types.ts @@ -6,6 +6,7 @@ export interface TerminalState { preference: TerminalPreference; hosts: AuthorizedHostQueryResponse; tabManager: ITerminalTabManager; + routerTabManager: Array; sessionManager: ITerminalSessionManager; } diff --git a/orion-ops-ui/src/views/host/command-snippet/components/command-snippet-list-item.vue b/orion-ops-ui/src/views/host/command-snippet/components/command-snippet-list-item.vue index 2751fe2f..e529928e 100644 --- a/orion-ops-ui/src/views/host/command-snippet/components/command-snippet-list-item.vue +++ b/orion-ops-ui/src/views/host/command-snippet/components/command-snippet-list-item.vue @@ -1,5 +1,5 @@