From 981efd30b1c01814780ec4cfd67b804b77142545 Mon Sep 17 00:00:00 2001 From: zhaojisen <1301338853@qq.com> Date: Fri, 13 Sep 2024 17:29:31 +0800 Subject: [PATCH] fixed: Fixed an issue where users would be displayed even when disconnected --- .../Kubernetes/MainContent/index.vue | 35 +++++++++++-------- ui/src/views/Connection/index.vue | 26 ++++++++++---- 2 files changed, 40 insertions(+), 21 deletions(-) diff --git a/ui/src/components/Kubernetes/MainContent/index.vue b/ui/src/components/Kubernetes/MainContent/index.vue index e837233d..09c6ed14 100644 --- a/ui/src/components/Kubernetes/MainContent/index.vue +++ b/ui/src/components/Kubernetes/MainContent/index.vue @@ -96,15 +96,7 @@ import Settings from '@/components/Settings/index.vue'; import ThemeConfig from '@/components/ThemeConfig/index.vue'; import CustomTerminal from '@/components/CustomTerminal/index.vue'; -import { - DropdownOption, - NIcon, - NMessageProvider, - TabPaneProps, - useDialog, - useMessage, - useNotification -} from 'naive-ui'; +import { DropdownOption, NIcon, NMessageProvider, TabPaneProps, useDialog, useMessage } from 'naive-ui'; import type { ISettingProp, shareUser } from '@/views/interface'; import type { customTreeOption } from '@/hooks/interface'; @@ -126,7 +118,6 @@ const props = defineProps<{ const { t } = useI18n(); const dialog = useDialog(); -const notification = useNotification(); const treeStore = useTreeStore(); const paramsStore = useParamsStore(); @@ -139,6 +130,7 @@ const el = ref(); const dropdownY = ref(0); const dropdownX = ref(0); +const deleteUserCounter = ref(0); const nameRef = ref(''); const sessionId = ref(''); const waterMarkContent = ref(''); @@ -547,11 +539,25 @@ const onSocketData = (msgType: string, msg: any, terminal: Terminal) => { } case 'CLOSE': { enableShare.value = false; + break; + } + case 'K8S_CLOSE': { + enableShare.value = false; + + deleteUserCounter.value--; + + // 用于删除根用户 + if (deleteUserCounter.value === 0) { + for (const key in onlineUsersMap) { + delete onlineUsersMap[key]; + } + } + + // 用于删除分享的用户 + if (onlineUsersMap.hasOwnProperty(msg.id)) { + delete onlineUsersMap[msg.id]; + } - notification.error({ - content: t('WebSocketClosed'), - duration: 50000 - }); break; } default: @@ -746,6 +752,7 @@ onMounted(() => { nameRef.value = key; terminalStore.setTerminalConfig('currentTab', key); + deleteUserCounter.value++; }); }); diff --git a/ui/src/views/Connection/index.vue b/ui/src/views/Connection/index.vue index 351d859d..3086f247 100644 --- a/ui/src/views/Connection/index.vue +++ b/ui/src/views/Connection/index.vue @@ -13,7 +13,7 @@