App.vue 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <template>
  2. <a-config-provider :locale="locale" :auto-insert-space-in-button="false">
  3. <RouterView v-if="isRouterReady">
  4. <template #default="{ Component, route }">
  5. <component
  6. :is="isFullScreen ? Component : BaseLayout"
  7. v-bind="isFullScreen ? {} : { content: Component }"
  8. >
  9. <keep-alive>
  10. <component
  11. :is="Component"
  12. v-if="route.meta.keepAlive"
  13. :key="route.meta.usePathKey ? route.path : route.name"
  14. />
  15. </keep-alive>
  16. <component
  17. :is="Component"
  18. v-if="!route.meta.keepAlive"
  19. :key="route.meta.usePathKey ? route.path : route.name"
  20. />
  21. </component>
  22. </template>
  23. </RouterView>
  24. </a-config-provider>
  25. </template>
  26. <script setup lang="ts">
  27. import { computed, ref, onMounted } from 'vue'
  28. import BaseLayout from '@/layout/index.vue'
  29. import { useRoute, useRouter } from 'vue-router'
  30. import zhCN from 'ant-design-vue/es/locale/zh_CN'
  31. import dayjs from 'dayjs'
  32. import 'dayjs/locale/zh-cn'
  33. dayjs.locale('zh-cn')
  34. const locale = zhCN
  35. const route = useRoute()
  36. const router = useRouter()
  37. const isRouterReady = ref(false)
  38. onMounted(() => {
  39. router.isReady().then(() => {
  40. isRouterReady.value = true
  41. // 环境信息
  42. console.log(`🚀CurrentMode: ${import.meta.env.MODE}`)
  43. console.log(`🚀HostAPI: ${import.meta.env.VITE_APP_HOST}`)
  44. console.log(`🚀ProxyAPI: ${import.meta.env.VITE_APP_HOST}`)
  45. })
  46. })
  47. const isFullScreen = computed(() => Boolean(route.meta?.isFullScreen))
  48. console.log('🚀App route🚀', route)
  49. </script>
  50. <style scoped lang="less"></style>