element ui tree限制只能在同级上移下移的demo
时间: 2023-10-24 22:14:52 浏览: 122
上拉下拉demo
5星 · 资源好评率100%
以下是一个基于 Element UI Tree 的示例代码,可以限制节点只能在同级上移下移:
```
<template>
<el-tree
:data="data"
:props="defaultProps"
:draggable="true"
:allow-drag="allowDrag"
@node-drop="onNodeDrop"
>
</el-tree>
</template>
<script>
export default {
data() {
return {
data: [
{
label: 'Node 1',
id: 1,
children: [
{
label: 'Node 1-1',
id: 2
},
{
label: 'Node 1-2',
id: 3
}
]
},
{
label: 'Node 2',
id: 4,
children: [
{
label: 'Node 2-1',
id: 5
},
{
label: 'Node 2-2',
id: 6
}
]
}
],
defaultProps: {
children: 'children',
label: 'label'
}
}
},
methods: {
allowDrag(draggingNode, dropNode, type) {
if (draggingNode.parent === dropNode.parent) {
return true;
}
return false;
},
onNodeDrop(event) {
// do something when node dropped
}
}
}
</script>
```
在这个示例中,我们通过设置 `allowDrag()` 方法来限制节点只能在同级上移下移,这个方法接收 3 个参数:`draggingNode`(被拖拽的节点)、`dropNode`(拖拽到的节点)和 `type`(拖拽类型)。我们可以通过比较这两个节点的 `parent` 属性是否相同来判断它们是否在同一级别上。
如果 `allowDrag()` 方法返回 `true`,则节点可以被拖拽;如果返回 `false`,则节点不能被拖拽。在节点被拖拽完成后,我们可以在 `onNodeDrop()` 方法中做一些我们想要的操作。
阅读全文