vue3 el-tree树结构相关功能实现

  • 只有底层的子节点才显示复选框,有子节点的父节点都不显示复选框

因为功能需求要隐藏复选框,还要禁用掉父节点,防止触发点击方法(但是不能防止触发node-click方法)。主要使用props里面的disabled进行筛选

:props="{ children: 'camera', label: 'name', disabled: disabledFn }"

其中children字段主要定义树结构渲染的节点,我使用的是camera,那么后端返回的数据里面的camera数组就会渲染到页面的树结构里面。disabled可以定义为一个方法,这个方法会筛选所有节点

//禁用父节点
const disabledFn = (val: any) => {
  if (val.camera || val.disabled) {
    return true
  }
}

我定义的方法是如果节点数据里面有camera字段或者disabled字段值为false,则这个节点就会被禁用不会触发相关方法。

不显示复选框可以直接设置样式

:deep(.el-tree-node) {
    .is-leaf + .el-checkbox .el-checkbox__inner {
      display: inline-block;
    }
    .el-checkbox .el-checkbox__inner {
      display: none;
    }
  }
  • current-change方法,node-click方法,check方法 

这三种方法的触发顺序有先后差别

方法触发顺序差别就会导致各自在获取已勾选节点数据的有差别。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值