App.vue 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <script setup lang="ts">
  2. import { NConfigProvider, NGlobalStyle } from 'naive-ui'
  3. import { NaiveProvider } from '@/components/common'
  4. import { useTheme } from '@/hooks/useTheme'
  5. import { useLanguage } from '@/hooks/useLanguage'
  6. import { emitter } from '@/plugins'
  7. import { onMounted, ref, provide } from 'vue'
  8. import { useRouter } from 'vue-router'
  9. import { useBasicLayout } from '@/hooks/useBasicLayout'
  10. const { theme, themeOverrides } = useTheme()
  11. const { language } = useLanguage()
  12. const { isMobile } = useBasicLayout()
  13. const router = useRouter()
  14. emitter.on('changeVipShow', res => {
  15. console.log(res)
  16. if (isMobile.value) {
  17. router.push('/vip')
  18. } else {
  19. emitter.emit('vipShowChat', !!res)
  20. }
  21. })
  22. function login() {
  23. if (isMobile.value) {
  24. router.replace({ name: 'login' })
  25. } else {
  26. router.replace({ name: 'home', query: { login: 'true' } })
  27. }
  28. }
  29. provide('login', login)
  30. </script>
  31. <template>
  32. <NConfigProvider
  33. class="h-full"
  34. :theme="theme"
  35. :theme-overrides="themeOverrides"
  36. :locale="language"
  37. inline-theme-disabled
  38. >
  39. <NGlobalStyle />
  40. <NaiveProvider>
  41. <RouterView />
  42. </NaiveProvider>
  43. </NConfigProvider>
  44. </template>