amber-ui/src/layouts/DefaultLayout.vue

79 lines
2.2 KiB
Vue
Raw Normal View History

2024-09-10 08:29:08 +00:00
<script setup lang="ts">
2024-09-13 01:07:34 +00:00
import { NLayout } from "naive-ui";
2024-09-10 08:29:08 +00:00
import { useUserStore } from "../stores/user";
import Guest from "../pages/guest/index.vue";
2024-09-11 16:50:46 +00:00
import router from "../router";
2024-09-12 05:49:24 +00:00
import Header from "./Header.vue";
import element from "@/config/element";
import { useIsMobile } from "@/utils/composables";
2024-09-10 08:29:08 +00:00
const currentRoute = computed(() => router.currentRoute.value.name);
const userStore = useUserStore();
2024-09-12 13:50:39 +00:00
const route = useRoute();
const isMobile = useIsMobile();
const mainContainer = ref();
onMounted(() => {
element.mainContainer = mainContainer.value;
});
2024-09-10 08:29:08 +00:00
</script>
<template>
2024-09-12 13:50:39 +00:00
<Header
v-if="userStore.logined"
2024-09-12 13:50:39 +00:00
style="
min-height: var(--header-height);
position: fixed;
top: 0;
width: 100%;
z-index: 1000;
"
></Header>
<n-layout
:native-scrollbar="isMobile"
2024-09-12 13:50:39 +00:00
position="absolute"
:style="userStore.logined ? 'margin-top: var(--header-height)' : ''"
ref="mainContainer"
2024-09-12 13:50:39 +00:00
>
2024-09-12 03:16:30 +00:00
<!-- <n-layout-sider
2024-09-10 15:56:02 +00:00
v-if="userStore.logined && !isMobile"
2024-09-10 08:29:08 +00:00
:collapsed-width="0"
:native-scrollbar="false"
:show-collapsed-content="false"
:width="240"
bordered
collapse-mode="width"
show-trigger="arrow-circle"
class="select-none"
@collapse="menuCollapsed.left = true"
@expand="menuCollapsed.left = false"
>
2024-09-10 15:56:02 +00:00
<Menu v-show="!isMobile"></Menu>
2024-09-12 03:16:30 +00:00
</n-layout-sider> -->
<n-back-top v-if="!isMobile" :right="100" />
2024-09-12 13:50:39 +00:00
<n-layout :native-scrollbar="isMobile">
2024-09-10 08:29:08 +00:00
<!-- <Guest v-if="!userStore.logined && currentRoute != '/auth/login'" />
<Container v-else /> -->
<Guest v-if="!userStore.logined && !currentRoute?.startsWith('/auth')" />
<div v-else :class="userStore.logined ? 'pt-2' : ''">
2024-09-12 13:50:39 +00:00
<!-- <div style="height: calc(var(--header-height)*2)"></div> -->
<router-view :key="route.path"> </router-view>
<!-- <Container /> -->
<!-- <div class="p-4 pt-0 pb-0 mb-0 h-screen">
<router-view v-slot="{ Component }" :key="route.path">
<transition mode="out-in" name="fade">
<component :is="Component" />
</transition>
</router-view>
</div> -->
</div>
</n-layout>
2024-09-10 08:29:08 +00:00
</n-layout>
</template>