el-tree 插槽的筛选

            <el-tree
                class="tree-deep"
                :data="treeData"
                ref="tree"
                :props="defaultProps"
                :filter-node-method="filterNode"
                default-expand-all
              >
                <div class="case-list-box" slot-scope="{ node, data }">
                  <div v-if="data.list">
                    <span
                      v-for="(item, index) in data.list"
                      @click="appClick(item)"
                      :key="index"
                    >
                      <img :src="item.icon" alt="" />
                      <i :class="currentAppId===item.id ? 'cax-select' : ''">
                        {{ item.label }}
                      </i>
                    </span>
                  </div>
                  <span v-else>
                    <span style="color: #4a4a4a">{{ node.label }} </span>
                    <span style="color: #82868b">
                      ({{ data.children[0].list.length > 0 ? data.children[0].list.length : 0 }})
                    </span>
                  </span>
                </div>
              </el-tree>
caseList: [
        {
          label: "EDA设计",
          children: [
            {
              label: "",
              list: [],
            },
          ],
        },
        {
          label: "三维设计",
          children: [
            {
              label: "",
              list: [],
            },
          ],
        },
        {
          label: "日常办公",
          children: [
            {
              label: "",
              list: [],
            },
          ],
        },
        {
          label: "仿真处理",
          children: [
            {
              label: "",
              list: [],
            },
          ],
        },
      ],

this.treeData = caseList
inputChange(val) {
      this.treeData = []
      this.caseList.forEach((item, i) => {
        const params = {
          label: item.label,
          children: []
        }
        if(item.children && item.children.length) {
          item.children.forEach((item2, index2) => {
            params.children[index2] =  params.children[index2] || []
            params.children[index2].label = item2.label
            params.children[index2].list = params.children[index2].list || []
            if(item2.list && item2.list.length) {
              params.children[index2].list = item2.list.filter(item3 => {
                return item3.label.toLowerCase().indexOf(val.toLowerCase()) > -1
              })
            }
          })
        }
        this.treeData.push(params)
      })
    },

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值