31 lines
577 B
Vue
31 lines
577 B
Vue
<template>
|
|
<div class="flex flex-col min-h-screen">
|
|
<!-- 页面加载动画 -->
|
|
<div v-if="pageLoading" class="page-loader">
|
|
<div class="loader-spinner"></div>
|
|
</div>
|
|
|
|
<!-- 导航栏 -->
|
|
<NavBar />
|
|
|
|
<!-- 页面内容 -->
|
|
<main class="flex-grow">
|
|
<slot />
|
|
</main>
|
|
|
|
<!-- 页脚 -->
|
|
<FooterSection />
|
|
</div>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import { ref, onMounted } from 'vue';
|
|
|
|
const pageLoading = ref(true);
|
|
|
|
onMounted(() => {
|
|
setTimeout(() => {
|
|
pageLoading.value = false;
|
|
}, 500);
|
|
});
|
|
</script> |