App.vue 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <script setup lang="ts">
  2. import {RouterView} from 'vue-router';
  3. import {useI18n} from 'vue-i18n';
  4. import {
  5. NConfigProvider,
  6. zhCN,
  7. dateZhCN,
  8. koKR,
  9. dateKoKR,
  10. type GlobalThemeOverrides,
  11. NMessageProvider,
  12. } from 'naive-ui';
  13. import {computed} from 'vue';
  14. import {lightVariable} from '@utils';
  15. defineOptions({
  16. name: 'App',
  17. });
  18. const {locale} = useI18n();
  19. const uiLocale = computed(function() {
  20. if (locale.value === 'zh') return {locale: zhCN, dateLocale: dateZhCN};
  21. return {locale: koKR, dateLocale: dateKoKR};
  22. });
  23. const themeConfig: GlobalThemeOverrides = {
  24. common: {
  25. primaryColor: lightVariable.primaryColor,
  26. primaryColorHover: lightVariable.primaryColor4,
  27. primaryColorPressed: lightVariable.primaryColor,
  28. primaryColorSuppl: lightVariable.primaryColor,
  29. infoColor: lightVariable.accentColor,
  30. infoColorHover: lightVariable.accentColor6,
  31. infoColorPressed: lightVariable.accentColor,
  32. infoColorSuppl: lightVariable.accentColor,
  33. },
  34. Scrollbar: {
  35. color: lightVariable.primaryColor8,
  36. colorHover: lightVariable.primaryColor,
  37. },
  38. Menu: {
  39. itemIconColor: lightVariable.tipFontColor,
  40. itemIconColorActive: lightVariable.primaryColor,
  41. itemIconColorHover: lightVariable.primaryColor,
  42. itemColorHover: lightVariable.primaryColor9,
  43. itemTextColor: lightVariable.subtitleFontColor,
  44. itemTextColorHover: lightVariable.primaryColor,
  45. itemIconColorCollapsed: lightVariable.tipFontColor,
  46. },
  47. Layout: {
  48. color: lightVariable.backgroundColor,
  49. siderColor: lightVariable.layoutBackgroundColor,
  50. siderBorderColor: lightVariable.backgroundColor,
  51. },
  52. Card: {
  53. borderRadius: '8px',
  54. },
  55. };
  56. </script>
  57. <template>
  58. <NConfigProvider v-bind="uiLocale" :themeOverrides="themeConfig">
  59. <NMessageProvider>
  60. <RouterView />
  61. </NMessageProvider>
  62. </NConfigProvider>
  63. </template>