main.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import App from "./App.vue";
  2. import router from "./router";
  3. import { setupStore } from "/@/store";
  4. import { getServerConfig } from "./config";
  5. import { createApp, Directive } from "vue";
  6. import { usI18n } from "../src/plugins/i18n";
  7. import { MotionPlugin } from "@vueuse/motion";
  8. import { useTable } from "../src/plugins/vxe-table";
  9. import { useFontawesome } from "../src/plugins/fontawesome";
  10. import { useElementPlus } from "../src/plugins/element-plus";
  11. import { injectResponsiveStorage } from "/@/utils/storage/responsive";
  12. import "animate.css";
  13. // 导入公共样式
  14. import "./style/index.scss";
  15. // 导入字体图标
  16. import "./assets/iconfont/iconfont.js";
  17. import "./assets/iconfont/iconfont.css";
  18. import "v-contextmenu/dist/themes/default.css";
  19. const app = createApp(App);
  20. // 自定义指令
  21. import * as directives from "/@/directives";
  22. Object.keys(directives).forEach(key => {
  23. app.directive(key, (directives as { [key: string]: Directive })[key]);
  24. });
  25. getServerConfig(app).then(async config => {
  26. injectResponsiveStorage(app, config);
  27. setupStore(app);
  28. app
  29. .use(router)
  30. .use(MotionPlugin)
  31. .use(useElementPlus)
  32. .use(useTable)
  33. .use(usI18n)
  34. .use(useFontawesome);
  35. await router.isReady();
  36. app.mount("#app");
  37. });