|
|
|
@ -15,10 +15,6 @@ import { $t } from '#/locales'; |
|
|
|
import { resetRoutes } from '#/router'; |
|
|
|
import { useAppStore } from '#/store'; |
|
|
|
|
|
|
|
// https://avatar.vercel.sh/vercel.svg?text=Vaa |
|
|
|
// https://avatar.vercel.sh/1 |
|
|
|
// https://avatar.vercel.sh/nextjs |
|
|
|
// https://avatar.vercel.sh/satori |
|
|
|
const notifications = ref<NotificationItem[]>([ |
|
|
|
{ |
|
|
|
avatar: 'https://avatar.vercel.sh/vercel.svg?text=VB', |
|
|
|
@ -50,6 +46,10 @@ const notifications = ref<NotificationItem[]>([ |
|
|
|
}, |
|
|
|
]); |
|
|
|
|
|
|
|
const showDot = computed(() => |
|
|
|
notifications.value.some((item) => !item.isRead), |
|
|
|
); |
|
|
|
|
|
|
|
const menus = computed(() => [ |
|
|
|
{ |
|
|
|
handler: () => { |
|
|
|
@ -92,6 +92,10 @@ async function handleLogout() { |
|
|
|
function handleNoticeClear() { |
|
|
|
notifications.value = []; |
|
|
|
} |
|
|
|
|
|
|
|
function handleMakeAll() { |
|
|
|
notifications.value.forEach((item) => (item.isRead = true)); |
|
|
|
} |
|
|
|
</script> |
|
|
|
|
|
|
|
<template> |
|
|
|
@ -108,9 +112,10 @@ function handleNoticeClear() { |
|
|
|
</template> |
|
|
|
<template #notification> |
|
|
|
<Notification |
|
|
|
:dot="showDot" |
|
|
|
:notifications="notifications" |
|
|
|
dot |
|
|
|
@clear="handleNoticeClear" |
|
|
|
@make-all="handleMakeAll" |
|
|
|
/> |
|
|
|
</template> |
|
|
|
</BasicLayout> |
|
|
|
|