| | |
| | | /** |
| | | * 把后台返回菜单组装成routes要求的格式 |
| | | * @param {*} routes |
| | | * @param {*} menu |
| | | */ |
| | | export function getAsyncRoutes(routes2, menu) { |
| | | export function getAsyncRoutes(routes, menu) { |
| | | // menu 中flag "0" 表示 true "1"表示false |
| | | const menuCode = []// 将后端code取出存成数组形式 |
| | | const menuNameAndCode = []// 将后端code与name取出存成数组形式 |
| | | menu.forEach(item => { |
| | | menuCode.push(item.code) |
| | | if (item.children && item.children.length > 0) { |
| | | item.children.forEach(it => { |
| | | menuCode.push(it.code) |
| | | }) |
| | | if (item.flag === '0') { |
| | | menuCode.push(item.code) |
| | | menuNameAndCode.push({ code: item.code, name: item.name }) |
| | | if (item.children && item.children.length > 0) { |
| | | item.children.forEach(it => { |
| | | if (it.flag === '0') { |
| | | menuCode.push(it.code) |
| | | menuNameAndCode.push({ code: it.code, name: it.name }) |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | |
| | | const routes = routes2 |
| | | const newRoutes = [] |
| | | const newRoutes = [] // 新路由 |
| | | |
| | | routes.forEach(item => { |
| | | if (menuCode.includes(item.code) && item.children && item.children.length > 0) { |
| | | console.log(item) |
| | | item.meta.title = menuNameAndCode.find(item2 => item2.code === item.code).name |
| | | const children = [] |
| | | let flag = false// 判断是否有children存进去 |
| | | item.children.forEach(it => { |
| | | if (menuCode.includes(it.code)) { |
| | | it.meta.title = menuNameAndCode.find(item2 => item2.code === it.code).name |
| | | children.push(it) |
| | | flag = true |
| | | } |
| | |
| | | generateRoutes({ commit }, menu) { |
| | | return new Promise(resolve => { |
| | | const newRoutes = getAsyncRoutes(asyncRoutes, menu) |
| | | console.log(newRoutes, 2) |
| | | commit('SET_ROUTES', newRoutes) |
| | | resolve(newRoutes) |
| | | }) |