iview tree 获取选中子节点的整条数据链
Posted qdwz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iview tree 获取选中子节点的整条数据链相关的知识,希望对你有一定的参考价值。
这样子获取到数据是,checked等于true的,获取不到他的父级,父级的父级
解决办法代码如下:
//需要有一个唯一ID
//====================================== //扩展remove方法 Array.prototype.remove = function (val) let index = this.indexOf(val); if (index > -1) this.splice(index, 1); ; //====================================== //获取整条数据链 function getParent(array, childs, ids) for (let i = 0; i < array.length; i++) let item = array[i]; if (Number(item.id) === Number(ids)) childs.push(item); return childs; if (item.children && item.children.length > 0) childs.push(item); let rs = getParent(item.children, childs, ids); if (rs) return rs; else childs.remove(item); return false; //获取所有选中节点 let params = this.$refs.tree.getCheckedNodes(); //所有数据 let allData = [‘所有数据‘]; //循环执行所有选中的节点链,放到arr1数组里 let arr1 = []; for (let i = 0; i < params.length; i++) //单条数据链 let aData = getParent(allData, [], params[i].id);//方法入口在这里 for (let y = 0; y < aData.length; y++) //拆分成单个json数组放到arr1里 arr1.push(aData[y]); //arr1去重 es6的set方法 function dedupe(array) return Array.from(new Set(array)); arr1 = dedupe(arr1);
这样就能获取完整的整条数据链
以上是关于iview tree 获取选中子节点的整条数据链的主要内容,如果未能解决你的问题,请参考以下文章
EasyUI tree 选中父节点子节点全部选中,选中子节点父节点不选中
Antd Tree控件onCheck选中子节点时把父节点也选中
iView中Tree组件children中动态checked选中后取消勾选再选中无效问题