main.ts 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { createApp } from "vue";
  2. import App from "./App.vue";
  3. import router from "@/router";
  4. import { setupStore } from "@/store";
  5. import { setupDirective } from "@/directive";
  6. import { setupElIcons, setupI18n, setupPermission } from "@/plugins";
  7. import Loading from "./components/FullLoading/index";
  8. // 本地SVG图标
  9. import "virtual:svg-icons-register";
  10. // 样式
  11. import "element-plus/theme-chalk/dark/css-vars.css";
  12. import "@/styles/index.scss";
  13. import "uno.css";
  14. import "animate.css";
  15. // avue
  16. import { setupEleAvue } from "@/plugins";
  17. const app = createApp(App);
  18. type Lod = {
  19. show: () => void;
  20. hide: () => void;
  21. isShow: boolean;
  22. };
  23. declare module "@vue/runtime-core" {
  24. export interface ComponentCustomProperties {
  25. $loading: Lod;
  26. }
  27. }
  28. // 全局注册 自定义指令(directive)
  29. setupDirective(app);
  30. // 全局注册 状态管理(store)
  31. setupStore(app);
  32. // 全局注册Element-plus图标
  33. setupElIcons(app);
  34. // 国际化
  35. setupI18n(app);
  36. // 注册动态路由
  37. setupPermission();
  38. setupEleAvue(app);
  39. app.use(Loading).use(router).mount("#app");