java后端,iview前端,代码后半段有controller使用参考
package com.ame.ser.utils;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 树节点工具类
* @author SWJ
*
*/
@Data
public class TreeNodeForVueUtile {
private String title;
private String id;
private String parenIid;
private List<TreeNodeForVueUtile> children;
public TreeNodeForVueUtile() {
}
public TreeNodeForVueUtile(String title, String id, String parenIid) {
this.title = title;
this.id = id;
this.parenIid = parenIid;
}
/**
* 递归(先得到父节点)再递归
* @param list
* @return
*/
public static List<TreeNodeForVueUtile> getTreeResult(List<TreeNodeForVueUtile> list){
List<TreeNodeForVueUtile> listResult =new ArrayList<>();
for (TreeNodeForVueUtile t:list ) {
if (t.getParenIid().equals("0")){
listResult.add(t);// 得到父类
}
}
secondTree(list, listResult);
return listResult;
}
/**
* 父节点获取子节点
* @param list
* @param listResult
* @return
*/
public static void secondTree(List<TreeNodeForVueUtile> list,List<TreeNodeForVueUtile> listResult){
for (TreeNodeForVueUtile tResult:listResult){
List<TreeNodeForVueUtile> childrens =new ArrayList<>();
for (TreeNodeForVueUtile t:list ) {
if(t.getParenIid().equals("0") ){
continue;
}
if(tResult.getId().equals(t.getParenIid())){
childrens.add(t);
}
}
tResult.setChildren(childrens);
if(!tResult.getChildren().isEmpty()){
secondTree(list, tResult.getChildren()) ;
}
}
}
//使用方法参考
/* List< TreeNodeForVueUtile> tree = new ArrayList<>();
for (EventType e:list //原来的数据进行转换,list是原来的数据
) {
tree.add(new TreeNodeForVueUtile(e.getName(), e.getEventTypeId(), e.getParentId()));
}
List<TreeNodeForVueUtile> result = TreeNodeForVueUtile.getTreeResult(tree); //递归得到的结果
*/
}
data数据,给到iview的children即可