2024-07-30 16:19:17 +00:00
|
|
|
<script lang="ts" setup>
|
2024-08-05 13:12:22 +00:00
|
|
|
import type { GlobalThemeOverrides } from 'naive-ui';
|
|
|
|
|
2024-07-30 16:19:17 +00:00
|
|
|
import { computed } from 'vue';
|
|
|
|
|
|
|
|
import { useNaiveDesignTokens } from '@vben/hooks';
|
|
|
|
import { preferences } from '@vben/preferences';
|
|
|
|
|
|
|
|
import {
|
|
|
|
darkTheme,
|
|
|
|
dateEnUS,
|
|
|
|
dateZhCN,
|
|
|
|
enUS,
|
|
|
|
lightTheme,
|
2024-07-31 13:48:37 +00:00
|
|
|
NConfigProvider,
|
|
|
|
NMessageProvider,
|
|
|
|
NNotificationProvider,
|
2024-07-30 16:19:17 +00:00
|
|
|
zhCN,
|
|
|
|
} from 'naive-ui';
|
|
|
|
|
|
|
|
defineOptions({ name: 'App' });
|
|
|
|
|
|
|
|
const { commonTokens } = useNaiveDesignTokens();
|
|
|
|
|
|
|
|
const tokenLocale = computed(() =>
|
|
|
|
preferences.app.locale === 'zh-CN' ? zhCN : enUS,
|
|
|
|
);
|
|
|
|
const tokenDateLocale = computed(() =>
|
|
|
|
preferences.app.locale === 'zh-CN' ? dateZhCN : dateEnUS,
|
|
|
|
);
|
|
|
|
const tokenTheme = computed(() =>
|
|
|
|
preferences.theme.mode === 'dark' ? darkTheme : lightTheme,
|
|
|
|
);
|
|
|
|
|
|
|
|
const themeOverrides = computed((): GlobalThemeOverrides => {
|
|
|
|
return {
|
|
|
|
common: commonTokens,
|
|
|
|
};
|
|
|
|
});
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<template>
|
|
|
|
<NConfigProvider
|
|
|
|
:date-locale="tokenDateLocale"
|
|
|
|
:locale="tokenLocale"
|
|
|
|
:theme="tokenTheme"
|
|
|
|
:theme-overrides="themeOverrides"
|
|
|
|
class="h-full"
|
|
|
|
>
|
|
|
|
<NNotificationProvider>
|
|
|
|
<NMessageProvider>
|
|
|
|
<RouterView />
|
|
|
|
</NMessageProvider>
|
|
|
|
</NNotificationProvider>
|
|
|
|
</NConfigProvider>
|
|
|
|
</template>
|