Element Tree 树形控件自定义显示样式与hover事件绑定实现添加、删除和修改

本文详细介绍了如何在Vue项目中使用ElementTree树形控件,通过自定义显示样式和绑定hover事件,实现在鼠标悬停时显示添加、修改和删除按钮的功能。同时,解决了自定义节点内容显示不正确的问题,并分享了实现过程中的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Element Tree 树形控件自定义显示样式与hover事件绑定实现添加、删除和修改


最近在搞erp项目对应后台的管理功能,为了加速开发使用了 vue-element-admin 开发,使用的是elementUi框架,在项目中使用element的树形控件的时候遇到点问题,分享给大家。
首先先了解一下树形控件: elementTree 树形控件.
在这里插入图片描述

我的项目需求是实现鼠标hover上去的时候在对应的树形结构后面显示 添加 修改 和 删除 并实现功能,查看了对应element文档刚好有类似的功能,
在这里插入图片描述
在这里插入图片描述
这个自定义结点内容写的也未免有点太唐突了点…要完成项目需求是远远不够的,再往下找,没有了
当我尝试使用element的自定义结点,给对应的结点添加v-show="false"发现却并没有起作用,怀疑是自己写法错误,找一个案例测了一下,不是我的问题,想起来曾经使用过iview脚手架,也做过类似的操作于是找了出来.修改一下完成了需求

   <--这是我的树形控件--> 
    <el-tree :data="data4" show-checkbox node-key="value" default-expand-all :expand-on-click-node="false" :render-content="renderContent">
	</el-tree>

renderContent 是自定义显示的回掉 绑定的data4是参照element但是我让添加了一个is_show 字段,后来想想可以使用本地中间变量来判断

renderContent(h, {
				node,
				data,
				store
			}) {
				return h('span', {
					style: {
//						color: "red",
					},
					//这里添加hover事件
					on: {
						'mouseenter': () => {
							data.is_show = true;
						},
						//鼠标离开
						'mouseleave': () => {
							data.is_show = false;
						}
					}
				}, [
					h('span', {
						//显示名称
					}, node.label),
					h('span', {
						style: {
							display: data.is_show ? '' : 'none',
						},
					}, [
						//添加
						h('el-button', {
							props: {
								type: 'text',
								size: 'small',
							},
							style: {
								marginLeft:"15px",
							},
							on: {
								click: () => {
									this.append(data)
								}
							}
						}, "添加"),
						h('el-button', {
							props: {
								type: 'text',
								size: 'small',
							},
							style: {

							},
							on: {
								click: () => {
									this.amend(data)
								}
							}
						}, "修改"),
						h('el-button', {
							props: {
								type: 'text',
								size: 'small',
							},
							style: {

							},
							on: {
								click: () => {
									this.remove(node, data)
								}
							}
						}, "删除"),
					]),
				]);
			}

这些工作做完了来看一下效果(数据仅为模拟数据)
在这里插入图片描述
大功告成,添加,修改,和删除就简单了这里就不贴出来了,
另外,在添加鼠标事件的时候还遇到一个问题,比如click事件这样写

on: {
								click: () => {
									this.append(data)
								}
							}

但是鼠标事件就得添加"",

on: {
						'mouseenter': () => {
							data.is_show = true;
						},
						//鼠标离开
						'mouseleave': () => {
							data.is_show = false;
						}
					}

还是有点坑的…!

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王老师打pp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值