main.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { createApp } from "vue";
  2. import ElementPlus, { useZIndex, ClickOutside, TrapFocus } from "element-plus";
  3. import "element-plus/dist/index.css";
  4. import "element-plus/theme-chalk/dark/css-vars.css";
  5. import "normalize.css"; // css初始化
  6. import "../src/css/app.scss"; // 公共css
  7. import App from "./App.vue";
  8. import router from "./router";
  9. import * as ElementPlusIconsVue from "@element-plus/icons-vue";
  10. import zhCn from "element-plus/es/locale/lang/zh-cn";
  11. import JsonViewer from "vue3-json-viewer";
  12. import "vue3-json-viewer/dist/index.css";
  13. import DataVVue3 from "@kjgl77/datav-vue3";
  14. import VXETable from "vxe-table";
  15. import "vxe-table/lib/style.css";
  16. import print from "vue3-print-nb";
  17. import "driver.js/dist/driver.css";
  18. import DomZIndex from "dom-zindex";
  19. import initVxeConfig from "@/utils/xe-utils-enhance/vxe-formatter";
  20. import piniaInstall from "@/pinia/pinia-install";
  21. import VxeUIPluginRenderChart from "@vxe-ui/plugin-render-chart";
  22. import "@vxe-ui/plugin-render-chart/dist/style.css";
  23. import VxeUI from "vxe-pc-ui";
  24. import "vxe-pc-ui/lib/style.css";
  25. import VxeUIPluginExportXLSX from "@vxe-ui/plugin-export-xlsx";
  26. import ExcelJS from "exceljs";
  27. import "@imengyu/vue3-context-menu/lib/vue3-context-menu.css";
  28. import ContextMenu from "@imengyu/vue3-context-menu";
  29. import VTitle from "./directives/v-title";
  30. import VWaves from "./directives/v-waves";
  31. import VElBtn from "./directives/v-el-btn";
  32. import VCyPrint from "@/directives/v-cy-print.js";
  33. DomZIndex.getNext = () => {
  34. return useZIndex().nextZIndex();
  35. };
  36. DomZIndex.getCurrent = () => {
  37. return useZIndex().currentZIndex.value;
  38. };
  39. initVxeConfig();
  40. const app = createApp(App);
  41. for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
  42. app.component(key, component);
  43. }
  44. piniaInstall(app);
  45. app.use(ElementPlus, { locale: zhCn, size: "small" });
  46. app.use(DataVVue3);
  47. app.directive("cy-print", VCyPrint);
  48. app.directive("el-btn", VElBtn);
  49. app.directive("title", VTitle);
  50. app.directive("ClickOutside", ClickOutside);
  51. app.directive("Waves", VWaves);
  52. app.directive("TrapFocus", TrapFocus);
  53. app.use(print);
  54. app.use(VxeUI);
  55. app.use(VXETable);
  56. VxeUI.use(VxeUIPluginRenderChart);
  57. VxeUI.use(VxeUIPluginExportXLSX, {
  58. ExcelJS,
  59. });
  60. app.use(ContextMenu);
  61. app.use(JsonViewer);
  62. app.use(router);
  63. app.mount("#app");