| <template> | 
|   <PrettyLayout | 
|     :is-mobile="isMobile" | 
|     :routes="routes" | 
|     :title="title" | 
|     :visited-views="visitedViews" | 
|     :cached-views="cachedViews" | 
|     :username="name" | 
|     :themeMap="themeMap" | 
|     :logo="Logo" | 
|     :showModifyPasswordBtn="false" | 
|     :showMessageBtn="false" | 
|     @on-add-view="tagsViewStore.addView" | 
|     @on-add-visited-view="tagsViewStore.addVisitedView" | 
|     @on-clear-error-log="errorLogStore.clearErrorLog" | 
|     @on-del-all-views="tagsViewStore.delAllViews" | 
|     @on-del-cached-view="tagsViewStore.delCachedView" | 
|     @on-del-others-views="tagsViewStore.delOthersViews" | 
|     @on-del-view="tagsViewStore.delView" | 
|     @on-logout="logout" | 
|     @on-toggle-side-bar="appStore.toggleSideBar" | 
|     @on-close-side-bar="appStore.closeSideBar" | 
|     @on-update-visited-view="tagsViewStore.updateVisitedView" | 
|     @on-change-theme="handleChangeTheme" | 
|   > | 
|   </PrettyLayout> | 
| </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, { getAppSetting } from '@config/config'; | 
| // import '@bole-core/defaultLayout/dist/style.css'; | 
| import '@bole-core/pretty-layout/dist/styles/index.scss'; | 
| import { ThemeColorName, AppType } from '@/constants'; | 
| import { ThemeManager } from '@/utils'; | 
| import { openLink } from '@bole-core/core'; | 
| import Logo from '@/assets/logo.png'; | 
|   | 
| const title = getAppSetting(AppType).MenuTitle; | 
|   | 
| defineOptions({ | 
|   name: '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> |