64 lines
1.9 KiB
JavaScript
Raw Normal View History

2025-01-23 01:10:59 +00:00
/**
* @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';
2025-02-27 01:24:25 +00:00
import { renderWithQiankun, qiankunWindow } from 'vite-plugin-qiankun/dist/helper';
2025-01-23 01:10:59 +00:00
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';
2025-02-27 01:24:25 +00:00
import './utils/permission';
import VueAMap, { initAMapApiLoader } from '@vuemap/vue-amap';
initAMapApiLoader({
key: 'c843a50db7157faf295c6fa37c48719f',
securityJsCode: 'f09302d3ed65110614bdb26e44717ddf', // 新版key需要配合安全密钥使用
//Loca:{
// version: '2.0.0'
//} // 如果需要使用loca组件库需要加载Loca
});
2025-02-27 01:24:25 +00:00
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);
2025-02-27 11:41:02 +08:00
app.use(pinia).use(router).use(ElementPlus).use(Avue).use(VueAMap);
2025-02-27 01:24:25 +00:00
registerGlobalComponents(app);
registerElIcons(app);
registerDirective(app);
registerMicroApps(app);
app.mount(container.querySelector('#sub-app') || '#sub-app');
};
qiankunWindow.__POWERED_BY_QIANKUN__ ? initQiankun() : render({});
};
2025-02-27 01:24:25 +00:00
registerMicroApps();