vue2 Elementui 树形组件怎么实现多选并获取选中节点的node对象

这篇具有很好参考价值的文章主要介绍了vue2 Elementui 树形组件怎么实现多选并获取选中节点的node对象。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.前言

树形组件是我们经常用到的组件,主要场景就是:公司后台管理的部门管理,做文章目录等。

二.常用的几种方法及说明

1.node-click:节点被点击时的回调

共三个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、节点对应的 Node、节点组件本身。

<div class="container">
        <el-tree :data="data" show-checkbox node-key="id" ref="tree" highlight-current @node-click="clickFn"
            @check="check"></el-tree>
</div>
clickFn (data, node, item) {
            console.log(data);
            console.log(node);
            console.log(item);
 }

this.$refs.tree.getnode,项目中遇到的bug,elementui,vue.js,前端,vue,经验分享

2.check:当复选框被点击的时候触发

共两个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、树目前的选中状态对象,包含 checkedNodes、checkedKeys、halfCheckedNodes、halfCheckedKeys 四个属性

<div class="container">
        <el-tree :data="data" show-checkbox node-key="id" ref="tree" highlight-current @node-click="clickFn"
            @check="check"></el-tree>
    </div>
check (checkedNodes, checkedKeys) {
            // 获取选中节点的node对象
            this.nodes = checkedKeys.checkedNodes;
            for (let i = 0; i < this.nodes.length; i++) {
                let a = this.$refs.tree.getNode(this.nodes[i].id);
                console.log(a);
            }
        },

this.$refs.tree.getnode,项目中遇到的bug,elementui,vue.js,前端,vue,经验分享

 3.check-change:节点选中状态发生变化时的回调

共三个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、节点本身是否被选中、节点的子树中是否有被选中的节点

4.getNode方法:根据 data 或者 key 拿到 Tree 组件中的 node

(data) 要获得 node 的 key 或者 data

getNode方法的用法:this.$refs.tree.getNode(this.nodes[i].id);

参数就是节点的id:就是node-key绑定的id

例如:node-key="name";this.$refs.tree.getNode(this.nodes[i].name);

具体看需求,前提是你树形data里面有这个属性

5.check-on-click-node

是否在点击节点的时候选中节点,默认值为 false,即只有在点击复选框时才会选中节点。

6.default-expanded-keys

默认展开的节点的 key 的数组

三.我们实现标题中提到的需求主要用到check事件和getNode方法

check (checkedNodes, checkedKeys) {
            console.log(checkedNodes);
            console.log(checkedKeys);
            // 获取选中节点的node对象
            this.nodes = checkedKeys.checkedNodes;
            for (let i = 0; i < this.nodes.length; i++) {
                let a = this.$refs.tree.getNode(this.nodes[i].id);
                console.log(a);
            }
        },

this.$refs.tree.getnode,项目中遇到的bug,elementui,vue.js,前端,vue,经验分享

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

到了这里,关于vue2 Elementui 树形组件怎么实现多选并获取选中节点的node对象的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包