diff --git a/src/main.js b/src/main.js
index 4aac723..1f1b08f 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,22 +1,27 @@
-import { createApp } from 'vue'
-import App from './App.vue'
-import router from './router'
-
-// 引入Element Plus
-import ElementPlus from 'element-plus'
-import 'element-plus/dist/index.css'
-import * as ElementPlusIconsVue from '@element-plus/icons-vue'
-
-// 全局样式
-import './assets/styles/global.css'
-
-const app = createApp(App)
-
-// 注册所有Element Plus图标
-for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
-  app.component(key, component)
-}
-
-app.use(ElementPlus)
-app.use(router)
+import { createApp } from 'vue'
+import App from './App.vue'
+import router from './router'
+import store from './store'
+
+// 引入Element Plus
+import ElementPlus from 'element-plus'
+import 'element-plus/dist/index.css'
+import * as ElementPlusIconsVue from '@element-plus/icons-vue'
+
+const app = createApp(App)
+
+// 注册所有Element Plus图标
+for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
+  app.component(key, component)
+}
+
+app.use(ElementPlus)
+app.use(store)  // 确保这行存在且在 router 之前
+app.use(router)
+
+// 应用启动时恢复登录状态
+if (store && store.dispatch) {
+  store.dispatch('auth/restoreLoginState')
+}
+
 app.mount('#app')
\ No newline at end of file
