Files
pqs-9100_client/frontend/src/App.vue

56 lines
1.5 KiB
Vue
Raw Normal View History

2024-08-07 21:48:24 +08:00
<template>
2024-08-27 14:01:26 +08:00
<!--element-plus语言国际化全局修改为中文-->
<el-config-provider
:locale="locale"
:size="assemblySize"
:button="buttonConfig"
>
<router-view :key="$route.fullPath" />
</el-config-provider>
2024-08-07 21:48:24 +08:00
</template>
2024-08-27 14:01:26 +08:00
<script lang="ts" setup>
2024-08-07 21:48:24 +08:00
defineOptions({
2024-08-27 14:01:26 +08:00
name: "App",
});
2024-08-22 11:27:06 +08:00
import { onMounted, reactive, computed } from "vue";
import { useI18n } from "vue-i18n";
import { getBrowserLang } from "@/utils";
import { useTheme } from "@/hooks/useTheme";
import { ElConfigProvider } from "element-plus";
import { LanguageType } from "./stores/interface";
import { useGlobalStore } from "@/stores/modules/global";
import en from "element-plus/es/locale/lang/en";
import zhCn from "element-plus/es/locale/lang/zh-cn";
const globalStore = useGlobalStore();
// init theme
const { initTheme } = useTheme();
initTheme();
// init language
const i18n = useI18n();
onMounted(() => {
const language = globalStore.language ?? getBrowserLang();
i18n.locale.value = language;
globalStore.setGlobalState("language", language as LanguageType);
});
// element language
const locale = computed(() => {
if (globalStore.language == "zh") return zhCn;
if (globalStore.language == "en") return en;
return getBrowserLang() == "zh" ? zhCn : en;
});
// element assemblySize
const assemblySize = computed(() => globalStore.assemblySize);
// element button config
const buttonConfig = reactive({ autoInsertSpace: false });
2024-08-07 21:48:24 +08:00
2024-08-27 14:01:26 +08:00
document.getElementById("loadingPage")?.remove();
2024-08-07 21:48:24 +08:00
</script>
2024-08-27 14:01:26 +08:00
<style scoped></style>