actor(webref): 优化代码结构和功能

- 注释掉 oauth2.vue 中的 getBackends() 调用
- 修改 sse_views.py 中的消息中心未读消息计数逻辑
- 优化 userNews.vue 中的新闻列表数据加载
This commit is contained in:
李小涛
2025-06-26 17:50:53 +08:00
parent ac3bfb6b80
commit 344f754fc7
4 changed files with 17 additions and 6 deletions

View File

@@ -17,6 +17,9 @@ def event_stream(user_id):
last_db_change_time = cache.get('last_db_change_time', 0) 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 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" yield f"data: {count}\n\n"
last_sent_time = time.time() last_sent_time = time.time()

View File

@@ -221,12 +221,21 @@ import { getBaseURL } from '/@/utils/baseUrl';
const messageCenter = messageCenterStore(); const messageCenter = messageCenterStore();
let eventSource: EventSource | null = null; // 存储 EventSource 实例 let eventSource: EventSource | null = null; // 存储 EventSource 实例
const token = Session.get('token'); const token = Session.get('token');
const isConnected = ref(false); // 标志变量,记录是否已连接过
const getMessageCenterCount = () => { const getMessageCenterCount = () => {
// 创建 EventSource 实例并连接到后端 SSE 端点 // 创建 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) { eventSource.onmessage = function (event) {
console.log(event.data);
messageCenter.setUnread(+event.data); // 更新总记录数 messageCenter.setUnread(+event.data); // 更新总记录数
}; };

View File

@@ -48,9 +48,8 @@ const getLastMsg = () => {
params: {}, params: {},
}).then((res: any) => { }).then((res: any) => {
const { data } = res; const { data } = res;
console.log(data); if (data) state.newsList = [data];
state.newsList = [data];
}); });
}; };
onMounted(() => { onMounted(() => {

View File

@@ -40,7 +40,7 @@ export default defineComponent({
// }; // };
onMounted(() => { onMounted(() => {
getBackends(); // getBackends();
}); });
return { return {
...toRefs(state), ...toRefs(state),