amber-ui/src/layouts/DefaultLayout.vue

76 lines
2.2 KiB
Vue
Raw Normal View History

2024-09-10 08:29:08 +00:00
<script setup lang="ts">
import Container from "../components/Container.vue";
import { NLayout, NLayoutContent, NLayoutSider } from "naive-ui";
import { useIsMobile } from "../utils/composables.js";
import Menu from "../components/Menu.vue";
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";
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();
2024-09-10 08:29:08 +00:00
// import Header from './Header.vue'
const isMobile = useIsMobile();
// const isTablet = useIsTablet()
const menuCollapsed = ref({
left: false,
});
</script>
<template>
2024-09-12 13:50:39 +00:00
<Header
v-show="userStore.logined"
style="
min-height: var(--header-height);
position: fixed;
top: 0;
width: 100%;
z-index: 1000;
"
></Header>
<n-layout
:native-scrollbar="false"
position="absolute"
style="margin-top: var(--header-height)"
>
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> -->
2024-09-12 13:50:39 +00:00
<n-layout :native-scrollbar="false">
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')" />
2024-09-12 13:50:39 +00:00
<div v-else>
<!-- <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>