|
@@ -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>
|