diff --git a/src/App.vue b/src/App.vue index 689e491..6f4f4e6 100644 --- a/src/App.vue +++ b/src/App.vue @@ -3,9 +3,12 @@ import { RouterView } from "vue-router"; import Navbar from "./components/navbar/Navbar.vue"; import useUserInfoStore from "@/stores/useUserInfoStore"; import { ref, provide, onUnmounted, onMounted } from "vue"; +import { getAlertLog } from "@/apis/alert"; +import dayjs from "dayjs"; const store = useUserInfoStore(); +const alerts = ref([]); let isToastOpen = ref({ open: false, content: "", @@ -24,6 +27,16 @@ const cancelToastOpen = () => { }; }; +let alertInterval = null; +const getAlert = async () => { + const res = await getAlertLog({ + isRecovery: 1, + Start_date: dayjs().subtract(30, "day").format("YYYY-MM-DD"), + End_date: dayjs().format("YYYY-MM-DD"), + }); + alerts.value = (res.data || []).map((d) => ({ ...d, key: d.id })); +}; + const openToast = (status, content, to = "body", confirm = null) => { isToastOpen.value = { open: true, @@ -33,8 +46,19 @@ const openToast = (status, content, to = "body", confirm = null) => { confirm, }; }; + +onMounted(() => { + getAlert(); + alertInterval = setInterval(getAlert, 30 * 1000); +}); + +onUnmounted(() => { + if (alertInterval) clearInterval(alertInterval); +}); + provide("app_toast", { openToast, cancelToastOpen }); provide("app_toggle", { forgeLock, toggleForgeLock }); +provide("app_alerts", alerts);