el-tree父子节点相互关联操作

贾璜
• 阅读 2405

本次研究课题为:

el-tree如何在点击父节点时全部选中所有子节点,点击子节点时,父节点依然是选中状态

这个功能在elementui中不予提供,要自己写

下面给小伙伴们提供一下思路和代码

例如组织架构树形结构

<el-tree
    :data="data"
    show-checkbox
    default-expand-all
    node-key="id"
    ref="organizationTree"
    highlight-current
    @check="chooseDepartment"
    :expand-on-click-node="false"
    :check-strictly="true"
    :props="defaultProps">
</el-tree>
chooseDepartment(checkedKeys,checkedData){
    // 取消勾选
    let [accessibleList,getCheckedKeys] = [this.accessibleList,this.$refs.organizationTree.getCheckedKeys()];
    // 循环删除this.accessibleList中的项
    for(var i in accessibleList){
        if(accessibleList[i].id == checkedKeys.id){
            this.accessibleList.splice(i,1);
            console.log(this.accessibleList);
            return;
        }
    }
    // 添加勾选
    let [arr,newArr] = [[],this.$refs.organizationTree.getCheckedKeys()];
    arr.push(checkedKeys);
    function dealData(arr,newArr){
        for(var i in arr){
            newArr.push(arr[i].id);
            dealData(arr[i].children,newArr);
        }
    }
    // newArr代表获取出来的当前节点以及其下的所有子节点的id
    dealData(arr,newArr);
    this.$refs.organizationTree.setCheckedKeys(newArr);
    // newJsonArr代表所有选中的节点
    let newJsonArr = this.$refs.organizationTree.getCheckedNodes();
    this.accessibleList = newJsonArr;
    console.log(this.accessibleList);
},

最后打印结果this.accessibleList是一个类数组对象

同学们可根据自己需要来获取数组、对象、逗号字符串等多种格式的数据

el-tree父子节点相互关联操作
原创文章链接:https://www.toutiao.com/i6881556363982406152/

点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
3年前
JS获取子节点、父节点和兄弟节点的方法实例总结
1.js获取子节点的方式1.通过获取dom方式直接获取子节点varadocument.getElementById("test").getElementsByTagName("div"); 2.通过children来获取子节点利用children来获取子元素是最方便的,他也会返回出一个
Wesley13 Wesley13
3年前
GoJS API学习
varnode{};node"key""节点Key";node"loc""00";//节点坐标node"text""节点名称";//添加节点通过按钮点击,添加新的节点到画布myDiagram.model.addNodeData(nod
Stella981 Stella981
3年前
ADVtree
循环第一个根节点(Nodes0)下的子节点(Node)并添加子节点foreach(NodetninclTree1.advTree1.Nodes0.Nodes){NodennewNode();
Wesley13 Wesley13
3年前
oracle的start with connect by prior如何使用
oracle的startwithconnectbyprior是根据条件递归查询"树",分为四种使用情况: 第一种:startwith子节点ID'...'connectbyprior子节点ID父节点IDselectfrommdm_organizationostartwitho.org_code'
Stella981 Stella981
3年前
ELementUI 树形控件tree 获取子节点同时获取半选择状态的父节点ID
使用elementui tree树形控件的时候,在选择一个子节点后,使用getCheckedKeys后,发现只能返回子节点的ID,但是其父节点ID没有返回。解决办法有三种:1.elementui有一个获取半选择状态值ID得方法  getHalfCheckedKeys  这个方法用来获取父节点半选择状态ID值2.修改源码  找到
Stella981 Stella981
3年前
Consistent hashing一致性算法原理
最近在整理redis分布式集群,首先就整理一下分布式算法原理。常见的分区规则有哈希分区和顺序分区两种,Redis采用的是哈希分区规则。节点取余分区使用特定的数据,如Redis的键或用户ID为key,节点数量为N,则:hash(key)%N,计算出哈希值,然后决定映射到哪个节点上,如节点数为4时,哈希值的结果可能为0、1、2,3.现假
Wesley13 Wesley13
3年前
mysql 递归查询父节点 和子节点
查父集合!复制代码(https://oscimg.oschina.net/oscnet/eb1fba162f56102d7cc443e384b4b808941.gif)dropFUNCTIONgetParentListCREATEFUNCTIONgetParentList(roo
Stella981 Stella981
3年前
ElementUI的表格树(树型结构表格),很简单方式,el
效果:!(https://oscimg.oschina.net/oscnet/5385e039e9c357d0df15adccd28acc52e0c.png)在eltable中,支持树类型的数据的显示。当row中包含 children 字段时,被视为树形数据。渲染树形数据时,必须要指定 rowkey。支持子节点数据异步加载。设
小万哥 小万哥
1年前
DOM 节点遍历:掌握遍历 XML文档结构和内容的技巧
遍历是指通过或遍历节点树遍历节点树通常,您想要循环一个XML文档,例如:当您想要提取每个元素的值时。这被称为"遍历节点树"。下面的示例循环遍历所有的子节点,并显示它们的名称和值:htmlvarx,i,xmlDoc;vartxt"";vartext"""E
深度学习 深度学习
1个月前
【CSP-S 2019】括号树(洛谷P5658):栈+DFS
一、题目解读括号树问题(洛谷P5658)要求处理一个由括号序列转化的树结构:每个节点表示一个括号,'('为子节点,')'为父节点。题目给定一棵n个节点的树,需计算每个节点的深度(括号层数),并输出所有节点深度与节点编号乘积的异或和。核心在于将括号序列转化为