jeecg-异步加载树结构

1.首先前端所需数据结构->核心是 hasChildren
在这里插入图片描述
2.使用组件

//异步树结构
import JTreeTable from '@/components/jeecg/JTreeTable'

components: {
  JTreeTable,
},

computed: {
  tableProps() {
    let _this = this
    return {
      // 列表项是否可选择
      // 配置项见:https://vue.ant.design/components/table-cn/#rowSelection
      rowSelection: {
        selectedRowKeys: _this.selectedRowKeys,
        onChange: (selectedRowKeys) => _this.selectedRowKeys = selectedRowKeys
      }
    }
  }
},

<div>
  <j-tree-table
    :url="urlItem"
    :childrenUrl='childrenUrl'
    :columns="columns"
    :tableProps="tableProps"
    queryKey='parentCode'
  />
</div>

url指定根节点请求路径
childrenUrl 指定子节点请求接口
queryKey 指定根据哪个字段来去查询

官网连接:http://doc.jeecg.com/2044021

VO结构

/**
 * 用于区域管理的VO结构
 */
@Data
@NoArgsConstructor
public class NjtAreaVO extends NjtArea {

    private Boolean hasChildren;

    public NjtAreaVO(NjtArea njtArea) {
        //设置是否有子节点(这里只要类型小于2都默认有子节点)
        setHasChildren(njtArea.getUnit()<2);
        //        父类属性
        this.setId(njtArea.getId());
        this.setCode(njtArea.getCode());
        this.setParentCode(njtArea.getParentCode());
        this.setName(njtArea.getName());
        this.setUnit(njtArea.getUnit());
        this.setStatus(njtArea.getStatus());
        this.setCreateBy(njtArea.getCreateBy());
        this.setCreateTime(njtArea.getCreateTime());
        this.setUpdateBy(njtArea.getUpdateBy());
        this.setUpdateTime(njtArea.getUpdateTime());
    }
}

后台接口:

@AutoLog(value = "地区层级关系表-列表异步查询")
@ApiOperation(value = "地区层级关系表-列表异步查询",notes = "地区层级关系表-列表异步查询")
@GetMapping(value = "/list3")
public Result<?> list3(){
    //查询出所有父节点
    QueryWrapper<NjtArea> queryWrapper = new QueryWrapper<>();
    queryWrapper.isNull("parent_code");
    List<NjtArea> list = njtAreaService.list(queryWrapper);
    //包装成Vo
    List<NjtAreaVO> voList = new ArrayList<>(list.size());
    for (NjtArea njtArea : list) {
        NjtAreaVO njtAreaVO = new NjtAreaVO(njtArea);
        //设置是否有子节点(这里只要类型小于2都默认有子节点)
        njtAreaVO.setHasChildren(njtAreaVO.getUnit()<2);
        voList.add(njtAreaVO);
    }
    return Result.OK(voList);
}

/**
 * 根据父节点code获取子节点数据
 *
 * @param parentCode
 * @return
 */
@AutoLog(value = "地区层级关系表-列表查询")
@ApiOperation(value = "地区层级关系表-列表查询", notes = "地区层级关系表-列表查询")
@GetMapping(value = "/listChildren2")
public Result<?> listChildren2(@RequestParam String parentCode) {
    QueryWrapper<NjtArea> queryWrapper = new QueryWrapper<>();
    queryWrapper.eq("parent_code", parentCode);
    List<NjtArea> list = njtAreaService.list(queryWrapper);
    List<NjtAreaVO> voList = new ArrayList<>(list.size());
    for (NjtArea njtArea : list) {
        NjtAreaVO njtAreaVO = new NjtAreaVO(njtArea);
        //设置是否有子节点(这里只要类型小于2都默认有子节点)
        njtAreaVO.setHasChildren(njtAreaVO.getUnit()<2);
        voList.add(njtAreaVO);
    }
    return Result.OK(voList);
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值