113 lines
3.3 KiB
JavaScript
113 lines
3.3 KiB
JavaScript
//iconfont
|
|
import '@/assets/iconfont/iconfont.css'
|
|
import './assets/style/main.less'
|
|
|
|
import { createApp } from 'vue'
|
|
import { createPinia } from 'pinia'
|
|
|
|
import App from './App.vue'
|
|
import router from './router'
|
|
|
|
// import 'video.js/dist/video-js.css' // css 一定要引入
|
|
|
|
//引入vxe-table
|
|
import VxeUIAll from 'vxe-pc-ui'
|
|
import 'vxe-pc-ui/lib/style.css'
|
|
import VxeUITable from 'vxe-table'
|
|
import 'vxe-table/lib/style.css'
|
|
|
|
import { useSettingStore } from '@/stores/setting.js'
|
|
import { qiankunWindow, renderWithQiankun } from 'vite-plugin-qiankun/dist/helper'
|
|
|
|
import { RouterLink, RouterView, useRoute } from 'vue-router'
|
|
|
|
// 创建实例
|
|
let app
|
|
const setupAll = async (props) => {
|
|
const { container } = props
|
|
app = createApp(App)
|
|
app.use(createPinia())
|
|
app.use(router)
|
|
app.use(VxeUIAll)
|
|
app.use(VxeUITable)
|
|
app.mount(container instanceof Element ? container.querySelector('#airapp') : container)
|
|
app.config.warnHandler = () => null
|
|
}
|
|
|
|
//qiankun微前端
|
|
if (!qiankunWindow.__POWERED_BY_QIANKUN__) {
|
|
const { VITE_APP_AUTHORITY, VITE_APP_CLIENT_ID } = import.meta.env
|
|
const queryParams = new URLSearchParams(window.location.search)
|
|
const access_token = queryParams.get('access_token')
|
|
const token_type = queryParams.get('token_type')
|
|
const airportId = queryParams.get('airportId')
|
|
|
|
let oidcSession = {
|
|
access_token: access_token,
|
|
token_type: token_type,
|
|
}
|
|
|
|
oidcSession = JSON.stringify(oidcSession)
|
|
window.iframe_AirPortID = airportId
|
|
sessionStorage.setItem(`oidc.user:${VITE_APP_AUTHORITY}:${VITE_APP_CLIENT_ID}`, oidcSession)
|
|
let access_token_str = `Bearer ${access_token}`
|
|
//设置token
|
|
localStorage.setItem('access_token', access_token_str)
|
|
sessionStorage.setItem('access_token', access_token_str)
|
|
|
|
setupAll({ container: '#airapp' })
|
|
|
|
//监听消息事件
|
|
// window.addEventListener(
|
|
// 'message',
|
|
// (event) => {
|
|
// if (event.data) {
|
|
// let mdata = JSON.parse(event.data)
|
|
// // console.log(mdata)
|
|
// window.iframe_AirPortID = mdata.airportId
|
|
// let oidcSession = JSON.stringify(mdata.userInfo)
|
|
|
|
// sessionStorage.setItem(`oidc.user:${VITE_APP_AUTHORITY}:${VITE_APP_CLIENT_ID}`, oidcSession)
|
|
// // let userInfo = JSON.parse(oidcSession)
|
|
// const access_token = `Bearer ${mdata.userInfo.access_token}`
|
|
// //设置token
|
|
// localStorage.setItem('access_token', access_token)
|
|
// sessionStorage.setItem('access_token', access_token)
|
|
|
|
// //测试时候用的代码
|
|
// setupAll({ container: '#airapp' })
|
|
// }
|
|
// },
|
|
// false,
|
|
// )
|
|
} else {
|
|
renderWithQiankun({
|
|
mount(props) {
|
|
console.log('--进入子应用')
|
|
setupAll(props)
|
|
useSettingStore().systemSetting = props.setting
|
|
//获取主应用的token
|
|
// userStore.setToken(props.token)
|
|
|
|
//强制刷新一次页面
|
|
// let mtoken = window.localStorage.getItem('mtoken')
|
|
// if (!mtoken) {
|
|
// window.localStorage.setItem('mtoken', props.token)
|
|
// //刷新页面
|
|
// // window.location.reload()
|
|
// }
|
|
},
|
|
bootstrap() {
|
|
console.log('--bootstrap')
|
|
},
|
|
update() {
|
|
console.log('--update')
|
|
},
|
|
unmount() {
|
|
window.localStorage.removeItem('mtoken')
|
|
app.unmount()
|
|
console.log('--离开子应用')
|
|
},
|
|
})
|
|
}
|