nz-tree中数据的初始化和选中项的高亮显示

本文介绍了如何在ng-zorro的nz-tree组件中初始化数据,包括创建父节点和子节点,以及如何实现选中项的高亮显示。通过设置nzTreeNode的children属性和利用selected属性实现默认选中并高亮的功能。

nz-tree中数据的初始化

1 新建父节点 var nzTreeNode ,并赋值
其中children为[],
2 新建var nzTreeNodeChild
3 通过 nzTreeNode[“children”].push(nzTreeNodeChild) 给父节点的children赋值;

nz-tree选中项的高亮显示

主要是通过selected属性来设置的,将其设置为true时为高亮显示,
比如:this.beamGroupList[0].selected=true;//设置默认选中,并高亮显示

getBeamGroupTreeInfo(patientId: number): void {
    try {
      this._beamGroupService.getAllBeamGroupTreeByPatientId(patientId)
        .pipe()
        .subscribe((result: BeamGroupOutput[]) => {
          this.beamGoupTreeDtoList = result;
          if (this.beamGoupTreeDtoList === null || this.beamGoupTreeDtoList === undefined || this.beamGoupTreeDtoList.length === 0) { return; }
          var templist: NzTreeNodeOptions[] = [];
          for (let i = 0; i < this.beamGoupTreeDtoList.length; i++) {
            var beamGroup = this.beamGoupTreeDtoList[i];

            var nzTreeNode = {
              title: `${beamGroup.beamGroupName}`,
              key: `${beamGroup.id}`,
              type: "BeamGroup",
              selected: this.nodeid == beamGroup.id.toString() ? true : false,//设置选中状态并高亮显示
              extends: true,
              children: []
            };
            if (beamGroup.beamList !== null && beamGroup.beamList !== undefined && beamGroup.beamList.length > 0) {
              for (let i = 0; i < beamGroup.beamList.length; i++) {
                var beam = beamGroup.beamList[i];
                var nzTreeNodeChild = {
                  title: `${beam.beamName}`,
                  key: `${beam.id}`,
                  type: "Beam",
                  selected: this.nodeid == beam.id.toString() ? true : false,           
                  isLeaf: true,
                };
                nzTreeNode["children"].push(nzTreeNodeChild);
              }
            }
            templist.push({
              title: nzTreeNode["title"],
              key: nzTreeNode["key"],
              type: nzTreeNode["type"],
              selected: nzTreeNode["selected"],
              extends: nzTreeNode["extends"],
              children: nzTreeNode["children"],
            })
          }
          this.beamGroupList = templist;
          if (this.beamGroupList.length > 0) {
            if (this.nodeid === null || this.nodeid === undefined) {
              this.nodeid = this.beamGroupList[0].key;
              this.beamGroupList[0].selected=true;//设置默认选中,高亮显示 
              this.selectedNode = this.beamGroupList[0];
            }
            else {
            }
          }
        })
    }
    catch (error) {
      console.log(error)
    }
  }
nz-tree组件是一个树形控件,用于在HTML页面中显示树状结构的数据。要实现nz-tree的检索高亮功能,可以按照以下步骤进行操作: 1. 首先,在HTML文件中引入nz-tree组件,并使用适当的属性绑定数据源。 2. 然后,通过设置nz-tree组件的nzSearchValue属性,将要搜索的关键词传递给组件。 3. 在组件中,可以使用Angular的管道过滤器或自定义方法来实现检索功能。可以遍历树的节点,将匹配到的节点标记为高亮。 4. 可以使用CSS样式来设置高亮效果,如设置背景颜色或字体颜色等。 下面是一个示例代码,演示如何在nz-tree中实现检索高亮功能: ``` <tree-root [nodes]="treeData" [(state)]="treeState"></tree-root> ``` ``` // 在组件的代码中,可以使用以下方式实现检索高亮功能 treeData = [ { name: '节点1', children: [ { name: '子节点1' }, { name: '子节点2' } ] }, { name: '节点2', children: [ { name: '子节点3' }, { name: '子节点4' } ] } ]; treeState = {}; searchValue = ''; highlightNodes() { if (this.searchValue) { this.treeData.forEach(node => { if (node.name.includes(this.searchValue)) { this.treeState[node.name] = true; } else { this.treeState[node.name] = false; } if (node.children) { this.highlightChildren(node.children); } }); } else { this.treeState = {}; } } highlightChildren(children) { children.forEach(child => { if (child.name.includes(this.searchValue)) { this.treeState[child.name] = true; } else { this.treeState[child.name] = false; } if (child.children) { this.highlightChildren(child.children); } }); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值