main.ts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import { createApp } from 'vue'
  2. import App from './App.vue'
  3. // reset style sheet
  4. import '@/styles/reset.scss'
  5. // CSS common style sheet
  6. import '@/styles/common.scss'
  7. // iconfont css
  8. import '@/assets/iconfont/iconfont.scss'
  9. // font css
  10. import '@/assets/fonts/font.scss'
  11. // element css
  12. import 'element-plus/dist/index.css'
  13. // element dark css
  14. import 'element-plus/theme-chalk/dark/css-vars.css'
  15. // custom element dark css
  16. import '@/styles/element-dark.scss'
  17. // custom element css
  18. import '@/styles/element.scss'
  19. // svg icons
  20. import 'virtual:svg-icons-register'
  21. // element plus
  22. import ElementPlus from 'element-plus'
  23. // element icons
  24. import * as Icons from '@element-plus/icons-vue'
  25. // custom directives
  26. import directives from '@/directives/index'
  27. // vue Router
  28. import router from '@/routers'
  29. // vue i18n
  30. import I18n from '@/languages/index'
  31. // pinia store
  32. import pinia from '@/stores'
  33. // errorHandler
  34. import errorHandler from '@/utils/errorHandler'
  35. import SvgIcon from '@/components/SvgIcon/index.vue'
  36. // 字典标签组件
  37. import DictTag from '@/components/DictTag/index.vue'
  38. import { useDict } from '@/utils/dict'
  39. const app = createApp(App)
  40. // 全局方法挂载
  41. app.config.globalProperties.useDict = useDict
  42. // 全局组件挂载
  43. app.component('DictTag', DictTag)
  44. app.config.errorHandler = errorHandler
  45. // register the element Icons component
  46. Object.keys(Icons).forEach(key => {
  47. app.component(key, Icons[key as keyof typeof Icons])
  48. })
  49. // eslint-disable-next-line vue/component-definition-name-casing
  50. app.component('svg-icon', SvgIcon)
  51. app.use(ElementPlus).use(directives).use(router).use(I18n).use(pinia).mount('#app')