树节点跳转

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;
  }

 

posted @ 2022-04-12 16:57  宇智波copy  阅读(18)  评论(0编辑  收藏  举报