mirror of
https://github.com/yangjian102621/geekai.git
synced 2025-09-18 09:16:39 +08:00
60 lines
1.7 KiB
Vue
60 lines
1.7 KiB
Vue
<template>
|
|
<div class="admin-home" v-if="isLogin">
|
|
<admin-sidebar v-model:theme="theme"/>
|
|
<div class="content-box" :class="{ 'content-collapse': sidebar.collapse }">
|
|
<admin-header v-model:theme="theme" @changeTheme="changeTheme"/>
|
|
<admin-tags v-model:theme="theme"/>
|
|
<div :class="'content '+theme" :style="{height:contentHeight+'px'}">
|
|
<router-view v-slot="{ Component }">
|
|
<transition name="move" mode="out-in">
|
|
<keep-alive :include="tags.nameList">
|
|
<component :is="Component"></component>
|
|
</keep-alive>
|
|
</transition>
|
|
</router-view>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
<script setup>
|
|
import {useSidebarStore} from '@/store/sidebar';
|
|
import {useTagsStore} from '@/store/tags';
|
|
import AdminHeader from "@/components/admin/AdminHeader.vue";
|
|
import AdminSidebar from "@/components/admin/AdminSidebar.vue";
|
|
import AdminTags from "@/components/admin/AdminTags.vue";
|
|
import {useRouter} from "vue-router";
|
|
import {checkAdminSession} from "@/store/cache";
|
|
import {ref} from "vue";
|
|
import {getAdminTheme, setAdminTheme} from "@/store/system";
|
|
|
|
const sidebar = useSidebarStore();
|
|
const tags = useTagsStore();
|
|
const isLogin = ref(false)
|
|
const contentHeight = window.innerHeight - 80
|
|
const theme = ref(getAdminTheme())
|
|
|
|
// 获取会话信息
|
|
const router = useRouter();
|
|
checkAdminSession().then(() => {
|
|
isLogin.value = true
|
|
}).catch(() => {
|
|
router.replace('/admin/login')
|
|
})
|
|
|
|
const changeTheme = (value) => {
|
|
if (value) {
|
|
theme.value = 'dark'
|
|
} else {
|
|
theme.value = 'light'
|
|
}
|
|
setAdminTheme(theme.value)
|
|
}
|
|
|
|
</script>
|
|
|
|
<style scoped lang="stylus">
|
|
@import '@/assets/css/color-dark.styl';
|
|
@import '@/assets/css/main.styl';
|
|
@import '@/assets/iconfont/iconfont.css';
|
|
</style>
|