From 1227ed1770acb698d2d0c33811f87c26aab9a9d6 Mon Sep 17 00:00:00 2001 From: lijiahangmax Date: Mon, 16 Dec 2024 20:54:35 +0800 Subject: [PATCH] =?UTF-8?q?:hammer:=20=E5=91=BD=E4=BB=A4=E5=8F=91=E9=80=81?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-dev.yaml | 8 +- .../model/TerminalPreferenceModel.java | 5 - .../strategy/TerminalPreferenceStrategy.java | 1 - .../src/store/modules/terminal/index.ts | 6 + .../src/store/modules/terminal/types.ts | 2 +- .../terminal/components/command-bar/index.vue | 113 +++++++++++++ .../components/layout/main-content.vue | 11 +- .../components/layout/right-sidebar.vue | 6 +- .../display/terminal-action-bar-block.vue | 6 - .../display/terminal-display-block.vue | 1 + .../setting/theme/terminal-theme-block.vue | 1 + .../components/ssh/ssh-context-menu.vue | 4 +- .../terminal/components/ssh/ssh-header.vue | 152 +++++++++++++++++ .../host/terminal/components/ssh/ssh-view.vue | 154 ++---------------- .../src/views/host/terminal/index.vue | 8 +- .../src/views/host/terminal/types/const.ts | 6 + 16 files changed, 317 insertions(+), 167 deletions(-) create mode 100644 orion-visor-ui/src/views/host/terminal/components/command-bar/index.vue create mode 100644 orion-visor-ui/src/views/host/terminal/components/ssh/ssh-header.vue diff --git a/orion-visor-launch/src/main/resources/application-dev.yaml b/orion-visor-launch/src/main/resources/application-dev.yaml index c6aab04f..d5a313c7 100644 --- a/orion-visor-launch/src/main/resources/application-dev.yaml +++ b/orion-visor-launch/src/main/resources/application-dev.yaml @@ -1,18 +1,18 @@ spring: datasource: druid: - url: jdbc:mysql://116.62.194.246:3306/orion_visor?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai&autoReconnect=true + url: jdbc:mysql://127.0.0.1:3306/orion_visor?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai&autoReconnect=true username: root - password: Orionsec@0379 + password: Data@123456 initial-size: 0 min-idle: 1 max-active: 5 stat-view-servlet: enabled: false redis: - host: 116.62.194.246 + host: 127.0.0.1 port: 6379 - password: Orionsec@0379 + password: Data@123456 redisson: threads: 2 netty-threads: 2 diff --git a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/handler/preference/model/TerminalPreferenceModel.java b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/handler/preference/model/TerminalPreferenceModel.java index e076f797..c0b4ff20 100644 --- a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/handler/preference/model/TerminalPreferenceModel.java +++ b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/handler/preference/model/TerminalPreferenceModel.java @@ -259,11 +259,6 @@ public class TerminalPreferenceModel implements GenericsDataModel { @AllArgsConstructor public static class ActionBarSettingModel implements IJsonObject { - /** - * 命令输入框 - */ - private Boolean commandInput; - /** * 连接状态 */ diff --git a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/handler/preference/strategy/TerminalPreferenceStrategy.java b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/handler/preference/strategy/TerminalPreferenceStrategy.java index 017d0416..43006216 100644 --- a/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/handler/preference/strategy/TerminalPreferenceStrategy.java +++ b/orion-visor-module-infra/orion-visor-module-infra-service/src/main/java/org/dromara/visor/module/infra/handler/preference/strategy/TerminalPreferenceStrategy.java @@ -115,7 +115,6 @@ public class TerminalPreferenceStrategy extends AbstractGenericsDataStrategy +
+
+ +
+ + + 粘贴 + + + + + 清空 + + +
+ +
+ + + + +
+
+
+ +
+ +
+
+
+ + + + + + + diff --git a/orion-visor-ui/src/views/host/terminal/components/layout/main-content.vue b/orion-visor-ui/src/views/host/terminal/components/layout/main-content.vue index 9cec8b7b..8771c024 100644 --- a/orion-visor-ui/src/views/host/terminal/components/layout/main-content.vue +++ b/orion-visor-ui/src/views/host/terminal/components/layout/main-content.vue @@ -23,6 +23,8 @@ + + @@ -45,10 +47,11 @@ import TerminalThemeSetting from '../setting/theme/terminal-theme-setting.vue'; import TerminalGeneralSetting from '../setting/general/terminal-general-setting.vue'; import TerminalShortcutSetting from '../setting/shortcut/terminal-shortcut-setting.vue'; + import CommandBar from '../command-bar/index.vue'; - const emits = defineEmits(['openCommandSnippet', 'openPathBookmark', 'openTransferList', 'screenshot']); + const emits = defineEmits(['openCommandSnippet', 'openPathBookmark', 'openTransferList', 'openCommandBar', 'screenshot']); - const { preference, tabManager, getCurrentSession } = useTerminalStore(); + const { commandBarVisible, preference, tabManager, getCurrentSession } = useTerminalStore(); // 监听 tab 切换 watch(() => tabManager.active, (active, before) => { @@ -111,6 +114,10 @@ // 打开文件传输列表 emits('openTransferList'); break; + case TerminalShortcutKeys.OPEN_COMMAND_BAR: + // 打开发送命令 + emits('openCommandBar'); + break; case TerminalShortcutKeys.SCREENSHOT: // 截图 emits('screenshot'); diff --git a/orion-visor-ui/src/views/host/terminal/components/layout/right-sidebar.vue b/orion-visor-ui/src/views/host/terminal/components/layout/right-sidebar.vue index b2e69031..349f5aed 100644 --- a/orion-visor-ui/src/views/host/terminal/components/layout/right-sidebar.vue +++ b/orion-visor-ui/src/views/host/terminal/components/layout/right-sidebar.vue @@ -21,7 +21,7 @@ import type { SidebarAction } from '../../types/define'; import IconActions from './icon-actions.vue'; - const emits = defineEmits(['openCommandSnippet', 'openPathBookmark', 'openTransferList', 'screenshot']); + const emits = defineEmits(['openCommandSnippet', 'openPathBookmark', 'openTransferList', 'openCommandBar', 'screenshot']); // 顶部操作 const topActions = [ @@ -46,6 +46,10 @@ // 底部操作 const bottomActions: Array = [ { + icon: 'icon-send', + content: '发送命令', + click: () => emits('openCommandBar') + }, { icon: 'icon-camera', content: '截图', click: () => emits('screenshot') diff --git a/orion-visor-ui/src/views/host/terminal/components/setting/display/terminal-action-bar-block.vue b/orion-visor-ui/src/views/host/terminal/components/setting/display/terminal-action-bar-block.vue index 481852f2..e42f3e1c 100644 --- a/orion-visor-ui/src/views/host/terminal/components/setting/display/terminal-action-bar-block.vue +++ b/orion-visor-ui/src/views/host/terminal/components/setting/display/terminal-action-bar-block.vue @@ -24,12 +24,6 @@ :actions="actions" position="bottom" /> - - - - s.type === PanelSessionType.SSH.type) .map(s => s as ISshSession) .forEach(s => { diff --git a/orion-visor-ui/src/views/host/terminal/components/setting/theme/terminal-theme-block.vue b/orion-visor-ui/src/views/host/terminal/components/setting/theme/terminal-theme-block.vue index ab89a2bd..b40adaaf 100644 --- a/orion-visor-ui/src/views/host/terminal/components/setting/theme/terminal-theme-block.vue +++ b/orion-visor-ui/src/views/host/terminal/components/setting/theme/terminal-theme-block.vue @@ -77,6 +77,7 @@ document.body.setAttribute('terminal-theme', theme.dark ? 'dark' : 'light'); // 修改终端主题 Object.values(sessionManager.sessions) + .filter(Boolean) .filter(s => s.type === PanelSessionType.SSH.type) .map(s => s as ISshSession) .forEach(s => { diff --git a/orion-visor-ui/src/views/host/terminal/components/ssh/ssh-context-menu.vue b/orion-visor-ui/src/views/host/terminal/components/ssh/ssh-context-menu.vue index 52e4de1c..7706ea86 100644 --- a/orion-visor-ui/src/views/host/terminal/components/ssh/ssh-context-menu.vue +++ b/orion-visor-ui/src/views/host/terminal/components/ssh/ssh-context-menu.vue @@ -12,7 +12,7 @@ + @click="emits('handle', action.item)">
@@ -39,7 +39,7 @@ session?: ISshSession; }>(); - const emits = defineEmits(['click']); + const emits = defineEmits(['handle']); const { preference } = useTerminalStore(); diff --git a/orion-visor-ui/src/views/host/terminal/components/ssh/ssh-header.vue b/orion-visor-ui/src/views/host/terminal/components/ssh/ssh-header.vue new file mode 100644 index 00000000..bcc40c85 --- /dev/null +++ b/orion-visor-ui/src/views/host/terminal/components/ssh/ssh-header.vue @@ -0,0 +1,152 @@ + + + + + + + diff --git a/orion-visor-ui/src/views/host/terminal/components/ssh/ssh-view.vue b/orion-visor-ui/src/views/host/terminal/components/ssh/ssh-view.vue index 37b3cb80..c3fb8164 100644 --- a/orion-visor-ui/src/views/host/terminal/components/ssh/ssh-view.vue +++ b/orion-visor-ui/src/views/host/terminal/components/ssh/ssh-view.vue @@ -1,44 +1,12 @@