import { Router, } from 'vue-router' import { usePermission } from './usePermission' import store from '@/store' export function handleMicroData(router: Router): void { // 是否是微前端环境 if (window.__MICRO_APP_ENVIRONMENT__) { // 主动获取基座下发的数据 const attendanceData = window.microApp.getData() attendanceData && attendanceData.userInfo && store.commit('USERINFO', attendanceData.userInfo) attendanceData && attendanceData.accesstoken && store.commit('ACCESSTOKEN', attendanceData.accesstoken) // 监听基座下发的数据变化 window.microApp.addDataListener((data: Record) => { data && data.userInfo && store.commit('USERINFO', data.userInfo) data && data.accesstoken && store.commit('ACCESSTOKEN', data.accesstoken) // 当基座下发path时进行跳转 if (data.path && data.path !== router.currentRoute.value.path) { router.push(data.path as string) } }) usePermission().findRoleItem( 'autoProjectName', // 项目名 'localhost://autoProjectName/index', // 第一个页面的地址,注意不要是redirect地址。是router.ts的第一个path router.options.routes, store.state.userInfo.permissions, window.location.href ).then((item) => { router.push(item.path) }) // 向基座发送数据 // setTimeout(() => { // window.microApp.dispatch({ myname: 'demo' }) // }, 3000) } }