elementUI Tree 树形控件单选实现示例

 更新时间:2024年06月14日 10:37:13   作者:奶糖 肥晨  
在ElementUI中树形控件本身不支持单选功能,本文就来介绍一下如何实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在Element UI中,树形控件(el-tree)本身不支持单选功能。但是,你可以通过监听节点点击事件并手动更新选中状态来实现单选树。

以下是一个简单的例子,展示了如何实现单选功能:

展示效果

在这里插入图片描述

代码实现

html相关:

 <el-tree :data="flatArr" check-strictly accordion show-checkbox node-key="id" :props="defaultProps"
            @check="handleNodeClick" ref="tree">
 </el-tree>

js方法:

 handleNodeClick(data, node, self) {
      // 如果已经选中了一个节点,则取消选择
      if (this.currentNodeKey?.name && this.$refs.tree) {
        this.$refs.tree.setCheckedKeys([]);
         // 更新当前选中节点的 key
        this.$refs.tree.setCheckedNodes([data]);
      }

      // 更新当前选中节点的 key
      this.currentNodeKey = data;
    },

义了一个currentNodeKey来存储当前选中节点的 key。每次点击节点时,我们首先检查是否已经有一个节点被选中,如果是,则通过this.$refs.tree.setCurrentKey(null)取消选中它。然后,我们更新currentNodeKey为新选中的节点 key。

请注意,这里的node.key假设你的每个节点数据中都有一个唯一的key属性。你需要根据实际的节点数据结构相应地调整这个属性名。

elementui Tree树形控件其他详细数据

参数说明类型可选值默认值
data展示数据array
empty-text内容为空的时候展示的文本String
node-key每个树节点用来作为唯一标识的属性,整棵树应该是唯一的String
props配置选项,具体看下表object
render-after-expand是否在第一次展开某个树节点后才渲染其子节点booleantrue
load加载子树数据的方法,仅当 lazy 属性为true 时生效function(node, resolve)
render-content树节点的内容区的渲染FunctionFunction(h, { node, data, store }
highlight-current是否高亮当前选中节点,默认值是 false。booleanfalse
default-expand-all是否默认展开所有节点booleanfalse
expand-on-click-node是否在点击节点的时候展开或者收缩节点, 默认值为 true,如果为 false,则只有点箭头图标的时候才会展开或者收缩节点。booleantrue
check-on-click-node是否在点击节点的时候选中节点,默认值为 false,即只有在点击复选框时才会选中节点。booleanfalse
auto-expand-parent展开子节点的时候是否自动展开父节点booleantrue
default-expanded-keys默认展开的节点的 key 的数组array
show-checkbox节点是否可被选择booleanfalse
check-strictly在显示复选框的情况下,是否严格的遵循父子不互相关联的做法,默认为 falsebooleanfalse
default-checked-keys默认勾选的节点的 key 的数组array
current-node-key当前选中的节点string, number
filter-node-method对树节点进行筛选时执行的方法,返回 true 表示这个节点可以显示,返回 false 则表示这个节点会被隐藏Function(value, data, node)
accordion是否每次只打开一个同级树节点展开booleanfalse
indent相邻级节点间的水平缩进,单位为像素number16
icon-class自定义树节点的图标string--
lazy是否懒加载子节点,需与 load 方法结合使用booleanfalse
draggable是否开启拖拽节点功能booleanfalse
allow-drag判断节点能否被拖拽Function(node)
allow-drop拖拽时判定目标节点能否被放置。type 参数有三种情况:‘prev’、‘inner’ 和 ‘next’,分别表示放置在目标节点前、插入至目标节点和放置在目标节点后Function(draggingNode, dropNode, type)

到此这篇关于elementUI Tree 树形控件单选实现示例的文章就介绍到这了,更多相关element Tree 单选内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue中添加与删除关键字搜索功能

    vue中添加与删除关键字搜索功能

    这篇文章主要介绍了vue中添加与删除,关键字搜索功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • 使用vue-json-viewer实现JSON数据可视化详解

    使用vue-json-viewer实现JSON数据可视化详解

    vue-json-viewer 是一个用于在 vue.js 应用中展示 JSON 数据的插件,它提供了一种直观和美观的方式来可视化 JSON 数据,下面我们来看看如何使用它进行JSON数据可视化吧
    2025-01-01
  • vue中ref的用法小结

    vue中ref的用法小结

    在项目中使用ref时有时候直接取值,有时候返回的却是一个数组,不知其中缘由,后查了一下ref用法,在这里给大家分享vue中ref的用法,感兴趣的朋友一起看看吧
    2023-11-11
  • Vue3实现Emoji表情的四种方案

    Vue3实现Emoji表情的四种方案

    聊天工具的项目开发到了表情功能,由于目前会话的输入区域使用的是 textarea 而非富文本编辑器,所以表情功能也需要兼顾 textarea 进行开发,本文给大家简单聊聊几种表情的实现方,感兴趣的小伙伴一起来看看吧
    2025-01-01
  • vue如何使用element组件自定义v-loading

    vue如何使用element组件自定义v-loading

    这篇文章主要介绍了vue如何使用element组件自定义v-loading问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • 在vue中使用express-mock搭建mock服务的方法

    在vue中使用express-mock搭建mock服务的方法

    这篇文章主要介绍了在vue中使用express-mock搭建mock服务的方法,文中给大家提到了在vue-test-utils 中 mock 全局对象的相关知识 ,需要的朋友可以参考下
    2018-11-11
  • Vue3中的常见组件通信之props和自定义事件详解

    Vue3中的常见组件通信之props和自定义事件详解

    这篇文章主要介绍了Vue3中的常见组件通信之props和自定义事件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • electron-vite新一代electron开发构建工具

    electron-vite新一代electron开发构建工具

    这篇文章主要介绍了electron-vite新一代electron开发构建工具,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Vue toRef toRefs toRaw函数使用示例

    Vue toRef toRefs toRaw函数使用示例

    这篇文章主要介绍了Vue toRef toRefs toRaw函数使用示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-03-03
  • 基于Vue2x的图片预览插件的示例代码

    基于Vue2x的图片预览插件的示例代码

    本篇文章主要介绍了基于Vue2x的图片预览插件的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05

最新评论