main.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. import VueCropper from "vue-cropper";
  23. import "vue-cropper/dist/index.css";
  24. const app = createApp(App)
  25. for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
  26. app.component(key, component)
  27. }
  28. // 添加 Element Plus
  29. app.use(FloatingVue, {
  30. distance: 12,
  31. })
  32. app.use(Message)
  33. app.use(pinia)
  34. app.use(router)
  35. app.use(VueCropper)
  36. app.use(ui)
  37. directive(app)
  38. if (icons.isOfflineUse) {
  39. for (const info of icons.collections) {
  40. downloadAndInstall(info)
  41. }
  42. }
  43. app.mount('#app')