| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- import { createApp } from 'vue'
- import pinia from "./stores/index";
- import router from "./router";
- import './style.css'
- import App from './App.vue'
- import ElementPlus from 'element-plus'
- import 'element-plus/dist/index.css'
- import * as ElementPlusIconsVue from '@element-plus/icons-vue'
- import { lissenLog, log } from './utils/log'
- import useUserInfo from './stores/modules/user'
- import { startGenerateServer } from './utils/generateServer'
- import { updateHttpConfig } from './utils/http'
- import client from './stores/modules/client'
- import icpList from './utils/ipc'
- // 初始化应用配置
- function initializeAppConfig() {
- try {
- // 获取应用配置
- const clientStore = client();
- clientStore.ipc.send(icpList.utils.getAppConfig);
- clientStore.ipc.once(icpList.utils.getAppConfig, (event, result) => {
- console.log('应用配置已加载:', result);
- // 设置HTTP配置
- if (result && (result as any).env) {
- updateHttpConfig((result as any).env);
- } else {
- // 如果没有配置,使用默认环境
- updateHttpConfig('prod');
- }
- });
- } catch (error) {
- console.warn('获取应用配置失败,使用默认配置:', error);
- // 使用默认环境
- updateHttpConfig('prod');
- }
- }
- const app = createApp(App)
- app.use(ElementPlus)
- for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
- app.component(key, component)
- }
- app.use(pinia)
- app.use(router)
- // 注册埋点指令和路由监听 - 确保在router使用后立即注册
- lissenLog(app)
- log(router)
- app.mount('#app')
- // 应用挂载后初始化应用配置
- initializeAppConfig()
- // 刷新后根据会话标记显示登录弹窗
- try {
- const flag = sessionStorage.getItem('NEED_LOGIN_MODAL')
- if (flag) {
- const userStore = useUserInfo()
- userStore.updateLoginShow(true)
- sessionStorage.removeItem('NEED_LOGIN_MODAL')
- }
- } catch {}
- // 启动本地生成服务(仅在 Electron 的 Node 集成环境有效)
- try {
- startGenerateServer()
- } catch (e) {
- console.warn('[generateServer] failed to start', e)
- }
|