main.ts 1022 B

123456789101112131415161718192021222324252627282930313233343536
  1. import { createApp } from 'vue'
  2. import ElementPlus from 'element-plus'
  3. import * as ElementPlusIconsVue from '@element-plus/icons-vue'
  4. import en from 'element-plus/es/locale/lang/en'
  5. import zhCn from 'element-plus/es/locale/lang/zh-cn'
  6. import 'element-plus/dist/index.css'
  7. import 'element-plus/theme-chalk/dark/css-vars.css'
  8. import App from './App.vue'
  9. import router from './router'
  10. import pinia from './store'
  11. import i18n from './locales'
  12. import '@/assets/styles/index.scss'
  13. import { useThemeStore } from './store/theme'
  14. const app = createApp(App)
  15. // 注册所有 Element Plus 图标
  16. for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
  17. app.component(key, component)
  18. }
  19. // 注册插件 (不再传递 locale,由 el-config-provider 控制)
  20. app.use(ElementPlus, {
  21. locale: i18n.global.locale.value === 'zh-cn' ? zhCn : en
  22. })
  23. app.use(router)
  24. app.use(pinia)
  25. app.use(i18n)
  26. // 初始化主题(必须在 pinia 注册后)
  27. const themeStore = useThemeStore()
  28. themeStore.applyTheme()
  29. app.mount('#app')