根据条件控制el-tree节点显示隐藏

实现el-tree组件根据后台提供的全量数据,前端通过filterNode方法动态控制树形结构中包含特定关键词如VS的节点显示,其他节点隐藏。

需求:

后台返回el-tree全量数据,前端根据条件控制每个节点显示隐藏

实现:

获取后台数据后,调用this.$refs.componentTree.filter(“VS”);触发filterNode 方法,按照条件控制显示

效果:(条件:只显示name中包含 "VS"的节点,)

在这里插入图片描述

代码:

<template>
  <div style="padding: 20px">
    <el-tree
      ref="componentTree"
      style="height: 100%"
      class="hx-scroll"
      :data="componentTreeData"
      highlight-current
      show-checkbox
      node-key="id"
      :expand-on-click-node="false"
      default-expand-all
      :filter-node-method="filterNode"
      :props="{ label: 'name', children: 'children' }"
    >
    </el-tree>
  </div>
</template>

<script>
export default {
   
   
  name: "test",
  data() {
   
   
    return {
   
   
      componentTreeData: [
        {
   
   
          children: [
            {
   
   
              budgetVersionId: 1842182452449281,
              children: [
                {
   
   
                  budgetVersionId: 1842182452449281,
                  count: 0,
                  createTime: 1682301810000,
                  createdHostIp: "10.1.46.78,10.42.0.0",
                  creator: "system",
                  creatorId: -1,
                  id: 1849351792011922,
                  lastOperator: "韦民扬",
                  lastOperatorId: 1658858666192897,
                  name: "柱、暗柱VS柱",
                  new: false,
                  orderNo: 2,
                  parentId: 1849351790963362,
                  projectId: 1774308439969793,
                  reportType: 1,
                  status: 1,
                  thirdCommpent: "柱,暗柱",
                  type: 2,
                  updateHostIp: "10.1.46.78,10.42.0.0",
                  updateTime: 1682301810000,
                },
                {
   
   
                  budgetVersionId: 1842182452449281,
                  count: 0,
                  createTime: 1682301810000,
                  createdHostIp: "10.1.46.78,10.42.0.0",
                  creator: "system",
                  creatorId: -1,
                  id: 1849351790963361,
                  lastOperator: "韦民扬",
                  lastOperatorId: 1658858666192897,
                  name: "柱帽VS柱帽",
                  new: false,
                  orderNo: 3,
                  parentId: 1849351790963362,
                  projectId: 1774308439969793,
                  reportType: 1,
                  status: 1,
                  thirdCommpent: "柱帽",
                  type: 2,
                  updateHostIp: "10.1.46.78,10.42.0.0",
                  updateTime: 1682301810000,
                },
                {
   
   
                  budgetVersionId: 1842182452449281,
                  count: 0,
                  createTime: 1682301810000,
                  createdHostIp: "10.1.46.78,10.42.0.0",
                  creator: "system",
                  creatorId: -1,
                  id: 1849351792011921,
                  lastOperator: "韦民扬",
                  lastOperatorId: 1658858666192897,
                  name: "构造柱",
                  new: false,
                  orderNo: 4,
                  parentId: 1849351790963362,
                  projectId: 1774308439969793,
                  reportType: 1,
                  status: 1,
                  thirdCommpent: "构造柱",
                  type: 2,
                  updateHostIp: "10.1.46.78,10.42.0.0",
                  updateTime: 1682301810000,
                },
              ],
              count: 0,
              createTime: 1682301810000,
              createdHostIp: "10.1.46.78,10.42.0.0",
              creator: "system",
              creatorId: -1,
              id: 1849351790963362,
              lastOperator: "韦民扬",
              lastOperatorId: 1658858666192897,
              name: "柱",
              new: false,
              orderNo: 1,
              projectId: 1774308439969793,
              reportType: 1,
              status: 1,
              type: 1,
              updateHostIp: "10.1.46.78,10.42.0.0",
              updateTime: 1682301810000,
            },
            {
   
   
              budgetVersionId: 1842182452449281,
              children: [
                {
   
   
                  budgetVersionId: 1842182452449281,
                  count: 0,
                  createTime: 1682301810000,
                  createdHostIp: "10.1.46.78,10.42.0.0",
                  creator: "system",
                  creatorId: -1,
                  id: 1849351792011920,
                  lastOperator: "韦民扬",
                  lastOperatorId: 1658858666192897,
                  name: "混凝土墙VS剪力墙",
                  new: false,
                  orderNo: 6,
                  parentId: 1849351790963360,
                  projectId: 1774308439969793,
                  reportType: 1,
                  status: 1,
                  thirdCommpent: "剪力墙",
                  type: 2,
                  updateHostIp: "10.1.46.78,10.42.0.0",
                  updateTime: 1682301810000,
                },
                {
   
   
                  budgetVersionId: 1842182452449281,
                  count: 0,
                  createTime: 1682301810000,
                  createdHostIp: "10.1.46.78,10.42.0.0",
                  creator: "system",
                  creatorId: -1,
                  id: 1849351790963391,
                  lastOperator: "韦民扬",
                  lastOperatorId: 1658858666192897,
                  name: "砌体墙VS砌体墙",
                  new: false,
                  orderNo: 7,
                  parentId: 1849351790963360,
                  projectId: 1774308439969793,
                  reportType: 1,
                  status: 1,
                  thirdCommpent: "砌体墙",
                  type: 2,
                  updateHostIp: "10.1.46.78,10.42.0.0",
                  updateTime: 1682301810000,
                },
              ],
              count: 0,
              createTime: 1682301810000,
              createdHostIp: "10.1.46.78,10.42.0.0",
              creator: "system",
              creatorId: -1,
              id: 1849351790963360,
              lastOperator: "韦民扬",
              lastOperatorId: 1658858666192897,
              name: "墙",
              new: false,
              orderNo: 5,
              projectId: 1774308439969793,
              reportType: 1,
              status: 1,
              type: 1,
              updateHostIp: "10.1.46.78,10.42.0.0",
              updateTime: 1682301810000,
            },
            {
   
   
              budgetVersionId: 1842182452449281,
              children: [
                {
   
   
                  budgetVersionId: 1842182452449281,
                  count: 0,
                  createTime: 1682301810000,
                  createdHostIp: "10.1.46.78,10.42.0.0",
                  creator: "system",
                  creatorId: -1,
                  id: 1849351790963390,
                  lastOperator: "韦民扬",
                  lastOperatorId: 1658858666192897,
                  name: "门VS门",
                  new: false,
                  orderNo: 9,
                  parentId: 1849351792011919,
                  projectId: 1774308439969793,
                  reportType: 1,
                  status: 1,
                  thirdCommpent: "门",
                  type: 2,
                  updateHostIp: "10.1.46.78,10.42.0.0",
                  updateTime: 1682301810000,
                },
                {
   
   
                  budgetVersionId: 1842182452449281,
                  count: 0,
                  createTime: 1682301810000,
                  createdHostIp: "10.1.46.78,10.42.0.0",
                  creator: "system",
                  creatorId: -1,
                  id: 1849351792011918,
                  lastOperator: "韦民扬",
                  lastOperatorId: 1658858666192897,
                  name: "窗VS窗",
                  new: false,
                  orderNo: 10,
                  parentId: 1849351792011919,
                  projectId: 1774308439969793,
                  reportType: 1,
                  status: 1,
                  thirdCommpent: "窗",
                  type: 2,
                  updateHostIp: "10.1.46.78,10.42.0.0",
                  updateTime: 1682301810000,
                },
                {
   
   
                  budgetVersionId: 1842182452449281,
                  count: 0,
                  createTime: 1682301810000,
                  createdHostIp: "10.1.46.78,10.42.0.0",
                  creator: "system",
                  creatorId: -1,
                  id: 1849351790963389,
                  lastOperator: "韦民扬",
                  lastOperatorId: 1658858666192897,
                  name: "门联窗",
                  new: false,
                  orderNo: 11,
                  parentId: 1849351792011919,
                  projectId: 1774308439969793,
                  reportType: 1,
                  status: 1,
                  thirdCommpent: "门联窗",
                  type: 2,
                  updateHostIp: "10.1.46.78,10.42.0.0",
                  updateTime: 1682301810000,
                },
                {
   
   
                  budgetVersionId: 1842182452449281,
                  count: 0,
                  createTime: 1682301810000,
                  createdHostIp: "10.1.46.78,10.42.0.0",
                  creator: "system",
                  creatorId: -1,
                  id: 1849351792011917,
                  lastOperator: "韦民扬",
                  lastOperatorId: 1658858666192897,
                  name: "飘窗",
                  new: false,
                  orderNo: 12,
                  parentId: 1849351792011919,
                  projectId: 1774308439969793,
                  reportType: 1,
                  status: 1,
                  thirdCommpent: "飘窗",
                  type: 2,
                  updateHostIp: "10.1.46.78,10.42.0.0",
                  updateTime: 1682301810000,
                },
                {
   
   
                  budgetVersionId: 1842182452449281,
                  count: 0,
                  createTime: 1682301810000,
                  createdHostIp: "10.1.46.78,10.42.0.0",
                  creator: "system",
                  creatorId: -1,
                  id: 1849351790963388,
                  lastOperator: "韦民扬",
                  lastOperatorId: 1658858666192897,
                  name: "墙洞VS墙洞",
                  new: false,
                  orderNo: 13,
                  parentId: 1849351792011919,
                  projectId: 1774308439969793,
                  reportType: 1,
                  status: 1,
                  thirdCommpent: "墙洞",
                  type: 2,
                  updateHostIp: "10.1.46.78,10.42.0.0",
                  updateTime: 1682301810000,
                },
                {
   
   
                  budgetVersionId: 1842182452449281,
                  count: 0,
                  createTime: 1682301810000,
                  createdHostIp: "10.1.46.78,10.42.0.0",
                  creator: "system",
                  creatorId: -1,
                  id: 1849351792011916,
                  lastOperator: "韦民扬",
                  lastOperatorId: 1658858666192897,
                  name: "板洞",
                  new: false,
                  orderNo: 14,
                  parentId: 1849351792011919,
                  projectId: 1774308439969793,
                  reportType: 1,
                  status: 1,
                  thirdCommpent: "板洞",
                  type: 2,
                  updateHostIp: "10.1.46.78,10.42.0.0",
                  updateTime: 1682301810000,
                },
              ],
              count: 0,
              createTime: 1682301810000,
              createdHostIp: "10.1.46.78,10.42.0.0",
              creator: "system",
              creatorId: -1,
              id: 1849351792011919,
              lastOperator: "韦民扬",
              lastOperatorId: 1658858666192897,
              name: "门窗洞",
              new: false,
              orderNo: 8,
              projectId: 1774308439969793,
              reportType: 1,
              status: 1,
              type: 1,
              updateHostIp: "10.1.46.78,10.42.0.0",
              updateTime: 1682301810000,
            },
            {
   
   
              budgetVersionId: 1842182452449281,
              children: [
                {
   
   
                  budgetVersionId: 1842182452449281,
                  count: 0,
                  createTime: 1682301810000,
                  createdHostIp: "10.1.46.78,10.42.0.0",
                  creator: "system",
                  creatorId: -1,
                  id: 1849351792011915,
                  lastOperator: "韦民扬",
                  lastOperatorId: 1658858666192897,
                  name: "梁、环梁VS梁",
                  new: false,
                  orderNo: 16,
                  parentId: 1849351790963387,
                  projectId: 1774308439969793,
                  reportType: 1,
                  status: 1,
                  thirdCommpent: "梁",
                  type: 2,
                  updateHostIp: "10.1.46.78,10.42.0.0",
                  updateTime: 1682301810000,
                },
                {
   
   
                  budgetVersionId: 1842182452449281,
                  count: 0,
                  createTime: 1682301810000,
                  createdHostIp: "10.1.46.78,10.42.0.0",
                  creator: "system",
                  creatorId: -1,
                  id: 1849351790963386,
                  lastOperator: "韦民扬",
                  lastOperatorId: 1658858666192897,
                  name: "连梁",
                  new: false,
                  orderNo: 17,
                  parentId: 1849351790963387,
                  projectId: 1774308439969793,
                  reportType: 1,
                  status: 1,
                  thirdCommpent: "连梁",
                  type: 2,
                  updateHostIp: "10.1.46.78,10.42.0.0",
                  updateTime: 1682301810000,
                },
                {
   
   
                  budgetVersionId: 1842182452449281,
                  count: 0,
                  createTime: 1682301810000,
                  createdHostIp: "10.1.46.78,10.42.0.0",
                  creator: "system",
                  creatorId: -1,
                  id: 1849351792011914,
                  lastOperator: "韦民扬",
                  lastOperatorId: 1658858666192897,
                  name: "圈梁",
                  new: false,
                  orderNo: 18,
                  parentId: 1849351790963387,
                  projectId: 1774308439969793,
                  reportType: 1,
                  status: 1,
                  thirdCommpent: "圈梁",
                  type: 2,
                  updateHostIp: "10.1.46.78,10.42.0.0",
                  updateTime: 1682301810000,
                },
                {
   
   
                  budgetVersionId: 1842182452449281,
                  count: 0,
                  createTime: 1682301810000,
                  createdHostIp: "10.1.46.78,10.42.0.0",
                  creator: "system",
                  creatorId: -1,
                  id: 1849351790963385,
                  lastOperator: "韦民扬",
                  lastOperatorId: 1658858666192897,
                  name: "过梁",
                  new: false,
                  orderNo: 19,
                  parentId: 1849351790963387,
                  projectId: 1774308439969793,
   
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值