Переглянути джерело

feat(Header/Message): 添加获取消息功能

* 添加 `getMessage` 方法用于获取消息列表
* 在 `onMounted` 生命周期钩子中调用 `getMessage` 方法
* 在 `EventSource` 的 `onmessage` 和 `remind` 事件中调用 `getMessage` 方法
* 优化消息获取逻辑,确保消息总数更新
luoyali 9 місяців тому
батько
коміт
258205799c
1 змінених файлів з 8 додано та 1 видалено
  1. 8 1
      src/layout/components/Header/components/Message.vue

+ 8 - 1
src/layout/components/Header/components/Message.vue

@@ -69,7 +69,9 @@ const tabsConfig = reactive({
 })
 const activeTab = ref('noticeList')
 const total = ref(0)
-message.getMessage().then(res => {
+
+const getMessage = () => {
+	message.getMessage().then(res => {
 	let _total = 0
 	Object.keys(tabsConfig).map(key => {
 		if (res[key]) {
@@ -81,6 +83,7 @@ message.getMessage().then(res => {
 	})
 	total.value = _total
 })
+}
 
 const jumpMessageInfo = () => {
 	router.push('/message/list')
@@ -90,12 +93,15 @@ const jumpMessageDetail = (id: any) => {
 	router.push('/message/list?id=' + id)
 }
 
+getMessage()
+
 onMounted(() => {
 	eventSource = new EventSourcePolyfill(serviceUrlApi.value, {
 		headers: { accessToken: token }
 	})
 
 	eventSource.onmessage = (event: MessageEvent) => {
+		getMessage()
 		// const data = JSON.parse()
 		console.log('Received message-----:', event)
 
@@ -117,6 +123,7 @@ onMounted(() => {
 	}
 
 	eventSource.addEventListener('remind', (event: MessageEvent) => {
+		getMessage()
 		const data = JSON.parse(event.data)
 		console.log('Received remind event:', event)
 		// 处理接收到的提醒消息