import { createApp } from 'vue' import { createPinia } from 'pinia' import router from './router' import { useAuthStore } from './stores/index.js' import App from './App.vue' // 导入样式 import 'element-plus/theme-chalk/dark/css-vars.css' import './assets/styles/global.css' import './assets/styles/responsive.css' import './assets/styles/themes.css' import dtUI from '@deotaland/ui' import '@deotaland/ui/style.css' import 'element-plus/dist/index.css' // 导入Element Plus图标 import * as ElementPlusIconsVue from '@element-plus/icons-vue' import ElementPlus from 'element-plus' // 导入i18n配置 import i18n from './locales/i18n' // 创建应用实例 const app = createApp(App) app.use(dtUI) window.setElMessage = (options={})=>{ ElMessage[options.type || 'info'](options.message || '请求失败') } // 配置 Pinia const pinia = createPinia() app.use(pinia) // app.use(ElementPlus) // 配置国际化 app.use(i18n) // 注册所有Element Plus图标 for (const [key, component] of Object.entries(ElementPlusIconsVue)) { app.component(key, component) } // 初始化 router 到 authStore const authStore = useAuthStore() authStore.router = router // 初始化路由列表 const initRoutes = () => { const storedToken = localStorage.getItem('token') if (storedToken) { // 恢复 token 和用户信息 const storedUser = localStorage.getItem('user') if (storedUser) { authStore.token = storedToken authStore.user = JSON.parse(storedUser) } // 恢复权限列表 const storedPermissionRouter = localStorage.getItem('permissionRouter') const storedPermissionList = localStorage.getItem('permissionButton') if (storedPermissionRouter && storedPermissionList) { authStore.permissionRouter = JSON.parse(storedPermissionRouter) authStore.permissionButton = JSON.parse(storedPermissionList) // 添加动态路由 authStore.addPermissionRoutes() } } } if (window.location.hostname.indexOf('local') === -1) { initRoutes() } // initRoutes() // 配置路由 app.use(router) // 挂载应用 app.mount('#app')