From ec4533e7def6b2c4e4e07ec449d158403a9ccf22 Mon Sep 17 00:00:00 2001 From: KOMATA <20227709+HynoR@users.noreply.github.com> Date: Mon, 10 Nov 2025 17:27:47 +0800 Subject: [PATCH] feat: enhance terminal connection UI with improved popover design and search functionality (#10902) --- .../src/views/terminal/terminal/index.vue | 215 ++++++++++++++---- 1 file changed, 171 insertions(+), 44 deletions(-) diff --git a/frontend/src/views/terminal/terminal/index.vue b/frontend/src/views/terminal/terminal/index.vue index 30a51b2ff..325b177a5 100644 --- a/frontend/src/views/terminal/terminal/index.vue +++ b/frontend/src/views/terminal/terminal/index.vue @@ -139,52 +139,108 @@ @@ -245,7 +301,7 @@ const loadTooltip = () => { return i18n.global.t('commons.button.' + (globalStore.isFullScreen ? 'quitFullscreen' : 'fullscreen')); }; -let timer: NodeJS.Timer | null = null; +let timer: ReturnType | null = null; const terminalValue = ref(); const terminalTabs = ref([]) as any; let tabIndex = 0; @@ -556,6 +612,77 @@ onMounted(() => { background-color: var(--el-tabs__item); } +.host-tree { + :deep(.el-tree-node) { + .el-tree-node__content { + height: 36px; + padding: 0 12px; + + &:hover { + background-color: var(--el-fill-color-light); + } + } + + .el-tree-node__label { + flex: 1; + padding-left: 8px; + } + + .el-tree-node__expand-icon { + margin-right: 8px; + } + } + + :deep(.el-tree__empty-block) { + padding: 24px 0; + min-height: auto; + } + + :deep(.el-tree__empty-text) { + color: var(--el-text-color-secondary); + font-size: 13px; + } + + &.compact { + :deep(.el-tree-node) { + .el-tree-node__content { + height: 28px; + padding: 0 8px; + } + + .el-tree-node__label { + padding-left: 4px; + } + + .el-tree-node__expand-icon { + margin-right: 4px; + font-size: 12px; + } + } + + :deep(.el-tree-node__children) { + .el-tree-node__content { + padding-left: 20px; + } + } + } +} + +.search-container { + :deep(.el-input__wrapper) { + border-radius: 6px; + box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); + + &:hover { + box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1); + } + + &.is-focus { + box-shadow: 0 0 0 2px var(--el-color-primary-light-3); + } + } +} + .vertical-tabs > .el-tabs__content { padding: 32px; color: #6b778c;