Vue2 ElementUI Tree 拖动目标节点能否被放置及获取放置位置

一、背景:需求只允许拖动节点的先后顺序,不允许跨层级

二、代码及相关解释

javascript 复制代码
<template>
    <el-tree
        ref="tree"
        :data="data"
        node-key="id"
        draggable
        highlight-current
        :allow-drop="allowDrop"
        @node-drop="drapNode">
    </el-tree>
</template>
<script>
export default {
    data () {
        return {
            data: []
        }
    },
    methods: {
        allowDrop (draggingNode, dropNode, type) { //只允许拖动节点调整与兄弟节点的前后顺序
            return dropNode.data[type==='inner'?'id':'parentId']===draggingNode.data.parentId;
        },
        drapNode (draggingNode, dropNode, dropType) { //只有当节点完成拖动时,dropType才是正确的拖动节点与目标节点的关系
            let list = this.$refs.tree.getNode(dropNode.data[dropType==='inner'?'id':'parentId']).data.children, index = list.findIndex(li => li.id===draggingNode.data.id); //list:完成拖动后的兄弟节点;index:拖动后是父节点的第几个子元素
            //....操作代码,成功后刷新树
        }
    }
}
</script>
相关推荐
歪歪1006 分钟前
在C#中除了按属性排序,集合可视化器还有哪些辅助筛选的方法?
开发语言·前端·ide·c#·visual studio
wangbing112529 分钟前
开发指南139-VUE里的高级糖块
前端·javascript·vue.js
半桶水专家1 小时前
Vue 3 动态组件详解
前端·javascript·vue.js
csj501 小时前
前端基础之《React(6)—webpack简介-图片模块处理》
前端·react
我有一棵树1 小时前
避免 JS 报错阻塞 Vue 组件渲染:以 window.jsbridge 和 el-tooltip 为例
前端·javascript·vue.js
Fanfffff7201 小时前
前端样式局部作用域:从Scoped到CSS Modules 的完整指南
前端·css
前端大神之路1 小时前
vue2 模版编译原理
前端
00后程序员张1 小时前
Web 前端工具全流程指南 从开发到调试的完整生态体系
android·前端·ios·小程序·uni-app·iphone·webview
凌泽1 小时前
写了那么多年的代码,我开始写“规范”了:AI 驱动的开发范式革命
前端·vibecoding
没有鸡汤吃不下饭1 小时前
解决前端项目中大数据复杂列表场景的完美方案
前端·javascript·vue.js