feat: 完成挂起状态下会话标签状态颜色切换

This commit is contained in:
Baobhan Sith
2025-05-10 09:00:04 +08:00
parent 037af032f5
commit 497e42cb37
5 changed files with 7 additions and 0 deletions
@@ -353,6 +353,7 @@ animation="150"
>
<!-- Status dot -->
<span :class="['w-2 h-2 rounded-full mr-2 flex-shrink-0',
session.isMarkedForSuspend ? 'bg-blue-500' : // +++ 如果已标记待挂起,则为蓝色 +++
session.status === 'connected' ? 'bg-green-500' :
session.status === 'connecting' ? 'bg-yellow-500 animate-pulse' :
session.status === 'disconnected' ? 'bg-red-500' : 'bg-gray-400']"></span>
@@ -81,6 +81,7 @@ export const openNewSession = (
editorTabs: ref([]),
activeEditorTabId: ref(null),
commandInputContent: ref(''),
isMarkedForSuspend: false, // +++ 初始化 isMarkedForSuspend状态 +++
disposables: [], // 初始化 disposables 数组
};
@@ -364,6 +364,7 @@ const handleSshMarkedForSuspendAck = (payload: SshMarkedForSuspendAckPayload): v
const session = sessions.value.get(payload.sessionId);
if (session) {
session.isMarkedForSuspend = true; // 假设 SessionState 有此字段
sessions.value = new Map(sessions.value); // 强制更新 Map
}
} else {
@@ -375,6 +376,7 @@ const handleSshMarkedForSuspendAck = (payload: SshMarkedForSuspendAckPayload): v
const session = sessions.value.get(payload.sessionId);
if (session) {
session.isMarkedForSuspend = false; // 确保标记被清除
sessions.value = new Map(sessions.value); // 强制更新 Map
}
}
};
@@ -387,6 +389,7 @@ const handleSshUnmarkedForSuspendAck = (payload: SshUnmarkedForSuspendAckPayload
if (payload.success) {
if (session) {
session.isMarkedForSuspend = false;
sessions.value = new Map(sessions.value); // 强制更新 Map
}
uiNotificationsStore.addNotification({
type: 'success',
@@ -17,6 +17,7 @@ export const sessionTabsWithStatus = computed((): SessionTabInfoWithStatus[] =>
sessionId: session.sessionId,
connectionName: session.connectionName,
status: session.wsManager.connectionStatus.value, // 从 wsManager 获取状态
isMarkedForSuspend: session.isMarkedForSuspend, // +++ 添加 isMarkedForSuspend 状态 +++
}));
});
@@ -52,4 +52,5 @@ export interface SessionTabInfoWithStatus {
sessionId: string;
connectionName: string;
status: WsConnectionStatus; // 添加状态字段
isMarkedForSuspend?: boolean; // +++ 新增:用于UI指示会话是否已标记待挂起 +++
}