main.ts 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. import { createApp } from 'vue'
  2. import App from './App.vue'
  3. import router from './router'
  4. import directives from '@/directives' // 自定义指令集
  5. import '@/mock' // 模拟数据
  6. import { i18n } from '@/stores' // 国际化语言
  7. import layouts from "./components/layouts" // 布局组件
  8. import ElementPlus from 'element-plus'
  9. import * as ElementIcons from '@element-plus/icons-vue'
  10. import 'element-plus/dist/index.css'
  11. import './assets/themes/style.less' // 主题样式
  12. import { timerInterceptor } from '@/utils/timer'
  13. import { globalStore } from '@/stores'
  14. const app = createApp(App)
  15. app.use(router)
  16. app.use(directives)
  17. app.use(ElementPlus)
  18. app.use(layouts)
  19. app.use(i18n)
  20. app.mount('#app')
  21. // 等待 html 加载完成
  22. document.addEventListener('DOMContentLoaded', () => {
  23. // 适配客户端
  24. globalStore.actions.screenAdapter()
  25. // 监听窗口大小变化
  26. window.addEventListener('resize', timerInterceptor.setDebounce(() => globalStore.actions.screenAdapter()));
  27. }, false)
  28. // 注册全局图标
  29. for (const [key, value] of Object.entries(ElementIcons)) {
  30. app.component(key, value)
  31. }