feat(frontend): 增强连接树搜索与资源管理器布局

为连接管理页左侧标签树新增独立搜索能力,支持命中节点、
祖先链路过滤与自动展开,提升大规模连接下的检索效率。

同步优化树头部为资源管理器式布局,并强化节点计数高亮;
补充中英日文案,同时归档并更新 helloagents 记录。
This commit is contained in:
yinjianm
2026-03-25 23:27:00 +08:00
parent 1662b2b9e8
commit a6935a9c12
12 changed files with 94 additions and 46 deletions
+8
View File
@@ -364,6 +364,11 @@
"status": {
"never": "Never"
},
"scopeExplorerTitle": "Tag Explorer",
"scopeHintCompact": "Tree nodes are grouped by tag path",
"scopeTreeSearch": "Search tag tree...",
"scopeSearchMode": "Matched paths are expanded",
"scopeTreeNoMatch": "No matching tree nodes",
"untaggedGroup": "Untagged",
"noUntaggedConnections": "No untagged connections found."
},
@@ -1097,6 +1102,9 @@
"height": "Height",
"reconnect": "Reconnect",
"retry": "Retry",
"reset": "Reset",
"expandAll": "Expand All",
"collapseAll": "Collapse All",
"sortAscending": "Ascending",
"sortDescending": "Descending",
"restore": "Restore",
+8
View File
@@ -100,6 +100,9 @@
"reconnect": "再接続",
"remove": "削除",
"retry": "再試行",
"reset": "リセット",
"expandAll": "すべて展開",
"collapseAll": "すべて折りたたむ",
"save": "保存",
"saving": "保存中...",
"saved": "保存済み",
@@ -265,6 +268,11 @@
"status": {
"never": "なし"
},
"scopeExplorerTitle": "タグエクスプローラー",
"scopeHintCompact": "ツリーノードはタグパスごとに整理されます",
"scopeTreeSearch": "タグツリーを検索...",
"scopeSearchMode": "一致したパスを自動展開中",
"scopeTreeNoMatch": "一致するツリーノードはありません",
"table": {
"actions": "アクション",
"authMethod": "認証方法",
+8
View File
@@ -364,6 +364,11 @@
"status": {
"never": "从未"
},
"scopeExplorerTitle": "标签资源管理器",
"scopeHintCompact": "树节点按标签路径自动分层",
"scopeTreeSearch": "搜索标签树...",
"scopeSearchMode": "命中路径已自动展开",
"scopeTreeNoMatch": "没有匹配的树节点",
"untaggedGroup": "未标记",
"noUntaggedConnections": "没有未标记的连接。"
},
@@ -1094,6 +1099,9 @@
"height": "高度",
"reconnect": "重新连接",
"retry": "重试",
"reset": "重置",
"expandAll": "展开全部",
"collapseAll": "收起全部",
"sortAscending": "升序",
"sortDescending": "降序",
"restore": "还原",
@@ -1079,13 +1079,17 @@ onBeforeUnmount(() => {
'w-full flex items-center justify-between gap-3 rounded-xl border px-3 py-2.5 text-left transition-all duration-150',
getScopeNodeClass(node.id)
]"
:class="getTreeCountClass(node)"
>
<span class="flex items-center gap-2 min-w-0">
<i :class="['fas', node.id === 'all' ? 'fa-layer-group' : 'fa-tag', 'w-4 text-center']"></i>
<span class="truncate">{{ node.label }}</span>
</span>
<span class="px-2 py-0.5 rounded-full text-xs border border-current/15 bg-black/10">
<span
:class="[
'px-2 py-0.5 rounded-full text-xs border transition-colors',
getTreeCountClass(node)
]"
>
{{ node.count }}
</span>
</button>
@@ -1094,7 +1098,7 @@ onBeforeUnmount(() => {
<section>
<div class="px-2 mb-2 flex items-center justify-between gap-3 text-xs font-semibold uppercase tracking-[0.18em] text-text-secondary/80">
<span>{{ t('connections.table.tags', '标签资源管理器') }}</span>
<span>{{ t('connections.scopeExplorerTitle', '标签资源管理器') }}</span>
<span class="text-[11px] tracking-normal normal-case text-text-secondary">{{ visibleTagTreeNodes.length }}</span>
</div>