// 后台返回菜单json数据,根据组件缺少key 与title,需对数据进行二次加工。
// 菜单结构树转换 export const changeMenuTreeData = (arr) => { if (arr) { arr.forEach((item, index) => { // item.child_type=1 表示含有子菜单; item.child_type=2 表示含有子功能 if (Number(item.child_type) === 1) { // 含有子菜单 item.key = item.id ? `menu-${item.id}` : `menu-${index}` item.title = item.app_name ? item.app_name : item.name if (item.children) changeMenuTreeData(item.children) } else if (Number(item.child_type) === 2) { // 含有子菜单 item.key = item.id ? `func-${item.id}` : `func-${item.name}-${index}` item.title = item.name if (item.func) changeMenuTreeData(item.func) } else { item.key = item.id ? `func-${item.id}` : `func-${item.name}-${index}` item.title = item.name } }) } return arr } // 获取菜单结构树所有key,默认下拉树展开 export function getKey(arr, newArr) { newArr = newArr || [] arr.forEach((item, index) => { if (item['key']) { newArr.push(item['key']) if (item['children']) { getKey(item['children'], newArr) } } }) return newArr }