树
树节点跳转
public toTreeNode(position: string, level: number): void { const e = document.querySelectorAll('.container-compare-tree');// 获取dom const left = e[0];// 左treedom const right = e[1];// 左treedom if (level === 1) { // 域节点 if (position === 'left') { setTimeout(() => { const element = this._el.nativeElement.querySelector (`#nodeRight${this.leftShemaid}`); right?.scrollTo(0, element?.offsetTop - 250); }, 500); } else { setTimeout(() => { const element = this._el.nativeElement.querySelector (`#nodeLeft${this.leftShemaid}`); left?.scrollTo(0, element?.offsetTop - 250); }, 500); } } }
树结构筛选
const copyTree = JSON.parse(JSON.stringify(this.searchDatabaseList)); this.databaseList = copyTree.filter((node) => this.filterData(node, (ele) => { return ele.title.indexOf(this.searchValue) >= 0; }) ); public filterData(node: any, filter: any): any { let flag = false; if (filter(node)) { flag = true; } else if (node.children instanceof Array) { const dataCh = node.children.filter((ele) => this.filterData(ele, filter) ); node.children = dataCh; if (node.children.length > 0) { flag = true; } } return flag; }