• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

vue-treeselect和el-tree点击节点获取上级节点的数据

武飞扬头像
花椒和蕊
帮助2

el-tree,单击和右击都有一个参数,即节点对应的Node

学新通
打印这个Node,如下:

    @node-contextmenu="rightClick"
    // 节点右击事件 */
    rightClick(MouseEvent, object, Node, element) {
      console.log(Node, "Node"); 
    },

学新通
展开parent
学新通

这个parent就是父节点,父节点中还包含了它自己的父节点,如果无父节点,返回null
el-tree获取父节点还是挺简单的,树组件内部已经返给你了,直接获取就行

vue-treeselect获取父节点,文档中未找到直接获取的方法,我这里说一下自己实现的方式

 @select="(node) => treeHandleSelect(node)"
 
  treeHandleSelect(node, e) {  
      // 获取节点上一节点
      //this.expendTree树数据源,node.pid当前节点的父id,this.dealPartytree处理数据的方法
      const obj = this.dealPartytree(this.expendTree, node.pid);
      //obj就是处理完后返的父节点,然后直接拿自己需要的东西即可
      this.partymember.branch = obj.name;
      this.partymember.branchId = obj.id;
   
    },

把树数据源,节点的父id传进来

    // 获取节点上一节点
    dealPartytree(arr, id) {
      let obj = {};
      const dep = (data, nodeId) => {
      //循环树数据源,用当前项的id和父id对比,相同就赋值,不相同就递归,相当于遍历了整棵树
      
        for (let v = 0; v < data.length; v  ) {
          if (data[v].id === nodeId) {
            obj = data[v];
          } else if (data[v].children) {
            dep(data[v].children, nodeId);
          }
        }
        return obj;
      };
      obj = dep(arr, id);
      return obj;
    },
学新通

//用当前项的id和父id对比是因为,当前项的父id即父节点的id,通过父节点的id进行关联
学新通

有不懂的欢迎沟通交流

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhebcfkh
系列文章
更多 icon
同类精品
更多 icon
继续加载