amber-ui/src/layouts/DefaultLayout.vue

46 lines
1.4 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-10 08:29:08 +00:00
const currentRoute = computed(() => router.currentRoute.value.name);
const userStore = useUserStore();
// import Header from './Header.vue'
const isMobile = useIsMobile();
// const isTablet = useIsTablet()
const menuCollapsed = ref({
left: false,
});
</script>
<template>
2024-09-10 15:56:02 +00:00
<n-layout position="absolute" :has-sider="true">
2024-09-10 08:29:08 +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-10 08:29:08 +00:00
</n-layout-sider>
<n-layout-content>
<!-- <Guest v-if="!userStore.logined && currentRoute != '/auth/login'" />
<Container v-else /> -->
<Guest v-if="!userStore.logined && !currentRoute?.startsWith('/auth')" />
<Container v-else />
</n-layout-content>
</n-layout>
</template>