-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -36,7 +41,7 @@
import type { ISshSession } from '../../types/define';
import { TerminalTabs, TerminalShortcutKeys, PanelSessionType } from '../../types/const';
import { useTerminalStore } from '@/store';
- import { onMounted, onUnmounted, watch } from 'vue';
+ import { computed, onMounted, onUnmounted, watch } from 'vue';
import { addEventListen, removeEventListen } from '@/utils/event';
import EmptyRecommend from './empty-recommend.vue';
import TerminalPanelsView from './terminal-panels-view.vue';
@@ -45,10 +50,25 @@
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 { layoutState, preference, tabManager, getCurrentSession, sessionManager } = useTerminalStore();
+
+ // 内容部分减去的高度
+ const mainSubtractHeight = computed(() => {
+ let height = 0;
+ // 底部发送命令高度
+ if (layoutState.commandBar && tabManager.active === TerminalTabs.TERMINAL_PANEL.key) {
+ height += 128;
+ }
+ // 自适应
+ setTimeout(() => {
+ sessionManager.dispatchResize();
+ }, 200);
+ return `${height}px`;
+ });
// 监听 tab 切换
watch(() => tabManager.active, (active, before) => {
@@ -111,6 +131,10 @@
// 打开文件传输列表
emits('openTransferList');
break;
+ case TerminalShortcutKeys.OPEN_COMMAND_BAR:
+ // 打开发送命令
+ emits('openCommandBar');
+ break;
case TerminalShortcutKeys.SCREENSHOT:
// 截图
emits('screenshot');
@@ -137,11 +161,16 @@
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/layout/terminal-panels-view.vue b/orion-visor-ui/src/views/host/terminal/components/layout/terminal-panels-view.vue
index 1248700f..7fb6ce0d 100644
--- a/orion-visor-ui/src/views/host/terminal/components/layout/terminal-panels-view.vue
+++ b/orion-visor-ui/src/views/host/terminal/components/layout/terminal-panels-view.vue
@@ -115,7 +115,7 @@
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 @@
-
+
+ @handle="doTerminalHandle">
@@ -49,10 +17,11 @@
class="search-modal"
@find="findWords"
@close="focus" />
-
-
+
+
+