main.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { createApp } from 'vue';
  2. import router, { setupRouter } from './router';
  3. import { setupStore } from '@/store';
  4. import './main.scss';
  5. import 'element-plus/dist/index.css';
  6. import App from './App.vue';
  7. import BreadcrumbBack from '@/components/BreadcrumbBack.vue';
  8. import { setupElement, setupDirectives, setupWangEditorUpload } from '@/plugins';
  9. import dayjs from 'dayjs';
  10. import 'dayjs/locale/zh-cn';
  11. import '@/utils/g6Extensions';
  12. import 'notivue/animations.css'; // Only needed if using built-in animations
  13. import { notivue } from '@/components/custom-notivue/notivue-conf';
  14. import 'virtual:svg-icons-register';
  15. dayjs.locale('zh-cn');
  16. setupWangEditorUpload();
  17. async function bootstrap() {
  18. const app = createApp(App);
  19. app.use(notivue);
  20. // 全局完整引入 element 组件
  21. setupElement(app);
  22. app.component('BreadcrumbBack', BreadcrumbBack); //全局注册面包屑返回按钮
  23. // 注册全局自定义指令,如:v-permission权限指令
  24. setupDirectives(app);
  25. // 挂载状态管理
  26. setupStore(app);
  27. //优先挂载一下 Provider 解决路由守卫,Axios中可使用,Dialog,Message 等之类组件
  28. // appProvider.mount('#appProvider', true);
  29. // 挂载路由
  30. await setupRouter(app);
  31. // 路由准备就绪后挂载APP实例
  32. await router.isReady();
  33. app.mount('#app', true);
  34. }
  35. void bootstrap();