element UI 中的 el-tree 实现 checkbox 单选框功能,及 bus 传递参数的方法

这篇具有很好参考价值的文章主要介绍了element UI 中的 el-tree 实现 checkbox 单选框功能,及 bus 传递参数的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

el-tree 单选功能
在日常项目开发中,会经常遇到,树形结构的查询方式,为了快速方便开发,常常会使用到快捷的ui组件去快速搭树形结构,这里我用的是 element ui 中的 el-tree 。第一次接触这种功能的时候也是各种网站查询,虽然也都能实现功能,但是都会有一些小问题,就很难受,那么我们废话不多说(好像也说了不少呢😅),直接上效果。

20231020162227


原文链接:https://blog.csdn.net/weixin_49934623/article/details/125275342

html 代码

    *** 注: load 和 lazy 属性不是需要的粘贴时请删除。(只有需要懒加载的树才需要,关于怎样构建懒加载树以后的文章会讲到)***
属性介绍:
:props="props" // 下面的 data 代码中有说明。
node-key="id" // 这个属性是用来标记 tree 的节点的 实现 checkbox节点操控 必须搭配 node-key 使用,这里的 id 是根据数据里面的唯一字段定义的,如果你的数据里唯一字段为 isId 那就设置为 node-key="isId"。
:expand-no-click-node="true" // 为点击节点时是否可展开下一级别,true=展开、false=不展开。
ref="tree" // 定义 ref ,方便操作 dom 节点 ,名字自定义。
show-checkbox // 显示 checkbox 多选框。
:check-strictly="true" // 解除父子节点的关联,true=解除、false=绑定。
@check="checkClick" // checkbox 背点击的时候出发的事件。
 <el-tree
   :props="props"
   :load="loadNode"
   lazy
   node-key="id"
   :expand-no-click-node="true"
   ref="tree"
   show-checkbox
   :check-strictly="true"
   @check="checkClick"
 >
 </el-tree>

 

data 部分

