| | |
| | | /> |
| | | |
| | | <!-- 顶部菜单 --> |
| | | <ArtHorizontalMenu v-if="isTopMenu" :list="menuList" /> |
| | | <ArtHorizontalMenu v-if="isTopMenu" :key="topMenuRenderKey" :list="menuList" /> |
| | | |
| | | <!-- 混合菜单-顶部 --> |
| | | <ArtMixedMenu v-if="isTopLeftMenu" :list="menuList" /> |
| | | <ArtMixedMenu v-if="isTopLeftMenu" :key="topMenuRenderKey" :list="menuList" /> |
| | | </div> |
| | | |
| | | <div class="flex-c gap-2.5"> |
| | |
| | | import { themeAnimation } from '@/utils/ui/animation' |
| | | |
| | | import { useI18n } from 'vue-i18n' |
| | | import { useRouter } from 'vue-router' |
| | | import { useRoute, useRouter } from 'vue-router' |
| | | import { useFullscreen, useWindowSize } from '@vueuse/core' |
| | | import { MenuTypeEnum } from '@/enums/appEnum' |
| | | import { useSettingStore } from '@/store/modules/setting' |
| | |
| | | import { useHeaderBar } from '@/hooks/core/useHeaderBar' |
| | | defineOptions({ name: 'ArtHeaderBar' }) |
| | | const isWindows = navigator.userAgent.includes('Windows') |
| | | const route = useRoute() |
| | | const router = useRouter() |
| | | const { locale } = useI18n() |
| | | const { width } = useWindowSize() |
| | |
| | | const isDualMenu = computed(() => menuType.value === MenuTypeEnum.DUAL_MENU) |
| | | const isTopMenu = computed(() => menuType.value === MenuTypeEnum.TOP) |
| | | const isTopLeftMenu = computed(() => menuType.value === MenuTypeEnum.TOP_LEFT) |
| | | const topMenuRenderKey = computed(() => { |
| | | return `${menuType.value}:${String(route.meta.activePath || route.path)}` |
| | | }) |
| | | const { isFullscreen, toggle: toggleFullscreen } = useFullscreen() |
| | | onMounted(() => { |
| | | initLanguage() |