main.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { createApp } from 'vue'
  2. import App from './App.vue'
  3. import router from './routers'
  4. import pinia from './store'
  5. import { registerElIcons } from '@/plugins/ElIcons'
  6. // 引入全局组件布局
  7. import PageWrapLayout from '@/components/PageWrapLayout/index.vue'
  8. // 权限路由
  9. import './permission'
  10. // svg-icons注册导入
  11. // @ts-ignore: virtual module injected by svg-icons plugin
  12. import 'virtual:svg-icons-register'
  13. import SvgIcon from '@/components/SvgIcon/index.vue' // svg component
  14. // UI框架 element-plus
  15. import ElementPlus from 'element-plus'
  16. import 'element-plus/dist/index.css'
  17. // 引入暗黑模式 element-plus 2.2 内置暗黑模式
  18. import 'element-plus/theme-chalk/dark/css-vars.css'
  19. // 自定义暗黑模式
  20. import '@/styles/element-dark.scss'
  21. // 引入阿里图标库
  22. import '@/assets/iconfont/iconfont.css'
  23. import '@/assets/iconfont/iconfont.js'
  24. // 引入国际化
  25. import i18n from './i18n'
  26. import Config from './config'
  27. import SessionStorage from './lib/session.js'
  28. //定义mixin
  29. const mixins = {
  30. created() {
  31. this.Session = SessionStorage
  32. this.Config = Config
  33. },
  34. }
  35. const app = createApp(App)
  36. registerElIcons(app)
  37. app.mixin(mixins)
  38. app.component('SvgIcon', SvgIcon)
  39. app.component('PageWrapLayout', PageWrapLayout)
  40. app.use(pinia)
  41. app.use(router)
  42. app.use(i18n)
  43. app.use(ElementPlus).mount('#app')