Files
nl_cms-view/src/layouts/MainLayout.vue

31 lines
743 B
Vue
Raw Normal View History

2025-07-29 12:43:09 +08:00
<template>
2025-07-31 10:00:19 +08:00
<div :class="['min-h-screen transition-colors duration-300', themeClasses]">
<!-- 头部导航 -->
2025-07-29 12:43:09 +08:00
<Header />
2025-07-31 10:00:19 +08:00
<!-- 主要内容区域 -->
<main class="pt-16">
2025-07-29 12:43:09 +08:00
<router-view />
</main>
2025-07-31 10:00:19 +08:00
<!-- 底部 -->
2025-07-29 12:43:09 +08:00
<Footer />
</div>
</template>
<script setup>
2025-07-31 10:00:19 +08:00
import { computed } from 'vue'
import { useThemeStore } from '@/stores/theme'
2025-07-29 12:43:09 +08:00
import Header from './Header.vue'
import Footer from './Footer.vue'
2025-07-31 10:00:19 +08:00
const themeStore = useThemeStore()
const themeClasses = computed(() => {
if (themeStore.isDark) {
return 'bg-gradient-to-br from-gray-900 via-gray-800 to-gray-900 text-white'
} else {
return 'bg-gradient-to-br from-gray-50 via-blue-50 to-purple-50 text-gray-900'
}
})
2025-07-29 12:43:09 +08:00
</script>