main.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { createApp } from 'vue'
  2. import pinia from "./stores/index";
  3. import router from "./router";
  4. import './style.css'
  5. import App from './App.vue'
  6. import ElementPlus from 'element-plus'
  7. import 'element-plus/dist/index.css'
  8. import * as ElementPlusIconsVue from '@element-plus/icons-vue'
  9. import { lissenLog, log } from './utils/log'
  10. import useUserInfo from './stores/modules/user'
  11. import { startGenerateServer } from './utils/generateServer'
  12. const app = createApp(App)
  13. app.use(ElementPlus)
  14. for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
  15. app.component(key, component)
  16. }
  17. app.use(pinia)
  18. app.use(router)
  19. // 注册埋点指令和路由监听 - 确保在router使用后立即注册
  20. lissenLog(app)
  21. log(router)
  22. app.mount('#app')
  23. // 刷新后根据会话标记显示登录弹窗
  24. try {
  25. const flag = sessionStorage.getItem('NEED_LOGIN_MODAL')
  26. if (flag) {
  27. const userStore = useUserInfo()
  28. userStore.updateLoginShow(true)
  29. sessionStorage.removeItem('NEED_LOGIN_MODAL')
  30. }
  31. } catch {}
  32. // 启动本地生成服务(仅在 Electron 的 Node 集成环境有效)
  33. try {
  34. startGenerateServer()
  35. } catch (e) {
  36. console.warn('[generateServer] failed to start', e)
  37. }