如果要实现以上传值架构的话,系统的传值可以这样。
返回一个List<Tree<Long>>列表
@Override public List<Tree<Long>> selectDeptTreeList(SysDept dept) { List<SysDept> depts = this.selectDeptList(dept); return buildDeptTreeSelect(depts); }
这个列表里面包含
public List<Tree<Long>> buildDeptTreeSelect(List<SysDept> depts) { if (CollUtil.isEmpty(depts)) { return CollUtil.newArrayList(); } return TreeBuildUtils.build(depts, (dept, tree) -> tree.setId(dept.getDeptId()) .setParentId(dept.getParentId()) .setName(dept.getDeptName()) .setWeight(dept.getOrderNum())); }
这些数据还需要一个工具类 TreeBuildUtils
/** * 根据前端定制差异化字段 */ public static final TreeNodeConfig DEFAULT_CONFIG = TreeNodeConfig.DEFAULT_CONFIG.setNameKey("label"); public static <T, K> List<Tree<K>> build(List<T> list, NodeParser<T, K> nodeParser) { if (CollUtil.isEmpty(list)) { return null; } K k = ReflectUtils.invokeGetter(list.get(0), "parentId"); return TreeUtil.build(list, k, DEFAULT_CONFIG, nodeParser); }