vue/el-tree实现简单的模糊查询

1、filter()

filter() 过滤数组也是一个常用的操作,它用于遍历Array把某些元素过滤掉,然后把剩余的元素组成一个新数组返回(不改变原数组)。

2、includes()

filter() 过滤数组也是一个常用的操作,它用于遍历Array把某些元素过滤掉,然后把剩余的元素组成一个新数组返回(不改变原数组)。

一、简单实现模糊查找:

初始化
搜索
代码:
<template>
    <view class="content">
        <input type="text" v-model="text" />
        <view v-for="(item,index) in filterpersons" :key="index">
            <view>{{item}}</view>
        </view>
    </view>
</template>

<script>
    export default {
        data() {
            return {
                text: '',
                list: ["百度一下", "有道翻译", "360地图", "百度网盘", "360浏览器"]
            }
        },
        computed: {
            filterpersons() {
                var $this = this;
                return this.list.filter(function(item) {
                    return item.indexOf($this.text) != -1;
                });
            }
        }
    }
</script>

二、element tree树形控件:

树形控件模糊查询
:filter-node-method="filterNode" 对树节点进行筛选时执行的方法,返回 true 表示这个节点可以显示,返回 false 则表示这个节点会被隐藏。
<el-input
  placeholder="输入关键字进行过滤"
  v-model="filterText">
</el-input>

<el-tree
  class="filter-tree"
  :data="data"
  :props="defaultProps"
  default-expand-all
  :filter-node-method="filterNode"
  ref="tree">
</el-tree>
<script>
  export default {
    data() {
      return {
        filterText: '',
        data:[] //数据
    },
    watch: {
      filterText(val) {
        this.$refs.tree.filter(val);
      }
    },

    methods: {
      filterNode(value, data) {
        if (!value) return true;
        return data.label.indexOf(value) !== -1;
      }
    },
  }
</script>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容