123456789101112131415161718192021222324252627282930 |
- import cloneDeep from 'lodash.clonedeep'
- export function convertRoutes (nodes) {
- if (!nodes) return null
- nodes = cloneDeep(nodes)
- let queue = Array.isArray(nodes) ? nodes.concat() : [nodes]
- while (queue.length) {
- const levelSize = queue.length
- for (let i = 0; i < levelSize; i++) {
- const node = queue.shift()
- if (!node.children || !node.children.length) continue
- node.children.forEach(child => {
- // 转化相对路径
- if (child.path[0] !== '/' && !child.path.startsWith('http')) {
- child.path = node.path.replace(/(\w*)[/]*$/, `$1/${child.path}`)
- }
- })
- queue = queue.concat(node.children)
- }
- }
- return nodes
- }
|