diff --git a/src/views/MainLayout.vue b/src/views/MainLayout.vue index e7f3b832..3439cb3f 100644 --- a/src/views/MainLayout.vue +++ b/src/views/MainLayout.vue @@ -14,6 +14,7 @@ const { toc } = storeToRefs(manualStore); const { loader } = storeToRefs(dataStore); const role = ref("user"); +const queryRole = route.query.role as string; const drawerMini = ref(false); const drawerMain = ref(false); @@ -38,10 +39,30 @@ const toggleBtnLeft = () => { } }; +function setLocalStorageItem(key: string, value: string): void { + localStorage.setItem(key, value); +} + +function getLocalStorageItem(key: string): string | null { + return localStorage.getItem(key); +} + onMounted(async () => { { const data = await fetch("/toc.json").then((r) => r.json()); - role.value = route.query.role as string; + + if (!!queryRole) { + setLocalStorageItem("role", queryRole); + role.value = queryRole; + } else { + const getLocalRole = getLocalStorageItem("role"); + if (getLocalRole !== null) { + role.value = getLocalRole; + } else { + role.value = "user"; + } + } + menuList.value = data; if (role.value !== "admin") { menuList.value = data.filter(