1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import { createApp } from "vue";
  2. import "./assets/styles/tailwind.css";
  3. import Cookies from "js-cookie";
  4. import "@/utils/flexible.js";
  5. import ElementPlus from "element-plus";
  6. import "element-plus/dist/index.css";
  7. import locale from "element-plus/es/locale/lang/zh-cn";
  8. import "@/assets/styles/index.scss";
  9. import App from "./App";
  10. import store from "./store";
  11. import router from "./router";
  12. import directive from "./directive"; // directive
  13. import { qomoPlatformOptions } from "./platform";
  14. import QomoPlatform from "@qomo-platform/core";
  15. // 注册指令
  16. import plugins from "./plugins"; // plugins
  17. import {
  18. renderWithQiankun,
  19. qiankunWindow
  20. } from "vite-plugin-qiankun/dist/helper";
  21. // svg图标
  22. import "virtual:svg-icons-register";
  23. import usePermissionStore from "@/store/modules/permission";
  24. import "@/assets/styles/global.css";
  25. import FlowableComponents from "@/flowableComponents/index.ts"
  26. let app;
  27. function render(props = {}) {
  28. const { container } = props;
  29. app = createApp(App);
  30. app.use(store);
  31. usePermissionStore()
  32. .generateRoutes()
  33. .then(routes => {
  34. routes.forEach(route => {
  35. if (!isHttp(route.path)) {
  36. router.addRoute(route); // 动态添加可访问路由表
  37. }
  38. });
  39. app.use(router);
  40. app.use(plugins);
  41. app.use(QomoPlatform, qomoPlatformOptions);
  42. app.use(FlowableComponents);
  43. directive(app);
  44. // 使用element-plus 并且设置全局的大小
  45. app.use(ElementPlus, {
  46. name:'testApp',
  47. locale: locale,
  48. // 支持 large、default、small
  49. size: Cookies.get("size") || "default"
  50. });
  51. app.mount(container ? container.querySelector("#subApp") : "#subApp");
  52. });
  53. }
  54. if (!qiankunWindow.__POWERED_BY_QIANKUN__) {
  55. render();
  56. } else {
  57. renderWithQiankun({
  58. mount(props) {
  59. console.log("===mount===");
  60. render(props);
  61. },
  62. bootstrap() {
  63. console.log("===bootstrap===");
  64. },
  65. unmount(props) {
  66. console.log(app);
  67. console.log("===unmount===");
  68. const { container } = props;
  69. app.unmount();
  70. },
  71. update(props) {
  72. console.log("===update===", props);
  73. }
  74. });
  75. }