el-tree单选加节点过滤

16 篇文章 0 订阅
13 篇文章 0 订阅

<template>
	<div class="eltree">
		<el-input v-model="filterText" placeholder="Filter keyword" />
		<el-tree
			ref="tree"
			:data="treeData"
			show-checkbox
			node-key="id"
			:props="defaultProps"
			:check-strictly="true"
			@check-change="selectTreeNode"
			:filter-node-method="filterNode"
		></el-tree>
	</div>
</template>
 
<script>
export default {
	name: "eltree",
	data() {
		return {
			treeData: [
				{
					id: 1,
					label: "一级 1",
					children: [
						{
							id: 4,
							label: "二级 1-1",
							children: [
								{
									id: 9,
									label: "三级 1-1-1",
								},
								{
									id: 10,
									label: "三级 1-1-2",
								},
							],
						},
					],
				},
				{
					id: 2,
					label: "一级 2",
					children: [
						{
							id: 5,
							label: "二级 2-1",
						},
						{
							id: 6,
							label: "二级 2-2",
						},
					],
				},
				{
					id: 3,
					label: "一级 3",
					children: [
						{
							id: 7,
							label: "二级 3-1",
						},
						{
							id: 8,
							label: "二级 3-2",
						},
					],
				},
			],
			defaultProps: {
				children: 'children',
				label: 'label'
			},
			filterText: '',
		};
	},
	watch: {
		filterText(val) {
			this.$refs.tree.filter(val);
		}
	},
	methods: {
		/**
		   * @description:  选择树节点
		   * @param {Obejct} data 该节点所对应的对象
		   * @param {Obejct} node 该节点所对应的Node
		   * @param {Obejct} tree 节点组件本身
		   */
		selectTreeNode(data, checked, tree) {
			if (checked) {
				this.$refs.tree.setCheckedNodes([data])
				this.filterText = data.label
			}
			console.log(data, checked, tree)
		},
		filterNode(value, data) {
			if (!value) return true
			return data.label.indexOf(value) !== -1
		}
	},
};
</script>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值