From 30349cb362d368f43c5818255a1eb0ea236a968e Mon Sep 17 00:00:00 2001 From: lijiahang Date: Tue, 19 Mar 2024 19:38:01 +0800 Subject: [PATCH] =?UTF-8?q?:hammer:=20=E5=88=87=E6=8D=A2=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E8=87=AA=E9=80=82=E5=BA=94=E9=A1=B5=E9=9D=A2.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/xtrem/log-appender/appender.const.ts | 9 +++++++-- .../src/components/xtrem/log-appender/log-appender.ts | 5 +++-- .../exec/exec-command/components/log-panel-view.vue | 11 +++++++++-- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/orion-ops-ui/src/components/xtrem/log-appender/appender.const.ts b/orion-ops-ui/src/components/xtrem/log-appender/appender.const.ts index ad327ec7..3ff92cbe 100644 --- a/orion-ops-ui/src/components/xtrem/log-appender/appender.const.ts +++ b/orion-ops-ui/src/components/xtrem/log-appender/appender.const.ts @@ -1,16 +1,18 @@ -import type { IDisposable, ITerminalOptions } from 'xterm'; +import type { IDisposable, ITerminalOptions, ITerminalInitOnlyOptions } from 'xterm'; import { Terminal } from 'xterm'; import { FitAddon } from 'xterm-addon-fit'; import { SearchAddon } from 'xterm-addon-search'; import { CanvasAddon } from 'xterm-addon-canvas'; // appender 配置 -export const AppenderOption: ITerminalOptions = { +export const AppenderOptions: ITerminalOptions & ITerminalInitOnlyOptions = { theme: { foreground: '#FFFFFF', background: '#202020', selectionBackground: '#B5D5FF', }, + cols: 30, + rows: 8, rightClickSelectsWord: true, disableStdin: true, cursorStyle: 'bar', @@ -47,6 +49,9 @@ export interface ILogAppender { // 初始化 init(refs: Array): Promise; + // 自适应 + fit(): void; + // 关闭 client closeClient(): void; diff --git a/orion-ops-ui/src/components/xtrem/log-appender/log-appender.ts b/orion-ops-ui/src/components/xtrem/log-appender/log-appender.ts index 7bb3145b..d8200ae0 100644 --- a/orion-ops-ui/src/components/xtrem/log-appender/log-appender.ts +++ b/orion-ops-ui/src/components/xtrem/log-appender/log-appender.ts @@ -1,7 +1,7 @@ import type { ExecTailRequest } from '@/api/exec/exec'; import { getExecLogTailToken } from '@/api/exec/exec'; import type { ILogAppender, LogAddons, LogAppenderConf, LogDomRef } from './appender.const'; -import { AppenderOption } from './appender.const'; +import { AppenderOptions } from './appender.const'; import { webSocketBaseUrl } from '@/utils/env'; import { Message } from '@arco-design/web-vue'; import { createWebSocket } from '@/utils'; @@ -48,7 +48,7 @@ export default class LogAppender implements ILogAppender { // 打开 log-view for (let logDomRef of logDomRefs) { // 初始化 terminal - const terminal = new Terminal(AppenderOption); + const terminal = new Terminal(AppenderOptions); // 初始化插件 const addons = this.initAddons(terminal); // 打开终端 @@ -105,6 +105,7 @@ export default class LogAppender implements ILogAppender { // 自适应 fit(): void { Object.values(this.appenderRel).forEach(s => { + console.log(s); s.addons?.fit?.fit(); }); } diff --git a/orion-ops-ui/src/views/exec/exec-command/components/log-panel-view.vue b/orion-ops-ui/src/views/exec/exec-command/components/log-panel-view.vue index 40e2865f..40a0a068 100644 --- a/orion-ops-ui/src/views/exec/exec-command/components/log-panel-view.vue +++ b/orion-ops-ui/src/views/exec/exec-command/components/log-panel-view.vue @@ -55,7 +55,7 @@ import type { VNodeRef } from 'vue'; import type { ExecCommandResponse } from '@/api/exec/exec'; import type { LogDomRef, ILogAppender } from '@/components/xtrem/log-appender/appender.const'; - import { nextTick, ref } from 'vue'; + import { nextTick, ref, watch } from 'vue'; import { formatDuration } from '@/utils'; import { execHostStatus, execHostStatusKey } from '@/views/exec/exec-log/types/const'; import { useDictStore } from '@/store'; @@ -72,6 +72,13 @@ const logRefs = ref>([]); const appender = ref(); + // 切换标签自适应 + watch(() => props.current, () => { + nextTick(() => { + appender.value?.fit(); + }); + }); + // 打开 const open = () => { nextTick(async () => { @@ -138,7 +145,7 @@ width: 100%; height: calc(100% - @header-height); position: relative; - background: #212529; + background: #202020; padding: 4px 0 0 4px; .log-appender {