frontend/src/main.ts
2026-01-26 09:33:40 +08:00

43 lines
1.2 KiB
TypeScript

import { createApp } from 'vue'
import App from './App.vue'
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css'
import '@/styles/index.scss'
import '@/assets/css/styles.css'
import '@/assets/css/all.min.css'
import pinia from './store'
import * as echarts from 'echarts';
import router, { loadAndRegisterRoutes } from './router';
//@ts-expect-error忽略当前文件ts类型的检测否则有红色提示(打包会失败)
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
const app = createApp(App)
app.config.globalProperties.$echarts = echarts
app.use(ElementPlus, {
locale: zhCn
})
app.use(pinia);
// 在注册路由之前先加载并注册动态路由
// 这样 Vue Router 在创建时就能匹配到所有路由
loadAndRegisterRoutes()
.then(() => {
// 路由加载完成后再注册 router
app.use(router);
// 等待路由准备就绪
return router.isReady();
})
.then(() => {
app.mount('#app');
})
.catch((error) => {
console.error('Failed to load routes:', error);
// 即使路由加载失败,也要注册路由和挂载应用
// 路由守卫会处理后续的路由加载
app.use(router);
app.mount('#app');
});