【element-ui】el-select和el-tree组合使用实现搜索功能

效果

在这里插入图片描述

html

<el-select ref='stlectTree' v-model="treeSelectText" placeholder="请选择" filterable :filter-method="filterMethod" size="small">
	<el-option :value="treeValue.id" :label="treeValue.label" style="height: auto;padding:0;">
       <el-tree 
            class="ctims-treebox"
            style="font-weight:400;"
            :data="options"
            :props="defaultProps"
            default-expand-all
            node-key="codeId"
            :expand-on-click-node="false"
            highlight-current
            @node-click="nodeClick"
            :filter-node-method="filterNode"
            ref="tree" />
    </el-option>
</el-select>

js

data() {
	return {
		options: [{
           	id: '000',
            label: '根目录',
            children: [{
           		id: '001',
            	label: '123321',
            },{
           		id: '002',
            	label: '123213',
            },{
           		id: '003',
            	label: '132321',
            }]
        }],
		treeSelectText: '',
		treeValue: {},
		defaultProps: {
          	children: "children",
            label: "label"
        },
	}
},
methods: {
    // 点击tree节点
    nodeClick(item) {
    	const { id, label } = item
	    this.treeValue.id = id;
	    this.treeValue.label= label;
	    this.treeSelectText = label
	    this.$refs.stlectTree.blur()
	},
	// 搜索逻辑
    filterMethod(value) {
        this.$refs.tree.filter(value)
    },
    // tree节点过滤
    filterNode(value, data) {
        if (!value) return true
        return data.codeName.indexOf(value) !== -1
    },
}

filterable: 是否启用搜索功能。默认情况下,Select 会找出所有label属性包含输入值的选项。
filter-method: 我们需要自定义搜索方法时执行的方法
filter-node-method: 对树节点进行筛选时执行的方法,返回 true 表示这个节点可以显示,返回 false 则表示这个节点会被隐藏,

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值