feat: 完成挂起状态下会话标签状态颜色切换
This commit is contained in:
@@ -353,6 +353,7 @@ animation="150"
|
|||||||
>
|
>
|
||||||
<!-- Status dot -->
|
<!-- Status dot -->
|
||||||
<span :class="['w-2 h-2 rounded-full mr-2 flex-shrink-0',
|
<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 === 'connected' ? 'bg-green-500' :
|
||||||
session.status === 'connecting' ? 'bg-yellow-500 animate-pulse' :
|
session.status === 'connecting' ? 'bg-yellow-500 animate-pulse' :
|
||||||
session.status === 'disconnected' ? 'bg-red-500' : 'bg-gray-400']"></span>
|
session.status === 'disconnected' ? 'bg-red-500' : 'bg-gray-400']"></span>
|
||||||
|
|||||||
@@ -81,6 +81,7 @@ export const openNewSession = (
|
|||||||
editorTabs: ref([]),
|
editorTabs: ref([]),
|
||||||
activeEditorTabId: ref(null),
|
activeEditorTabId: ref(null),
|
||||||
commandInputContent: ref(''),
|
commandInputContent: ref(''),
|
||||||
|
isMarkedForSuspend: false, // +++ 初始化 isMarkedForSuspend状态 +++
|
||||||
disposables: [], // 初始化 disposables 数组
|
disposables: [], // 初始化 disposables 数组
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -364,6 +364,7 @@ const handleSshMarkedForSuspendAck = (payload: SshMarkedForSuspendAckPayload): v
|
|||||||
const session = sessions.value.get(payload.sessionId);
|
const session = sessions.value.get(payload.sessionId);
|
||||||
if (session) {
|
if (session) {
|
||||||
session.isMarkedForSuspend = true; // 假设 SessionState 有此字段
|
session.isMarkedForSuspend = true; // 假设 SessionState 有此字段
|
||||||
|
sessions.value = new Map(sessions.value); // 强制更新 Map
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@@ -375,6 +376,7 @@ const handleSshMarkedForSuspendAck = (payload: SshMarkedForSuspendAckPayload): v
|
|||||||
const session = sessions.value.get(payload.sessionId);
|
const session = sessions.value.get(payload.sessionId);
|
||||||
if (session) {
|
if (session) {
|
||||||
session.isMarkedForSuspend = false; // 确保标记被清除
|
session.isMarkedForSuspend = false; // 确保标记被清除
|
||||||
|
sessions.value = new Map(sessions.value); // 强制更新 Map
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -387,6 +389,7 @@ const handleSshUnmarkedForSuspendAck = (payload: SshUnmarkedForSuspendAckPayload
|
|||||||
if (payload.success) {
|
if (payload.success) {
|
||||||
if (session) {
|
if (session) {
|
||||||
session.isMarkedForSuspend = false;
|
session.isMarkedForSuspend = false;
|
||||||
|
sessions.value = new Map(sessions.value); // 强制更新 Map
|
||||||
}
|
}
|
||||||
uiNotificationsStore.addNotification({
|
uiNotificationsStore.addNotification({
|
||||||
type: 'success',
|
type: 'success',
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ export const sessionTabsWithStatus = computed((): SessionTabInfoWithStatus[] =>
|
|||||||
sessionId: session.sessionId,
|
sessionId: session.sessionId,
|
||||||
connectionName: session.connectionName,
|
connectionName: session.connectionName,
|
||||||
status: session.wsManager.connectionStatus.value, // 从 wsManager 获取状态
|
status: session.wsManager.connectionStatus.value, // 从 wsManager 获取状态
|
||||||
|
isMarkedForSuspend: session.isMarkedForSuspend, // +++ 添加 isMarkedForSuspend 状态 +++
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -52,4 +52,5 @@ export interface SessionTabInfoWithStatus {
|
|||||||
sessionId: string;
|
sessionId: string;
|
||||||
connectionName: string;
|
connectionName: string;
|
||||||
status: WsConnectionStatus; // 添加状态字段
|
status: WsConnectionStatus; // 添加状态字段
|
||||||
|
isMarkedForSuspend?: boolean; // +++ 新增:用于UI指示会话是否已标记待挂起 +++
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user