//获取数据
List<SysMenu> menus = menuService.selectMenuList(menu, userId);
//配置
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
treeNodeConfig.setIdKey("menuId");//这里的值就是数据显示的字段名称,可不配置,默认为"id"
treeNodeConfig.setParentIdKey("parentId");//这里的值就是数据显示的字段名称,可不配置,默认为"parentId"
treeNodeConfig.setNameKey("menuName");//这里的值就是数据显示的字段名称,可不配置,默认为 "name"
treeNodeConfig.setWeightKey("orderNum");//这里的值就是数据显示的字段名称,可不配置,默认为"weight"
treeNodeConfig.setChildrenKey("children");//这里的值就是数据显示的字段名称,可不配置,默认为"children"
// 最大递归深度
//treeNodeConfig.setDeep(2);//可不用配置,默认无限制
List<Tree<String>> treeNodes = TreeUtil.build(menus, "0",treeNodeConfig,
(treeNode, tree) -> {
tree.setId(treeNode.getMenuId().toString());//主ID
tree.setParentId(treeNode.getParentId().toString());//父ID
tree.setWeight(treeNode.getOrderNum());//排序
tree.setName(treeNode.getMenuName());//名称
// 扩展属性 ...
tree.putExtra("path", treeNode.getPath());//添加显示字段,及其名称
tree.putExtra("menuType", treeNode.getMenuType());//添加显示字段,及其名称
});
System.out.println(JSONUtil.toJsonStr(treeNodes));