elementUI tree异步树拖拽问题

Posted heyefengyin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elementUI tree异步树拖拽问题相关的知识,希望对你有一定的参考价值。

1.异步树第一层级的节点拖拽报错问题
  报错信息如下:
  技术图片

 

 

原因:
  elementUI在封装tree时,会为tree添加一个页面不可见的根结点,该节点的子集就是树的第一层级的所有节点。
  在节点拖拽时,会根据目标节点的父节点的data的值进行操作。
  而构建异步树时,elementUI忘了给异步树的不可见的跟节点的data属性赋值,所有拖拽至一级节点操作报错。
 
解决方案
  手动为不可见的根结点添加上data的值,具体代码如下
<el-tree
   lazy
   draggable
   ref="asyncTree"
  :load="loadNode"
  :node-key="id"
  :allow-drop="allowDrop"
  >
</el-tree>
...
<scripit>
    ...
    methods: {
        allowDrop (draggingNode, dropNode, type) {
            if(draggingNode.data.id !== dropNode.data.id) {
                if(!dropNode.parent.data) {
                    let temp = [];
                    dropNode.parent.childNodes.forEach(item => {
                        temp.push(item.data)
                    })
            // 手动为跟节点添加上data属性 dropNode.parent.data
= temp; } return true; } }, } ... </script>

 

 


以上是关于elementUI tree异步树拖拽问题的主要内容,如果未能解决你的问题,请参考以下文章

element树形控件拖拽后怎样获取所有值

2021-04-25elementUI表格拖拽排序

Extjs 4.1.1:网格到树拖放不起作用

elementui Tree 树形控件

vue+elementUi开发一个可拖拽的和拉伸编辑的画板

elementui表格列左右移动