From 344f754fc78ac9ee112aad673d46fad1771adff8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=B0=8F=E6=B6=9B?= <1537080775@qq.com> Date: Thu, 26 Jun 2025 17:50:53 +0800 Subject: [PATCH 1/2] =?UTF-8?q?actor(webref):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=BB=93=E6=9E=84=E5=92=8C=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 注释掉 oauth2.vue 中的 getBackends() 调用 - 修改 sse_views.py 中的消息中心未读消息计数逻辑 - 优化 userNews.vue 中的新闻列表数据加载 --- backend/application/sse_views.py | 5 ++++- web/src/layout/navBars/breadcrumb/user.vue | 13 +++++++++++-- web/src/layout/navBars/breadcrumb/userNews.vue | 3 +-- web/src/views/system/login/component/oauth2.vue | 2 +- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/backend/application/sse_views.py b/backend/application/sse_views.py index f1cbe014c..c498630cd 100644 --- a/backend/application/sse_views.py +++ b/backend/application/sse_views.py @@ -17,7 +17,10 @@ def event_stream(user_id): last_db_change_time = cache.get('last_db_change_time', 0) # 只有当数据库发生变化时才检查总数 if last_db_change_time and last_db_change_time > last_sent_time: - count = MessageCenterTargetUser.objects.filter(users=user_id, is_read=False).count() + if user_id == 1: + count = MessageCenterTargetUser.objects.filter(is_read=False).count() + else: + count = MessageCenterTargetUser.objects.filter(users=user_id, is_read=False).count() yield f"data: {count}\n\n" last_sent_time = time.time() diff --git a/web/src/layout/navBars/breadcrumb/user.vue b/web/src/layout/navBars/breadcrumb/user.vue index 06b0effe6..5f167dc4f 100644 --- a/web/src/layout/navBars/breadcrumb/user.vue +++ b/web/src/layout/navBars/breadcrumb/user.vue @@ -221,12 +221,21 @@ import { getBaseURL } from '/@/utils/baseUrl'; const messageCenter = messageCenterStore(); let eventSource: EventSource | null = null; // 存储 EventSource 实例 const token = Session.get('token'); +const isConnected = ref(false); // 标志变量,记录是否已连接过 const getMessageCenterCount = () => { // 创建 EventSource 实例并连接到后端 SSE 端点 - eventSource = new EventSource(`${getBaseURL()}/sse/?token=${token}`); // 替换为你的后端地址 - + eventSource = new EventSource(`${getBaseURL()}sse/?token=${token}`); // 替换为你的后端地址 + // 首次连接成功时打印一次 + eventSource.onopen = function () { + if (!isConnected.value) { + console.log('SSE 首次连接成功'); + isConnected.value = true; // 设置标志为已连接 + } + }; // 监听消息事件 eventSource.onmessage = function (event) { + console.log(event.data); + messageCenter.setUnread(+event.data); // 更新总记录数 }; diff --git a/web/src/layout/navBars/breadcrumb/userNews.vue b/web/src/layout/navBars/breadcrumb/userNews.vue index aa1b067d4..c51d47773 100644 --- a/web/src/layout/navBars/breadcrumb/userNews.vue +++ b/web/src/layout/navBars/breadcrumb/userNews.vue @@ -48,9 +48,8 @@ const getLastMsg = () => { params: {}, }).then((res: any) => { const { data } = res; - console.log(data); + if (data) state.newsList = [data]; - state.newsList = [data]; }); }; onMounted(() => { diff --git a/web/src/views/system/login/component/oauth2.vue b/web/src/views/system/login/component/oauth2.vue index 1b0c0c68b..1a2c6cb28 100644 --- a/web/src/views/system/login/component/oauth2.vue +++ b/web/src/views/system/login/component/oauth2.vue @@ -40,7 +40,7 @@ export default defineComponent({ // }; onMounted(() => { - getBackends(); + // getBackends(); }); return { ...toRefs(state), -- Gitee From ad95bea3019e9c9743b30d6fd4e96f2f5a9fd2a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=B0=8F=E6=B6=9B?= <1537080775@qq.com> Date: Thu, 26 Jun 2025 17:51:36 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix(application):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=99=AE=E9=80=9A=E7=94=A8=E6=88=B7=E6=8E=A5=E6=94=B6=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E6=95=B0=E9=87=8F=E7=BB=9F=E8=AE=A1=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除了对 user_id == 1 的特殊判断,统一了消息数量统计逻辑 - 优化了代码结构,提高了代码的可读性和维护性 --- backend/application/sse_views.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/backend/application/sse_views.py b/backend/application/sse_views.py index c498630cd..f1cbe014c 100644 --- a/backend/application/sse_views.py +++ b/backend/application/sse_views.py @@ -17,10 +17,7 @@ def event_stream(user_id): last_db_change_time = cache.get('last_db_change_time', 0) # 只有当数据库发生变化时才检查总数 if last_db_change_time and last_db_change_time > last_sent_time: - if user_id == 1: - count = MessageCenterTargetUser.objects.filter(is_read=False).count() - else: - count = MessageCenterTargetUser.objects.filter(users=user_id, is_read=False).count() + count = MessageCenterTargetUser.objects.filter(users=user_id, is_read=False).count() yield f"data: {count}\n\n" last_sent_time = time.time() -- Gitee