export default {
  data(){
    return{
      props:{
        label:'text', // 用来定义 tree 上展示的字段,根据自己用到数据,绑定需要的字段名称。
        children:'childNodes', // tree 每一级别节点,子级数据,保存的字段位置,根据自己的数据,定义字段名称。
        isLeaf:'chlid', // 只有需要懒加载 tree 的时候用到,是用来确定时候为最后一级别的节点,这样该节点被点出来的时候,就不会提示还有下一级别的三角符号 *注:这里复制的时候不要带上这个属性,至于如何时候后面的文章讲到懒加载树的时候会提到。
        id:'id' // 节点绑定的 id 要和上面 html 标签中的 node-key="id" 属性设置的值要对应。
      }
    }
  }
————————————————
版权声明:本文为CSDN博主「ZhuDi.」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_49934623/article/details/125275342

事件方法部分

*** 注:下面方法中的 this.$bus.$emit() 是用来组件传递参数的。使用方式会在文章最下面提到。***
 methods:{
    // 这个方法默认为两个参数,第一个参数为选中的 checkbox 所在的节点数据,第二参数是目前选中状态的集合之类的一些数组集合,因为是单选这里不需要这个参数。
   checkClick(data){
     // 先默认为多选模式, 获取目前所有被选中 checkbox 的集合 这里的集合是每个节点的数据。
     let getNode = this.$refs.tree.getCheckedNodes();
     // 判断 getNode 长度是否大于0,因为这里用到了组件之间的传值了所有进行了判断,如果小于0,传递一个空的数据过去。(大于0:代表tree中有至少有一个checkbox被选中。 小于0:代表tree中没有一个checkbox被选中)
     if (getNode.length > 0) {
       // 循环 getNode 判断如果当前选中 checkbox 中的id 与 getNode 数组中有相同值的 id 的一项,那么就通过 setChecked() 方法设置这个一项被选中,其他像项则通过 setChecked() 取消选定
       getNode.forEach(item => {
         if (data.id == item.id) {
           this.$refs.tree.setChecked(item.id , true);
           this.$bus.$emit('otherCheck' , item.id)
         } else {
           this.$refs.tree.setChecked(item.id , false);
         }
       } )
     } else {
       this.$bus.$emit('otherCheck' , '')
     }
   }
 }
————————————————
版权声明:本文为CSDN博主「ZhuDi.」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_49934623/article/details/125275342

 文章来源地址https://www.toymoban.com/news/detail-846627.html

到了这里,关于element UI 中的 el-tree 实现 checkbox 单选框功能,及 bus 传递参数的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【前端】- 在使用Element UI 的el-tree组件时,从底层去研究如何去实现一键展开/关闭【tree节点】的功能

    点击前效果: 点击后效果: 页面部分:这里是简单的数结构渲染,不多讲,$refs.Reftree获取的是el-tree的实例,具体作用请看下面的方法。 方法部分:该方法传入el-tree实例,直接点击按钮即可实现展开或者关闭,这里简单讲解一下 1、ref.store.root.childNodes 通过实例来调用tree组

    2024年04月16日
    浏览(60)
  • element-ui树形控件el-tree详解

    概述 这里我利用element-ui开发一个vue的树形组件 引入element-ui 安装element-plus 安装按需导入 修改vite.config.js配置按需加载 tree树形控件详解 属性名 说明 类型 可选值 默认值 data 展示数据 array — — empty-text 内容为空的时候展示的文本 string — — node-key 每个树节点用来作为唯一标

    2024年02月07日
    浏览(120)
  • 【element ui】el-tree拖拽增加样式效果

    el-tree的可拖拽效果太不明显,产品需要添加可拖拽的效果,弄了个阴影。 项目需求是只能同级拖拽,无法跨级拖拽。点击层级的切换顺序的按钮,出现拖拽效果。 css代码必须去掉scoped才能实现

    2024年02月12日
    浏览(44)
  • [element-ui] el-tree全部展开与收回

    参考: el-tree全部展开与收回

    2024年02月10日
    浏览(52)
  • [element-ui] el-tree 懒加载load

    懒加载:点击节点时才进行该层数据的获取。 注意:使用了懒加载之后,一般情况下就可以不用绑定:data。 懒加载—由于在点击节点时才进行该层数据的获取,默认情况下 Tree 无法预知某个节点是否为叶子节点,所以会为每个节点添加一个下拉按钮,如果节点没有下层数据,

    2024年02月11日
    浏览(65)
  • 开发需求15-使用el-checkbox组件实现el-tree组件的父子关联关系(非全选/全不选)

    需求描述: 大家都知道el-tree可以很明显的通过选中来体现上下节点的父子选中状态,那么如果要求把后端把el-tree的数据结构,通过一个展开的list返回给你,使用el-checkbox组件渲染每一个节点,同时要求选中某一个节点,同时可以选中其父节点和子节点;取消也是一样。 思路

    2024年04月17日
    浏览(60)
  • vue2+element-ui el-tree树形控件封装

    1.封装 根据官网配置项封装了下el-tree 方便维护和复用,有用的话点赞收藏叭~ 2.使用 如若要对不同的一级二级节点设置不同的样式可以参考这样:

    2024年02月12日
    浏览(64)
  • element ui el-tree控制树形结构全选、取消全选,展开收起

    控制树形结构全选、取消全选,展开收起   

    2024年02月11日
    浏览(70)
  • vue2 - 详细介绍element UI中在el-select嵌套el-tree树形控件实现下拉选择树型结构数据的效果实例(组件封装)

    在项目上常用使用到 el-select 和 el-tree 组合实现,记录下两者结合的实现过程。(代码以及注释清晰明了,代码直接使用即可) 要求根据项目接口提供的数据,el-tree 里的数据是一次性返回来的,点击最后一层级时,请求接口,在点击层级下方追加数据追加的数据要显示勾

    2024年04月15日
    浏览(67)
  • Element UI中el-tree 添加右键菜单的方法,附带问题和解决方案

    1、在el-tree 中添加方法 @node-contextmenu=\\\"rightClick\\\" 2、建立一个右键组件,可以使用 el-menu 组件,优点是,可以借助el-menu 的 selec方法进行增删改查以及样式不用手写了,弊端是不容易获取点击的Dom,先暂时这样写吧 3、methods中的写法 3、点击树状节点时,关闭右键组件 4、css样式

    2024年02月04日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包