feat(notice): 新增公告优先级和未读状态功能,优化公告展示逻辑

This commit is contained in:
2025-12-30 22:49:03 +08:00
parent 76c324b0df
commit 88a4e58130
21 changed files with 1520 additions and 13 deletions

View File

@@ -0,0 +1,38 @@
// 公告帮助工具类
// 用于登录后自动显示公告弹窗
export function initNoticePopupAfterLogin() {
// 监听路由变化,在登录成功后显示公告
const token = localStorage.getItem('Admin-Token') || sessionStorage.getItem('Admin-Token')
if (!token) return
// 检查是否已经显示过公告
if (sessionStorage.getItem('notice_popup_shown')) return
// 延迟执行,确保页面完全加载
setTimeout(() => {
try {
// 查找公告弹窗组件并触发显示
const noticeElements = document.querySelectorAll('[class*="notice-popup"]')
if (noticeElements.length > 0) {
// 触发点击事件或查找内部方法
const event = new CustomEvent('trigger-notice-popup', { detail: { autoShow: true } })
window.dispatchEvent(event)
sessionStorage.setItem('notice_popup_shown', 'true')
}
} catch (error) {
console.error('自动显示公告弹窗失败:', error)
}
}, 2000)
}
// 重置公告弹窗显示状态(用于测试)
export function resetNoticePopupState() {
sessionStorage.removeItem('notice_popup_shown')
}
// 手动触发公告弹窗
export function triggerNoticePopup() {
const event = new CustomEvent('trigger-notice-popup', { detail: { autoShow: false } })
window.dispatchEvent(event)
}