diff --git a/src/layouts/MainLayout.vue b/src/layouts/MainLayout.vue index 0bce5828..c5c8e0ba 100644 --- a/src/layouts/MainLayout.vue +++ b/src/layouts/MainLayout.vue @@ -397,6 +397,7 @@ export default { onMounted(() => { window.addEventListener('storage', handleStorageChange); + window.addEventListener('alarm-updated', fetchUnresolvedAlarmCount); // 首次加载时获取告警数量 fetchUnresolvedAlarmCount(); // 每60秒刷新一次告警数量 @@ -405,6 +406,7 @@ export default { onUnmounted(() => { window.removeEventListener('storage', handleStorageChange); + window.removeEventListener('alarm-updated', fetchUnresolvedAlarmCount); // 清除定时器 if (alarmFetchInterval) { clearInterval(alarmFetchInterval); diff --git a/src/views/alarm/AlarmList.vue b/src/views/alarm/AlarmList.vue index 9cfbe976..0f56e572 100644 --- a/src/views/alarm/AlarmList.vue +++ b/src/views/alarm/AlarmList.vue @@ -57,9 +57,15 @@ @@ -168,6 +174,7 @@ export default { const duration = parseInt(value, 10); await AlarmApi.snoozeAlarm(alarm.id, { duration_minutes: duration }); this.$message.success('告警已忽略'); + window.dispatchEvent(new CustomEvent('alarm-updated')); await this.loadAlarms(); } catch (err) { if (err !== 'cancel') {