main.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import FloatingVue from 'floating-vue'
  2. import Message from 'vue-m-message'
  3. import App from './App.vue'
  4. import router from './router'
  5. import pinia from './store'
  6. import ui from './ui-provider'
  7. import * as ElementPlusIconsVue from '@element-plus/icons-vue'
  8. import '@/utils/system.copyright'
  9. import 'floating-vue/dist/style.css'
  10. import 'vue-m-message/dist/style.css'
  11. import 'overlayscrollbars/overlayscrollbars.css'
  12. // 自定义指令
  13. import directive from '@/utils/directive'
  14. // 加载 svg 图标
  15. import 'virtual:svg-icons-register'
  16. // 加载 iconify 图标
  17. import { downloadAndInstall } from '@/iconify'
  18. import icons from '@/iconify/index.json'
  19. import 'virtual:uno.css'
  20. // 全局样式
  21. import '@/assets/styles/globals.css'
  22. const app = createApp(App)
  23. for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
  24. app.component(key, component)
  25. }
  26. // 添加 Element Plus
  27. app.use(FloatingVue, {
  28. distance: 12,
  29. })
  30. app.use(Message)
  31. app.use(pinia)
  32. app.use(router)
  33. app.use(ui)
  34. directive(app)
  35. if (icons.isOfflineUse) {
  36. for (const info of icons.collections) {
  37. downloadAndInstall(info)
  38. }
  39. }
  40. app.mount('#app')