后台构建树形结构

后台构建树形结构_第1张图片
后台:
前端需要的数据格式如下,即需要在后台构建这种格式的数据:

treeData:[
{
     
	label:"",
	children:
	[
		{
     label:"",children:[{
     ...}]}
	]
}
]

1.查询根节点:

public List<Map> taxTreeList(String taxcode){
     
    List<Map> mapList = new ArrayList<Map>();
    //查询根节点
    List<TaxCode> list = productMapper.taxTreeListByCode(taxcode);
    for(TaxCode taxcode1:list){
     
        mapList.add(this.selctSonList(taxcode1));
    }
    return mapList;
}

2.根据父节点查询子节点

public Map selctSonList(TaxCode taxcode){
     
    Map map = new HashMap();
    map.put("label",taxcode.getTaxcode());
    //根据父节点查询子节点
    List<TaxCode> list =  productMapper.taxTreeListByCode(taxcode.getTaxcode());
    if(list.size()>0){
     
        List<Map> list1 = new ArrayList<Map>();
        for(TaxCode tax:list){
     
       		//根据父节点查询子节点
            list1.add(this.selctSonList(tax));
        }
        map.put("children",list1);
    };
    return map;
}

前端:
vue页面:

<el-tree ref="tree" :data="treeData" :props="props">
  <span class="span-ellipsis" slot-scope="{node,data}">
    <span :title="data.label" style="font-size: 14px;">{
     {
     data.label}}</span>
  </span>
</el-tree>

·treeData为后台返回的数据;
·label为树形结构展示的内容

效果如下图:
后台构建树形结构_第2张图片

你可能感兴趣的:(vue,java)