2024-08-07 21:48:24 +08:00
|
|
|
|
<template>
|
2024-10-11 08:49:31 +08:00
|
|
|
|
<!--element-plus语言国际化,全局修改为中文-->
|
|
|
|
|
|
<el-config-provider
|
|
|
|
|
|
:locale='locale'
|
|
|
|
|
|
:size='assemblySize'
|
|
|
|
|
|
:button='buttonConfig'
|
|
|
|
|
|
>
|
2025-01-15 08:42:41 +08:00
|
|
|
|
<router-view />
|
2024-10-11 08:49:31 +08:00
|
|
|
|
</el-config-provider>
|
2024-08-07 21:48:24 +08:00
|
|
|
|
</template>
|
|
|
|
|
|
|
2024-10-11 08:49:31 +08:00
|
|
|
|
<script lang='ts' setup>
|
2024-08-07 21:48:24 +08:00
|
|
|
|
defineOptions({
|
2024-10-11 08:49:31 +08:00
|
|
|
|
name: 'App',
|
|
|
|
|
|
})
|
|
|
|
|
|
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()
|
2024-08-22 11:27:06 +08:00
|
|
|
|
|
|
|
|
|
|
// init theme
|
2024-10-11 08:49:31 +08:00
|
|
|
|
const { initTheme } = useTheme()
|
|
|
|
|
|
initTheme()
|
2024-08-22 11:27:06 +08:00
|
|
|
|
|
|
|
|
|
|
// init language
|
2024-10-11 08:49:31 +08:00
|
|
|
|
const i18n = useI18n()
|
2024-08-22 11:27:06 +08:00
|
|
|
|
onMounted(() => {
|
2024-10-11 08:49:31 +08:00
|
|
|
|
const language = globalStore.language ?? getBrowserLang()
|
|
|
|
|
|
i18n.locale.value = language
|
|
|
|
|
|
globalStore.setGlobalState('language', language as LanguageType)
|
|
|
|
|
|
})
|
2024-08-22 11:27:06 +08:00
|
|
|
|
|
|
|
|
|
|
// element language
|
|
|
|
|
|
const locale = computed(() => {
|
2024-10-11 08:49:31 +08:00
|
|
|
|
if (globalStore.language == 'zh') return zhCn
|
|
|
|
|
|
if (globalStore.language == 'en') return en
|
|
|
|
|
|
return getBrowserLang() == 'zh' ? zhCn : en
|
|
|
|
|
|
})
|
2024-08-22 11:27:06 +08:00
|
|
|
|
|
|
|
|
|
|
// element assemblySize
|
2024-10-11 08:49:31 +08:00
|
|
|
|
const assemblySize = computed(() => globalStore.assemblySize)
|
2024-08-22 11:27:06 +08:00
|
|
|
|
|
|
|
|
|
|
// element button config
|
2024-10-11 08:49:31 +08:00
|
|
|
|
const buttonConfig = reactive({ autoInsertSpace: false })
|
2024-08-07 21:48:24 +08:00
|
|
|
|
|
2024-10-11 08:49:31 +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>
|