feat(frontend): 增强工作台快捷指令与仪表盘能力

补充快捷指令动态变量解析与编辑弹窗一键插入,
统一列表执行、粘贴到终端和批量发送的处理链路

扩展快捷命令右键菜单动作,并为文件面板新增
多根目录资源管理器式侧栏浏览体验

为首页 dashboard 增加当前用户与系统总览双视角的
实时会话指标展示,并同步更新相关知识库记录
This commit is contained in:
yinjianm
2026-03-26 01:39:42 +08:00
parent a2ac4047d9
commit 3f6e2bffc6
35 changed files with 2206 additions and 190 deletions
+75 -3
View File
@@ -389,8 +389,6 @@
"scopeSearchMode": "Matched paths are expanded",
"scopeTreeNoMatch": "No matching tree nodes",
"scopeDragPlaceholder": "Drag-reorder is reserved for now; only target placeholder feedback is shown.",
"scopePinAction": "Focus this scope",
"scopeDragAction": "Drag to reorder (reserved)",
"untaggedGroup": "Untagged",
"noUntaggedConnections": "No untagged connections found."
},
@@ -1379,16 +1377,73 @@
"addVariable": "+ Add Variable",
"execute": "Execute",
"warningUndefinedVariables": "Warning: Undefined variables in command template: {variables}",
"errorNoActiveSession": "No active SSH session to execute the command."
"errorNoActiveSession": "No active SSH session to execute the command.",
"dynamicVariables": {
"title": "Dynamic Variables",
"description": "Click a variable below to insert it into the command. It will be resolved automatically at execution time.",
"exampleLabel": "Example",
"groups": {
"datetime": "Date & Time",
"identity": "Identifiers",
"system": "System"
},
"items": {
"date": {
"label": "date",
"description": "Current date. Supports custom formats such as YYYY-MM-DD, YYYYMMDD, and MM/DD."
},
"time": {
"label": "time",
"description": "Current time. Supports custom formats such as HH:mm:ss, HHmmss, and HH:mm."
},
"timestamp": {
"label": "timestamp",
"description": "Unix timestamp in seconds."
},
"week": {
"label": "week",
"description": "Current ISO week number in the year."
},
"uuid": {
"label": "uuid",
"description": "Generate a unique identifier."
},
"random": {
"label": "random",
"description": "Generate a random string. Use forms like random:8 to control the length."
},
"clipboard": {
"label": "clipboard",
"description": "Read text from the current clipboard."
},
"password": {
"label": "password",
"description": "Try to read the login password for the current active SSH session."
}
},
"warnings": {
"clipboardUnavailable": "Unable to read clipboard text. An empty string was used instead.",
"passwordUnavailable": "No login password is available for the current active connection. An empty string was used instead.",
"unknownVariable": "Unrecognized dynamic variable: {variable}"
}
}
},
"untagged": "Untagged",
"tags": {
"clickToEditTag": "Click to edit tag name"
},
"actions": {
"runNow": "Run Now",
"pasteToTerminal": "Paste to Terminal",
"copyCommand": "Copy Command",
"pasteToQuickInput": "Paste to Quick Input",
"edit": "Edit",
"delete": "Delete",
"sendToAllSessions": "Send to All Servers"
},
"notifications": {
"pastedToTerminal": "Pasted into the terminal input.",
"pastedToQuickInput": "Pasted into the quick input.",
"sentToAllSessions": "Command sent to {count} servers.",
"noActiveSshSessions": "No active SSH sessions to send command to."
}
@@ -1519,6 +1574,23 @@
"sshSuccess24h": "Successful SSH connection events over the last 24 hours",
"sshFailure24h": "Failed SSH or shell-open events over the last 24 hours"
},
"liveMetrics": {
"title": "Live Session Metrics",
"description": "A mixed view of your current sessions and the whole system runtime state.",
"currentUser": {
"title": "My Sessions",
"description": "Sessions tied to the current signed-in user."
},
"system": {
"title": "System Overview",
"description": "All live session signals currently tracked by the backend."
},
"labels": {
"activeSshSessions": "Active SSH Sessions",
"suspendedSessions": "Suspended Sessions",
"statusStreams": "Status Streams"
}
},
"charts": {
"activityTrend7d": "Activity Trend (7 Days)",
"activityTrendHint": "Daily audit event volume for the latest week",
+75 -3
View File
@@ -291,8 +291,6 @@
"scopeSearchMode": "一致したパスを自動展開中",
"scopeTreeNoMatch": "一致するツリーノードはありません",
"scopeDragPlaceholder": "ドラッグ並べ替えは予約中で、現在は配置先のプレースホルダーのみ表示します。",
"scopePinAction": "この範囲にフォーカス",
"scopeDragAction": "ドラッグで並べ替え(予約)",
"table": {
"actions": "アクション",
"authMethod": "認証方法",
@@ -361,6 +359,23 @@
"sshSuccess24h": "過去 24 時間に成功した SSH 接続イベント数",
"sshFailure24h": "過去 24 時間に失敗した SSH 接続または Shell 起動イベント数"
},
"liveMetrics": {
"title": "ライブセッション指標",
"description": "現在のユーザー視点とシステム全体視点を同時に表示します。",
"currentUser": {
"title": "自分のセッション",
"description": "現在ログイン中のユーザーに紐づくオンライン / 中断セッションです。"
},
"system": {
"title": "システム概要",
"description": "バックエンドが現在追跡している全体のライブセッション信号です。"
},
"labels": {
"activeSshSessions": "稼働中の SSH セッション",
"suspendedSessions": "中断セッション",
"statusStreams": "状態監視ストリーム"
}
},
"charts": {
"activityTrend7d": "直近 7 日のアクティビティ推移",
"activityTrendHint": "直近 1 週間の監査イベント数を日別に表示",
@@ -779,7 +794,56 @@
"addVariable": "+ 変数を追加",
"execute": "実行",
"warningUndefinedVariables": "警告:コマンドテンプレートに未定義の変数があります: {variables}",
"errorNoActiveSession": "コマンドを実行するためのアクティブなSSHセッションがありません。"
"errorNoActiveSession": "コマンドを実行するためのアクティブなSSHセッションがありません。",
"dynamicVariables": {
"title": "動的変数",
"description": "下の変数をクリックするとコマンドへ挿入され、実行時に自動で展開されます。",
"exampleLabel": "例",
"groups": {
"datetime": "日時",
"identity": "識別子",
"system": "システム"
},
"items": {
"date": {
"label": "date",
"description": "現在の日付です。YYYY-MM-DD、YYYYMMDD、MM/DD などの書式に対応します。"
},
"time": {
"label": "time",
"description": "現在の時刻です。HH:mm:ss、HHmmss、HH:mm などの書式に対応します。"
},
"timestamp": {
"label": "timestamp",
"description": "Unix タイムスタンプ(秒)です。"
},
"week": {
"label": "week",
"description": "現在が年内の第何週かを返します。"
},
"uuid": {
"label": "uuid",
"description": "一意の識別子を生成します。"
},
"random": {
"label": "random",
"description": "ランダム文字列を生成します。random:8 のように長さを指定できます。"
},
"clipboard": {
"label": "clipboard",
"description": "現在のクリップボードのテキストを読み取ります。"
},
"password": {
"label": "password",
"description": "現在アクティブな SSH セッションに対応するログインパスワードの取得を試みます。"
}
},
"warnings": {
"clipboardUnavailable": "クリップボードの内容を読み取れなかったため、空文字として扱いました。",
"passwordUnavailable": "現在のアクティブ接続に利用可能なログインパスワードがないため、空文字として扱いました。",
"unknownVariable": "未対応の動的変数があります: {variable}"
}
}
},
"untagged": "タグなし",
"tags": {
@@ -790,9 +854,17 @@
"sortByUsage": "使用頻度",
"usageCount": "使用回数",
"actions": {
"runNow": "今すぐ実行",
"pasteToTerminal": "ターミナルに貼り付け",
"copyCommand": "コマンドをコピー",
"pasteToQuickInput": "クイック入力欄に貼り付け",
"edit": "編集",
"delete": "削除",
"sendToAllSessions": "すべてのサーバーに送信"
},
"notifications": {
"pastedToTerminal": "ターミナル入力欄に貼り付けました。",
"pastedToQuickInput": "クイック入力欄に貼り付けました。",
"sentToAllSessions": "コマンドは {count} 台のサーバーに送信されました。",
"noActiveSshSessions": "コマンドを送信するアクティブな SSH セッションはありません。"
}
+75 -3
View File
@@ -389,8 +389,6 @@
"scopeSearchMode": "命中路径已自动展开",
"scopeTreeNoMatch": "没有匹配的树节点",
"scopeDragPlaceholder": "拖拽排序预留中,当前仅展示目标占位反馈。",
"scopePinAction": "定位到此范围",
"scopeDragAction": "拖拽重排(预留)",
"untaggedGroup": "未标记",
"noUntaggedConnections": "没有未标记的连接。"
},
@@ -1383,16 +1381,73 @@
"addVariable": "+ 添加变量",
"execute": "执行",
"warningUndefinedVariables": "警告:指令模板中存在未定义的变量: {variables}",
"errorNoActiveSession": "没有活动的SSH会话可执行指令。"
"errorNoActiveSession": "没有活动的SSH会话可执行指令。",
"dynamicVariables": {
"title": "动态变量",
"description": "点击下方变量即可插入到指令中,执行时会自动填充。",
"exampleLabel": "示例",
"groups": {
"datetime": "日期时间",
"identity": "唯一标识",
"system": "系统"
},
"items": {
"date": {
"label": "date",
"description": "当前日期,支持自定义格式,例如 YYYY-MM-DD、YYYYMMDD、MM/DD。"
},
"time": {
"label": "time",
"description": "当前时间,支持自定义格式,例如 HH:mm:ss、HHmmss、HH:mm。"
},
"timestamp": {
"label": "timestamp",
"description": "Unix 时间戳(秒)。"
},
"week": {
"label": "week",
"description": "当前是一年中的第几周。"
},
"uuid": {
"label": "uuid",
"description": "生成唯一标识符。"
},
"random": {
"label": "random",
"description": "生成随机字符串,可通过 random:8 这类写法指定长度。"
},
"clipboard": {
"label": "clipboard",
"description": "读取当前剪贴板文本内容。"
},
"password": {
"label": "password",
"description": "尝试读取当前活动 SSH 会话对应的登录密码。"
}
},
"warnings": {
"clipboardUnavailable": "无法读取剪贴板内容,已按空文本处理。",
"passwordUnavailable": "当前活动连接没有可用的登录密码,已按空文本处理。",
"unknownVariable": "存在未识别的动态变量: {variable}"
}
}
},
"untagged": "未标记",
"tags": {
"clickToEditTag": "点击编辑标签名称"
},
"actions": {
"runNow": "立即执行",
"pasteToTerminal": "粘贴到终端",
"copyCommand": "复制命令",
"pasteToQuickInput": "粘贴到快捷输入框",
"edit": "编辑",
"delete": "删除",
"sendToAllSessions": "发送到全部服务器"
},
"notifications": {
"pastedToTerminal": "已粘贴到终端输入框。",
"pastedToQuickInput": "已粘贴到快捷输入框。",
"sentToAllSessions": "指令已发送到 {count} 台服务器。",
"noActiveSshSessions": "没有活动的 SSH 会话可发送指令。"
}
@@ -1523,6 +1578,23 @@
"sshSuccess24h": "最近 24 小时内成功建立的 SSH 连接事件",
"sshFailure24h": "最近 24 小时内 SSH 连接或 Shell 打开失败事件"
},
"liveMetrics": {
"title": "实时会话指标",
"description": "同时展示当前用户视角与系统总览视角的运行态会话信息。",
"currentUser": {
"title": "我的会话",
"description": "与当前登录用户绑定的在线和挂起会话。"
},
"system": {
"title": "系统总览",
"description": "后端当前正在追踪的全局实时会话信号。"
},
"labels": {
"activeSshSessions": "在线 SSH 会话",
"suspendedSessions": "挂起会话",
"statusStreams": "状态监控流"
}
},
"charts": {
"activityTrend7d": "近 7 天活动趋势",
"activityTrendHint": "按天统计最近一周的审计事件量",