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实例中data使用return包裹的方法

    vue实例中data使用return包裹的方法

    今天小编就为大家分享一篇vue实例中data使用return包裹的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • vue实现原生下拉刷新

    vue实现原生下拉刷新

    这篇文章主要为大家详细介绍了vue实现原生下拉刷新,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Vue实现文件批量打包压缩下载

    Vue实现文件批量打包压缩下载

    这篇文章主要为大家详细介绍了如何利用Vue实现文件批量打包压缩下载功能,文中的实现步骤讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-07-07
  • vue制作toast组件npm包示例代码

    vue制作toast组件npm包示例代码

    这篇文章主要介绍了vue制作一个toast组件npm包,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • 详解如何使用vue和electron开发一个桌面应用

    详解如何使用vue和electron开发一个桌面应用

    这篇文章主要为大家介绍了详解如何使用vue和electron开发一个桌面应用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • vuepress打包之后页面样式丢失问题的两种解决方式

    vuepress打包之后页面样式丢失问题的两种解决方式

    这篇文章主要介绍了vuepress打包之后页面样式丢失问题的两种解决方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • vue中使用Animate.css的教程详解

    vue中使用Animate.css的教程详解

    Animate.css这个动画库,很多的动画在这个库里面都定义好了,我们用的时候可以直接使用里面的类名就可以,下面我们就来看看如何在vue项目中使用Animate.css吧
    2023-08-08
  • vue仿element实现分页器效果

    vue仿element实现分页器效果

    这篇文章主要介绍了vue仿element实现分页器效果,实现思路是定一个值foldPage, 意为当前最多显示的标签数,当总页数超过即显示省略.省略分为左边省略(folder1)和右边省略(folder2),具体实例代码大家参考下本文
    2018-09-09
  • Vue单页面应用中实现Markdown渲染

    Vue单页面应用中实现Markdown渲染

    这篇文章主要介绍了Vue单页面应用中如何实现Markdown渲染,帮助大家更好的理解和使用vue,感兴趣的朋友可以了解下
    2021-02-02
  • webstrom Debug 调试vue项目的方法步骤

    webstrom Debug 调试vue项目的方法步骤

    这篇文章主要介绍了webstrom Debug 调试vue项目的方法步骤,详细的介绍了两种调试vue项目的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07

最新评论