首页 > 编程知识 正文

大数据ui,饿了么element.ui

时间:2023-05-06 11:33:59 阅读:180397 作者:1516

利用递归迭代比较两组树结构的内容,并相应加以变更

1 .进入后变色的效果(比较前后两组数据,两个对应数据中即使有一个属性不同)图中“数量”字段不同,同时变色。 ) )

compareTree () { let preChangeObj=' '; //更改前的let changeObj=" "; //更改后的constfilterdata=(list ) )/list参数包括节点和数据if(array.isarray ) (list.some ) ) (RES )/包含定义中的两个变量: prechangeobj=document.getelementbyid (prechangeobj ' RES.data.materiali dres.parent.data ),用于稍后显示变色j=document.getelementbyid (change obj ' RES.data.materiali dres.parent.data.materialid ).parentNode; //console.log (/filter data2(this.$ refs.changetree.root.child nodes,res )、//res.data //); let msg=filter data2(this.$ refs.changetree.root.child nodes,res ); //重复if(msg ) ) else(/msg为假,变色)//console.log ) '变色); prechange obj.style.back ground=' # f56c6'; change obj.style.back ground=' # f 56c 6c '; //console.log(RES.childnodes ); //当前数据包含children节点,如果为length0,则仍包含数据。 继续函数//,可以看到这样的循环是分层比较循环,完成了第一层的比较。 此时的children节点长度为2 //第二层的比较,即测试材料2和SFP光纤模块,比较完成后与下一层//以后的相同,RES.data.children.length 0: false //递归}; (; constfilterdata2=(list,target,result=true((if ) array.isarray (list ) ) (list.some ) ) (RES ) )。 只有={ if } target.data.materialid==RES.data.materialid.parent.data.materialid==RES.parent.data 且parent.data下的数据等于当前data,因此它认为不会过滤顶级节点,即constobj1=object.assign({},res.data )。 constobj2=object.assign (,target.data ); //深度复制用于删除和比较不需要比较的属性,如果直接删除,则children中的数据将删除obj1. children; delete obj2.children; delete obj1.parentId; delete obj2.parentId; //重新转换为字符串直接等于判定的result=JSON.stringify(obj1)==JSON.stringify ) obj2); /*输出后,可以看到所有循环比较的数据*///console.log (JSON.stringify (obj1) ); //console.log (JSON.stringify (obj2) ); if (! result (如果//result为true,则函数返回true;否则返回false return; } return true; }elseif(RES.data.Children? RES.data.children.length 0: false (/在变更后的当前层(RES.data )中找不到对应的变更前数据) target.data ),继续在下层的resure ); 返回结果; (; //执行函数,//参数:更改前数据节点root的childNodes (我们主要使用下一个层次的childNodes和当前层次的data )过滤器数据(this.$ refs.prechangetree 、说明:

1 .参数: this.$ refs.prechangetree.root.child nodes

由于el-tree的特性允许获取每行的node和data,因此每个数据的id是唯一的,用于变色。

2 .将鼠标移动到某行数据时,相应的数据同时高亮显示

mouseovertree(node,data,elementId,tree ) { let changeObj=' '; change obj=document.getelementbyid (elementi ddata.materiali dnode.parent.data.materialid ).parentNode; constgetdata=(resultid,list=this.$ refs [ tree ].root.child nodes )={if(Array.isarray(list ) ) ) list.lefs change obj.style.color=this.theme; }if(res.childNodes ) getdata ) resultid,RES.childnodes ); //迭代}; (; getdata(data.materialid; (,

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。