element ui tree 拖拽(支持子节点拖拽,子节点无法向外拖拽,最外层父节点可设置无法拖拽)

这篇具有很好参考价值的文章主要介绍了element ui tree 拖拽(支持子节点拖拽,子节点无法向外拖拽,最外层父节点可设置无法拖拽)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

elementUI 树组件 拖拽(支持子节点拖拽,子节点无法向外拖拽,最外层父节点可设置无法拖拽)

elementui tree 拖拽,elementui,vue.js,javascript
效果:1.最外层的 HAS-BLED 节点不可拖拽
2.子节点 高龄 仅在当前父节点内拖拽,不可拖拽到测试111HAS-BLED节点内
3.测试444,测试333内节点也仅在父节点测试111区域内拖拽

HTML
 			<el-tree
                  ref="rightTree"
                  :data="rightTreeData"
                  node-key="labelId"
                  default-expand-all
                  @node-click="nodeClick"
                  :props="defaultProps"
                  draggable
                  @node-drop="handleDrop"
                  :allow-drop="allowDrop"
                  :allow-drag="allowDrag"
                >
		 </el-tree>
操作属性

draggable: 设置树组件可拖拽
@node-drop 拖拽成功完成时触发的事件
allow-drag 判断节点能否被拖拽
allow-drop 拖拽时判定目标节点能否被放置。type 参数有三种情况:‘prev’、‘inner’ 和 ‘next’,分别表示放置在目标节点前、插入至目标节点和放置在目标节点后文章来源地址https://www.toymoban.com/news/detail-556989.html

js
   // 最外层父节点不可拖拽
    allowDrag(draggingNode) {
      console.log(draggingNode)
      return draggingNode.data.labelTypeId;//唯一键,最外层父节点无labelTypeId属性,则不可拓展
    },
    allowDrop(moveNode, inNode, type) {
      // allow-drop属性是用来限制树节点拖拽后是否可以放置在当前位置,属性值为true时可以,为false时不可以。
      // 1.子节点禁止外托
      // 2.禁止拖进有子节点的层级
      // 3.没有设置一级节点判断 不可拖拽在allowDrag设置
      console.log(moveNode.nextSibling,moveNode.parent.id,inNode.parent.id)
          // 二级拖动到二级 高龄、测试111
            if (
                moveNode.level == 2 &&
                inNode.level == 2 &&
                moveNode.parent.id == inNode.parent.id
            ) {
                // 四种情况
                if (moveNode.nextSibling == undefined) {
                    return type == 'prev';
                } else if (inNode.nextSibling == undefined) {
                    return type == 'next';
                } else if (moveNode.nextSibling.id !== inNode.id) {
                    return type == 'prev';
                } else {
                    return type == 'next';
                }
            }
			//三级内拖拽 测试222,测试333,测试444
            if (
                moveNode.level == 3 &&
                inNode.level == 3 &&
                moveNode.parent.id == inNode.parent.id
            ) {
                // 四种情况
                if (moveNode.nextSibling == undefined) {
                    return type == 'prev';
                } else if (inNode.nextSibling == undefined) {
                    return type == 'next';
                } else if (moveNode.nextSibling.id !== inNode.id) {
                    return type == 'prev';
                } else {
                    return type == 'next';
                }
            }
    },

到了这里,关于element ui tree 拖拽(支持子节点拖拽,子节点无法向外拖拽,最外层父节点可设置无法拖拽)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

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

    2024年04月16日
    浏览(58)
  • VUE element-ui之el-tree树形控件循环遍历渲染dom节点;子节点横向排列;控件添加指示线

    定义模板(做循环遍历处理): tree的参数说明请参考官方文档 el-tree 定义模板数据: js部分: 指示线样式部分: 实际效果:

    2024年02月11日
    浏览(72)
  • element-ui el-tree 设置指定级别节点显示复选框el-checkbox

            /deep/ .el-tree {         padding-top: 15px;         padding-left: 10px;         // 不可全选样式         .el-tree-node {           .is-leaf + .el-checkbox .el-checkbox__inner {             display: inline-block;           }           .el-checkbox .el-checkbox__inner {             display: none;    

    2023年04月08日
    浏览(58)
  • element-ui的el-tree组件实现单选功能及选择子节点,获取所有父级节点或选中所有父级节点

    el-tree是不支持单选的,可以通过选中事件进行处理,实现单选

    2024年02月14日
    浏览(47)
  • 解决element ui中的el-tree组件default-checked-keys默认勾选节点问题

    选中子节点的时候,父节点必须被选中,但是仅展示被选中父节点和子节点 方法1 html部分代码: 当需要动态改变树形结构的默认勾选值(例如每条数据都需要调接口查询,根据查询结果渲染树的选中情况)时,只修改defaultChecked的时,值的改变没有渲染相应的树节点,需要通

    2024年04月25日
    浏览(45)
  • element-tree树结构-默认选中第一个节点高亮-根据id选中节点高亮

    前言 tree树结构是在开发中经常使用的组件,比如区域树,楼层树,组织架构树,等等包含节点关系 实际开发可能需要我们一进到页面选中树形结构第一个节点,并且调用数据,来达到用户体验 在用户选择之后,通过本地存储的方式把楼层id存起来,刷新之后获取楼层id,调

    2024年02月09日
    浏览(72)
  • Element ui表格行、列拖拽

    1、首先安装vuedraggable插件或直接安装sortablejs 2、更多属性配置参考中文文档:vue.draggable中文文档 - itxst.com 3、在需要配置的页面引入 4、要点: 4.1、先找到拖拽元素的父容器 4.2、行拖拽:在 el-table 标签中,根据行的内容指定行的唯一标识  row-key=\\\"id\\\" 4.3、列拖拽:额外定义两

    2024年02月14日
    浏览(36)
  • element UI tree 搜索功能实现

    最近需求想要一个树状结构的带搜索功能的目录,要求目录包含搜索文字的高亮,如果父级收起则父级高亮,如果跨级收起 则收起的级别高亮 不限制层级 例如:搜索文字为D,收起C则C高亮, 直接收起A则A高亮 A           B                 C              

    2024年04月29日
    浏览(36)
  • 基于element UI 实现 table 列 拖拽

    问题描述 在开发中遇到一个需求,即实现table列的拖拽,但是调研发现,大部分是基于sorttable.js这个包实现的,但是通过实际应用,发现sorttable.js用在操作element table 组件中并不是很舒服,总会莫名其妙的冒出一些异常bug,于是自行封装一个table 列拖拽组件。 ①element table h

    2024年02月11日
    浏览(32)
  • element-ui树形控件(tree)

    1.基础用法 通过:data绑定了数据源,通过:props绑定了属性绑定对象,其中label代表着我们看到的是哪个属性对应的值,children代表父子节点通过哪个属性实现嵌套的 2.为树形控件添加show-checkbox属性,可实现复选框效果。如果要求选中的是文本对应的id值,而不是文本值本身。可

    2024年02月13日
    浏览(63)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包