src/router/index
// 路由拦截 在url地址跳转之前执行
router.beforeEach((to, from, next) => {
// 动态生成路由数据
addData()
next()
})
function addData() {
getNavData().then(res => {
if(res.code === 200) {
// 获取数据,拼接数据
let data = routesData(res.result)
// 动态添加 addRoutes()
router.addRoutes(data)
}
})
}
function routesData(result) {
const routes = []
// 根据数据动态生成路由
result.forEach(item => {
routes.push({
path: item.path,
name: item.name,
meta: {title: item.title},
component: () => import('../views/rightMain/con/' + item.component)
})
})
return routes
}