feat: WC2026 赛事 seed、生产上线初始化脚本与目录归档
重构 seed 为 WC2026 72 场小组赛与 48 强优胜盘;新增 production 模式仅保留 admin 与赛事示例;提供 prod-init-db 全量重置脚本;管理端 i18n 分包与赛事归档能力。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,23 +1,38 @@
|
||||
<script setup lang="ts">
|
||||
import { computed } from 'vue';
|
||||
import { computed, shallowRef, watch } from 'vue';
|
||||
import { RouterView } from 'vue-router';
|
||||
import { ElConfigProvider } from 'element-plus';
|
||||
import zhCn from 'element-plus/es/locale/lang/zh-cn';
|
||||
import en from 'element-plus/es/locale/lang/en';
|
||||
import ms from 'element-plus/es/locale/lang/ms';
|
||||
import type { Language } from 'element-plus/es/locale';
|
||||
import { useAdminLocale } from './composables/useAdminLocale';
|
||||
|
||||
const { locale } = useAdminLocale();
|
||||
const elLocale = shallowRef<Language | undefined>(undefined);
|
||||
|
||||
const elLocale = computed(() => {
|
||||
if (locale.value.startsWith('zh')) return zhCn;
|
||||
if (locale.value.startsWith('ms')) return ms;
|
||||
return en;
|
||||
});
|
||||
async function loadElLocale(tag: string) {
|
||||
if (tag.startsWith('zh')) {
|
||||
elLocale.value = (await import('element-plus/es/locale/lang/zh-cn')).default;
|
||||
return;
|
||||
}
|
||||
if (tag.startsWith('ms')) {
|
||||
elLocale.value = (await import('element-plus/es/locale/lang/ms')).default;
|
||||
return;
|
||||
}
|
||||
elLocale.value = (await import('element-plus/es/locale/lang/en')).default;
|
||||
}
|
||||
|
||||
watch(
|
||||
() => locale.value,
|
||||
(tag) => {
|
||||
void loadElLocale(tag);
|
||||
},
|
||||
{ immediate: true },
|
||||
);
|
||||
|
||||
const configLocale = computed(() => elLocale.value);
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<ElConfigProvider :locale="elLocale">
|
||||
<ElConfigProvider :locale="configLocale">
|
||||
<RouterView />
|
||||
</ElConfigProvider>
|
||||
</template>
|
||||
|
||||
Reference in New Issue
Block a user