/** * @Description: * @Author: zenghua.wang * @Date: 2024-01-24 17:14:41 * @LastEditors: zenghua.wang * @LastEditTime: 2024-03-22 10:11:34 */ import 'virtual:svg-icons-register'; import { createApp } from 'vue'; import { renderWithQiankun, qiankunWindow } from 'vite-plugin-qiankun/dist/helper'; import App from './App.vue'; import router from './router'; import pinia from './store'; import ElementPlus from 'element-plus'; import 'element-plus/dist/index.css'; import Avue from '@smallwei/avue'; import '@smallwei/avue/lib/index.css'; import { registerDirective } from './directives'; import { registerGlobalComponents } from './plugins/globalComponents'; import { registerElIcons } from './plugins/icon'; import './utils/permission'; import VueAMap, { initAMapApiLoader } from '@vuemap/vue-amap'; initAMapApiLoader({ key: 'c843a50db7157faf295c6fa37c48719f', securityJsCode: 'f09302d3ed65110614bdb26e44717ddf', // 新版key需要配合安全密钥使用 //Loca:{ // version: '2.0.0' //} // 如果需要使用loca组件库,需要加载Loca }); const registerMicroApps = () => { let app = null; const initQiankun = () => { renderWithQiankun({ bootstrap() { console.log('bootstrap'); }, mount(props) { console.log('mount', props); render(props); }, update(props) { console.log('update', props); }, unmount(props) { console.log('unmount', props); app = null; }, }); }; const render = async ({ container }) => { await new Promise((resolve) => setTimeout(resolve, 1000)); app = createApp(App); app.use(pinia).use(router).use(ElementPlus).use(Avue).use(VueAMap); registerGlobalComponents(app); registerElIcons(app); registerDirective(app); registerMicroApps(app); app.mount(container.querySelector('#sub-app') || '#sub-app'); }; qiankunWindow.__POWERED_BY_QIANKUN__ ? initQiankun() : render({}); }; registerMicroApps();