diff --git a/src/layouts/app-layout.vue b/src/layouts/app-layout.vue index 59322f2..c08ecbe 100644 --- a/src/layouts/app-layout.vue +++ b/src/layouts/app-layout.vue @@ -8,14 +8,30 @@ function renderIcon(icon: Component): () => VNode { import { ChevronDown } from '@vicons/ionicons5'; import { AlertFilled, AreaChartOutlined, FileTextFilled, HomeFilled, LogoutOutlined, VideoCameraFilled } from '@vicons/antd'; import { NButton, NDropdown, NFlex, NIcon, NLayout, NLayoutContent, NLayoutFooter, NLayoutHeader, NLayoutSider, NMenu, NScrollbar, type DropdownOption, type MenuOption } from 'naive-ui'; -import { h, ref, type Component, type VNode } from 'vue'; +import { h, onBeforeMount, onBeforeUnmount, ref, type Component, type VNode } from 'vue'; import { RouterLink, useRoute, useRouter } from 'vue-router'; -import { useStationListQuery } from '@/composables/query/use-station-list-query'; import ThemeSwitch from '@/components/theme-switch.vue'; import { useUserStore } from '@/stores/user'; +import { useStationStore } from '@/stores/station'; +import { storeToRefs } from 'pinia'; +import { useStationListQuery } from '@/composables/query/use-station-list-query'; + +const userStore = useUserStore(); +const { userInfo } = storeToRefs(userStore); + +const stationStore = useStationStore(); +const { stationList } = storeToRefs(stationStore); useStationListQuery(); +onBeforeUnmount(() => { + stationList.value = []; +}); + +onBeforeMount(() => { + userStore.userGetInfo().catch((err) => window.$message.error(err)); +}); + const route = useRoute(); const router = useRouter(); @@ -53,7 +69,6 @@ const dropdownOptions = ref([ key: 'logout', icon: renderIcon(LogoutOutlined), onClick: async () => { - const userStore = useUserStore(); await userStore.userLogout(); router.push('/login'); }, @@ -82,7 +97,7 @@ const selectDropdownOption = (key: string, option: DropdownOption) => {