feat: 完成挂起状态下会话标签状态颜色切换
This commit is contained in:
@@ -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指示会话是否已标记待挂起 +++
|
||||
}
|
||||
Reference in New Issue
Block a user