feat(frontend): 重构工作区终端与导航交互
将 SSH 顶部标签改为服务器级切换入口,并把同服务器下的 多终端切换、新增与关闭下沉到终端面板内部,修正服务器与 终端的视觉层级 同时将 Workbench 导航改为左侧图标栏,并为终端标签右键菜单 补充“关闭全部”动作,完善相关多语言文案与工作区事件处理
This commit is contained in:
@@ -169,6 +169,7 @@ onMounted(() => {
|
||||
// 来自 TerminalTabBar 的事件
|
||||
subscribeToWorkspaceEvents('session:activate', (payload) => sessionStore.activateSession(payload.sessionId));
|
||||
subscribeToWorkspaceEvents('session:close', (payload) => sessionStore.closeSession(payload.sessionId));
|
||||
subscribeToWorkspaceEvents('session:closeAll', handleCloseAllSessions);
|
||||
subscribeToWorkspaceEvents('session:closeOthers', (payload) => handleCloseOtherSessions(payload.targetSessionId));
|
||||
subscribeToWorkspaceEvents('session:closeToRight', (payload) => handleCloseSessionsToRight(payload.targetSessionId));
|
||||
subscribeToWorkspaceEvents('session:closeToLeft', (payload) => handleCloseSessionsToLeft(payload.targetSessionId));
|
||||
@@ -214,6 +215,7 @@ onBeforeUnmount(() => {
|
||||
|
||||
unsubscribeFromWorkspaceEvents('session:activate', (payload) => sessionStore.activateSession(payload.sessionId));
|
||||
unsubscribeFromWorkspaceEvents('session:close', (payload) => sessionStore.closeSession(payload.sessionId));
|
||||
unsubscribeFromWorkspaceEvents('session:closeAll', handleCloseAllSessions);
|
||||
unsubscribeFromWorkspaceEvents('session:closeOthers', (payload) => handleCloseOtherSessions(payload.targetSessionId));
|
||||
unsubscribeFromWorkspaceEvents('session:closeToRight', (payload) => handleCloseSessionsToRight(payload.targetSessionId));
|
||||
unsubscribeFromWorkspaceEvents('session:closeToLeft', (payload) => handleCloseSessionsToLeft(payload.targetSessionId));
|
||||
@@ -581,6 +583,14 @@ const toggleVirtualKeyboard = () => {
|
||||
|
||||
// --- 标签页关闭操作处理 ---
|
||||
|
||||
const handleCloseAllSessions = () => {
|
||||
if (sessionTabsWithStatus.value.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
sessionStore.cleanupAllSessions();
|
||||
};
|
||||
|
||||
const handleCloseOtherSessions = (targetSessionId: string) => {
|
||||
const sessionsToClose = sessionTabsWithStatus.value
|
||||
.filter(tab => tab.sessionId !== targetSessionId)
|
||||
|
||||
Reference in New Issue
Block a user