36 lines
1.1 KiB
Vue
36 lines
1.1 KiB
Vue
|
|
<template>
|
||
|
|
<el-config-provider :locale="i18nLocale" :button="config" :size="assemblySize">
|
||
|
|
<router-view></router-view>
|
||
|
|
</el-config-provider>
|
||
|
|
</template>
|
||
|
|
|
||
|
|
<script setup lang="ts">
|
||
|
|
import { reactive, computed } from "vue";
|
||
|
|
import { GlobalStore } from "@/stores";
|
||
|
|
import { useTheme } from "@/hooks/useTheme";
|
||
|
|
import { getBrowserLang } from "@/utils/util";
|
||
|
|
import { ElConfigProvider } from "element-plus";
|
||
|
|
import zhCn from "element-plus/es/locale/lang/zh-cn";
|
||
|
|
import en from "element-plus/es/locale/lang/en";
|
||
|
|
|
||
|
|
// 初始化主题配置
|
||
|
|
const { initTheme } = useTheme();
|
||
|
|
initTheme();
|
||
|
|
|
||
|
|
const globalStore = GlobalStore();
|
||
|
|
// 配置element按钮文字中间是否有空格
|
||
|
|
const config = reactive({
|
||
|
|
autoInsertSpace: false
|
||
|
|
});
|
||
|
|
|
||
|
|
// element 语言配置
|
||
|
|
const i18nLocale = computed(() => {
|
||
|
|
if (globalStore.language && globalStore.language == "zh") return zhCn;
|
||
|
|
if (globalStore.language == "en") return en;
|
||
|
|
return getBrowserLang() == "zh" ? zhCn : en;
|
||
|
|
});
|
||
|
|
|
||
|
|
// 配置全局组件大小
|
||
|
|
const assemblySize = computed(() => globalStore.assemblySize);
|
||
|
|
</script>
|