You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
import store from '@/store';
|
|
|
|
import generateBtnPermission from '../auth/generateBtnPermission';
|
|
|
|
|
|
|
|
const newRoutes = []
|
|
|
|
|
|
|
|
function createMeta (item) {
|
|
|
|
let meta = { title: item.name }
|
|
|
|
return meta
|
|
|
|
}
|
|
|
|
|
|
|
|
function createRoute (data) {
|
|
|
|
data.map(e => {
|
|
|
|
if (e.path) {
|
|
|
|
let meta = createMeta(e)
|
|
|
|
newRoutes.push({
|
|
|
|
path: e.path,
|
|
|
|
meta
|
|
|
|
})
|
|
|
|
}
|
|
|
|
// 递归生成路由集合
|
|
|
|
e.children && e.children.length && createRoute(e.children)
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
export default function (data, path) {
|
|
|
|
generateBtnPermission(data)
|
|
|
|
createRoute(data)
|
|
|
|
store.commit('addRoutes', newRoutes)
|
|
|
|
}
|