zhengyiming
2025-02-21 a3be4bd8a96df6b27e4f0d3883d661d9cb64d1fc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<template>
  <router-view v-slot="{ Component, route }">
    <!-- <transition name="fade-transform"> -->
    <!-- <keep-alive :include="cachedViews"> -->
    <keep-alive>
      <component :is="Component" :key="route.fullPath" />
    </keep-alive>
    <!-- </transition> -->
  </router-view>
</template>
 
<script setup lang="ts">
// import DefaultLayout from '@bole-core/defaultLayout';
import PrettyLayout from '@bole-core/pretty-layout';
import { useAppStore } from '@/store/modules/app';
import { usePermissionStore } from '@/store/modules/permission';
import { useErrorLogStore } from '@/store/modules/errorLog';
import { useTagsViewStore } from '@/store/modules/tagsView';
import { useUserStore } from '@/store/modules/user';
import Config from '@config/config';
// import '@bole-core/defaultLayout/dist/style.css';
import '@bole-core/pretty-layout/dist/styles/index.scss';
import { ThemeColorName } from '@/constants';
import { ThemeManager } from '@/utils';
import { openLink } from '@bole-core/core';
import Logo from '@/assets/logo.png';
 
defineOptions({
  name: 'Layout',
});
 
console.log('Layout: ');
const router = useRouter();
 
const permissionStore = usePermissionStore();
const appStore = useAppStore();
const errorLogStore = useErrorLogStore();
const tagsViewStore = useTagsViewStore();
const userStore = useUserStore();
 
const { isMobile } = storeToRefs(appStore);
const { routes } = storeToRefs(permissionStore);
const { visitedViews, cachedViews } = storeToRefs(tagsViewStore);
const { name } = storeToRefs(userStore);
 
const themeMap = ThemeManager.getThemeMap();
 
onBeforeMount(() => {
  const themeName = ThemeManager.getStorageThemeName();
  handleChangeTheme(themeName);
});
 
function handleChangeTheme(themeName: ThemeColorName) {
  ThemeManager.setTheme(themeName);
  appStore.setTheme(themeName);
}
 
function logout() {
  userStore.logout();
  router.push(`/login?redirect=/`);
}
function handleLoginTencent() {
  openLink(router.resolve({ name: 'ChatView' }).fullPath);
}
</script>
 
<style lang="scss">
// @import '@bole-core/defaultLayout/dist/style.css';
</style>