• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

vue树状图el-tree父节点选择联动子节点,子节点选不影响父节点

武飞扬头像
十二分的呆逼
帮助2

最终样式图:

学新通

最终效果为:父节点选中时,选中所有子节点,父节点取消时,取消所有子节点,子节点选中不影响父节点

案例一:

选中父节点后取消子节点不影响父节点选中状态

学新通

案例二:

取消父节点后选择所有子节点,父节点状态不变

学新通

代码展示

前端页面代码展示:

  1.  
    <el-tree
  2.  
    style="max-height: 300px;overflow-y: auto;"
  3.  
    :data="custGroupList"
  4.  
    :default-checked-keys="searchForm.custGroup"
  5.  
    :check-strictly="true" **设置树状图状态为互不关联
  6.  
    @check-change="handleMenuCheckChange" **@check-change 与@change效果类型多了种可以获取选中状态的效果
  7.  
    show-checkbox **设置树状图为多选框结构
  8.  
    ref="tree"
  9.  
    node-key="code"
  10.  
    :props="defaultProps">
  11.  
    </el-tree>

js代码展示:

  1.  
    //树状图节点点击选中事件
  2.  
    handleMenuCheckChange(data,check,subCheck){ //data为选中节点信息,check选中状态
  3.  
    if (data.children !== undefined && data.children !== null) { //是否包含子节点
  4.  
    this.checkNode(data.children,check) //调用checkNode方法
  5.  
    }
  6.  
    //获取所有被选中的节点信息
  7.  
    let nodes = this.$refs.tree.getCheckedNodes(false, false)
  8.  
    //将获取到的信息赋值(根据自己的需求)
  9.  
    this.custGroupDesc = nodes.map(item => item.CN_NAME)
  10.  
    this.searchForm.custGroup = nodes.map(item => item.code)
  11.  
    },
  12.  
    //选中所有下级节点
  13.  
    checkNode(data,check){
  14.  
    //遍历所有下级节点信息
  15.  
    data.forEach(item => {
  16.  
    //通过节点信息设置选中状态
  17.  
    this.$refs.tree.setChecked(item,check,false)
  18.  
    //是否包含下级节点,包含下级节点则选中所有下级节点
  19.  
    if(item.children !== undefined){
  20.  
    this.checkNode(item.children,check)
  21.  
    }
  22.  
    })
  23.  
    }
学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhhkbgfg
系列文章
更多 icon
同类精品
更多 icon
继续加载