main.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import Vue from 'vue';
  2. import './public-path';
  3. import initParentStore from '../qiankun_config/store';
  4. import App from './App.vue';
  5. import store from './store';
  6. import router from './router';
  7. import permission from './utils/permission';
  8. import { MAP_KEY, LICENSE_CODE } from '@/config/setting';
  9. import EleAdmin from 'ele-admin';
  10. import VueClipboard from 'vue-clipboard2';
  11. import i18n from './i18n';
  12. import './styles/index.scss';
  13. import '@/components/FormGenerator/styles/index.scss';
  14. import DictSelection from '@/components/Dict/DictSelection';
  15. // import tinymce from '@/components/FormGenerator/components/tinymce/index.js';
  16. import TinymceEditor from '@/components/TinymceEditor/index.vue';
  17. // import SvgIcon from '@/components/FormGenerator/components/SvgIcon'; // svg component
  18. import HeaderTitle from '@/components/header-title';
  19. Vue.component('HeaderTitle', HeaderTitle);
  20. // // register globally
  21. Vue.component('tinymce', TinymceEditor);
  22. import '@/icons';
  23. Vue.component('DictSelection', DictSelection);
  24. Vue.config.productionTip = false;
  25. Vue.use(EleAdmin, {
  26. response: {
  27. dataName: 'list'
  28. },
  29. mapKey: MAP_KEY,
  30. license: LICENSE_CODE,
  31. i18n: (key, value) => i18n.t(key, value)
  32. });
  33. Vue.use(permission);
  34. Vue.use(VueClipboard);
  35. // new Vue({
  36. // router,
  37. // store,
  38. // i18n,
  39. // render: (h) => h(App)
  40. // }).$mount('#app');
  41. let instance = null;
  42. function render (props = {}) {
  43. console.log(router, 2222);
  44. const { container, routerBase } = props;
  45. // const router = new VueRouter({
  46. // base: window.__POWERED_BY_QIANKUN__ ? routerBase : process.env.BASE_URL,
  47. // mode: 'history',
  48. // routes
  49. // });
  50. instance = new Vue({
  51. router,
  52. store,
  53. i18n,
  54. render: (h) => h(App)
  55. }).$mount(container ? container.querySelector('#app') : '#app');
  56. }
  57. if (!window.__POWERED_BY_QIANKUN__) {
  58. // 这里是子应用独立运行的环境,实现子应用的登录逻辑
  59. render();
  60. }
  61. export async function bootstrap () {
  62. console.log('[vue] vue app bootstraped');
  63. }
  64. export async function mount (props) {
  65. console.log('[vue] props from main framework', props);
  66. initParentStore(props.store);
  67. props.onGlobalStateChange((state, prev) => {
  68. // state: 变更后的状态; prev 变更前的状态
  69. initParentStore(state);
  70. });
  71. render(props);
  72. }
  73. export async function unmount () {
  74. instance.$destroy();
  75. instance.$el.innerHTML = '';
  76. instance = null;
  77. }