ant-design-vue生成树型菜单

7 篇文章 1 订阅
1 篇文章 0 订阅

前台:

//添加树形菜单控件
<a-tree show-line :treeData="treeData">
      <a-icon slot="switcherIcon" type="down" />

</a-tree>
//在data中定义数据源
treeData:'',
//请求数据方法
getTree(){
          let params = '';
          getAction('/department/subDepartment/getTree', params).then((res) => {
              if (res.success) {
                  this.treeData = res.result;
              }
              if(res.code===510){
                  this.$message.warning(res.message)
              }
              this.loading = false;
          })
      }

后台返回树形json数据

public Result<?> getTree(HttpServletRequest req) {
		 List<SubDepartment> list = subDepartmentService.list();
		 List<SubDepartment> treeList = new ArrayList<>();
		 for(SubDepartment subDepartment:list){
		 	if(subDepartment.getParentId().equals("0")){
				subDepartment.setTitle(subDepartment.getSubDepName());
				subDepartment.setKey(subDepartment.getId());
		 		subDepartment.setChildren(subDepartmentService.getChildrenTree(subDepartment.getId(),list));
		 		treeList.add(subDepartment);
			}
		 }
		 Result result = new Result();
		 result.setResult(treeList);
		 result.setSuccess(true);
		 return result;
	 }


 @Override
    public List<SubDepartment> getChildrenTree(String id, List<SubDepartment> subDepartmentList) {
        List<SubDepartment> newTree = new ArrayList<>();
        for(SubDepartment subDepartment:subDepartmentList){
            if(subDepartment.getParentId().equals("0")){
                continue;
            }
            subDepartment.setTitle(subDepartment.getSubDepName());
            subDepartment.setKey(subDepartment.getId());
            if(id.equals(subDepartment.getParentId())){
                //递归获取子节点下的子节点
                subDepartment.setChildren(getChildrenTree(subDepartment.getId(),subDepartmentList));
                newTree.add(subDepartment);
            }
        }
        return newTree;
    }

实体类中需要包含key和title字段。

参考链接:https://blog.csdn.net/weixin_42528855/article/details/116259541

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值