deotalandAi/apps/FrontendDesigner/src/main.js

70 lines
2.0 KiB
JavaScript

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')