From 810ee7f5b8a12bb0ffcac15028b57bf219b20692 Mon Sep 17 00:00:00 2001 From: linxi <957440651@qq.com> Date: Thu, 5 Feb 2026 16:11:17 +0800 Subject: [PATCH] =?UTF-8?q?Fix=EF=BC=9A4895=20=E3=80=90=E5=95=86=E5=9F=8E?= =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E3=80=91=E7=94=A8=E6=88=B7=E7=9C=8B?= =?UTF-8?q?=E5=AE=8C=E6=96=B0=E6=B6=88=E6=81=AF=E5=90=8E=EF=BC=8C=E9=A6=96?= =?UTF-8?q?=E9=A1=B5=E7=BA=A2=E7=82=B9=E6=95=B0=E5=AD=97=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E6=9C=AA=E6=B6=88=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/xdd-tabbar/index.vue | 22 +++++++++++++++++++++- pages/cart.vue | 3 ++- pages/cloud/haveFun.vue | 1 + pages/home/index.vue | 3 ++- pages/user/User/index.vue | 1 + pkg_common/views/roomLogs.vue | 7 +++++-- 6 files changed, 32 insertions(+), 5 deletions(-) diff --git a/components/xdd-tabbar/index.vue b/components/xdd-tabbar/index.vue index d2e7a04..6bc086d 100644 --- a/components/xdd-tabbar/index.vue +++ b/components/xdd-tabbar/index.vue @@ -124,6 +124,7 @@ export default { this.fetchUnreadCount() } else { this.unreadCount = 0 + uni.$emit('updateUnreadMessageCount', 0) } } }, @@ -133,8 +134,23 @@ export default { if (this.isLogin) { this.fetchUnreadCount() } + uni.$on('updateUnreadMessageCount', this.handleUpdateUnreadMessageCount) + }, + beforeDestroy() { + uni.$off('updateUnreadMessageCount', this.handleUpdateUnreadMessageCount) }, methods: { + handleUpdateUnreadMessageCount(count) { + if (!this.isLogin) { + this.unreadCount = 0 + return + } + if (typeof count === 'number') { + this.unreadCount = count + } else { + this.fetchUnreadCount() + } + }, getElementData(el) { const query = uni.createSelectorQuery().in(this) query.select(el).boundingClientRect().exec((res)=> { @@ -155,12 +171,16 @@ export default { getUnreadMessageCount().then(res => { const { success, data } = res if (success) { - this.unreadCount = data || 0 + const count = data || 0 + this.unreadCount = count + uni.$emit('updateUnreadMessageCount', count) } else { this.unreadCount = 0 + uni.$emit('updateUnreadMessageCount', 0) } }).catch(() => { this.unreadCount = 0 + uni.$emit('updateUnreadMessageCount', 0) }) }, gotoPage(url, type = 1, index) { diff --git a/pages/cart.vue b/pages/cart.vue index c509047..542639b 100644 --- a/pages/cart.vue +++ b/pages/cart.vue @@ -440,6 +440,7 @@ export default { }, onShow() { this.isEdit = false + uni.$emit('updateUnreadMessageCount') if (!this.isLoad) { return } @@ -1222,4 +1223,4 @@ view { background-color: #C52733; } } - \ No newline at end of file + diff --git a/pages/cloud/haveFun.vue b/pages/cloud/haveFun.vue index 3a60a49..c8afdc6 100644 --- a/pages/cloud/haveFun.vue +++ b/pages/cloud/haveFun.vue @@ -242,6 +242,7 @@ export default { this.queryGuide('findFunIndex') }, onShow() { + uni.$emit('updateUnreadMessageCount') const memCityName = uni.getStorageSync('cityName') // this.typeIndex = 0 this.name = '' diff --git a/pages/home/index.vue b/pages/home/index.vue index 9323884..be1d07f 100644 --- a/pages/home/index.vue +++ b/pages/home/index.vue @@ -497,6 +497,7 @@ export default { }, onShow() { this.pageToShowHandle() + uni.$emit('updateUnreadMessageCount') }, onHide() { this.pageToHideHandle() @@ -2002,4 +2003,4 @@ export default { .price-wrap{ } - \ No newline at end of file + diff --git a/pages/user/User/index.vue b/pages/user/User/index.vue index ea9d43b..3d2fa91 100644 --- a/pages/user/User/index.vue +++ b/pages/user/User/index.vue @@ -402,6 +402,7 @@ export default { } }, onShow() { + uni.$emit('updateUnreadMessageCount') if (this.$store.getters.token) { this.isNoLogin = false uni.showLoading({ diff --git a/pkg_common/views/roomLogs.vue b/pkg_common/views/roomLogs.vue index 13a1046..d2ffbc0 100644 --- a/pkg_common/views/roomLogs.vue +++ b/pkg_common/views/roomLogs.vue @@ -111,6 +111,7 @@ export default { */ toMessage() { markMessagesAsRead().then(res => { + uni.$emit('updateUnreadMessageCount', 0) uni.navigateTo({url: '/pkg_common/views/message'}) }) }, @@ -120,7 +121,9 @@ export default { */ getUnreadMessageCount(item) { getUnreadMessageCount().then(res => { - this.unreadNum = res.data + const count = res.data || 0 + this.unreadNum = count + uni.$emit('updateUnreadMessageCount', count) }) }, goRoom(item) { @@ -279,4 +282,4 @@ export default { box-sizing: border-box; padding: 4rpx; } - \ No newline at end of file +