html:
<div id="app">
<el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick" :draggable="true" :allow-drop="allowDrop"></el-tree>
</div>
js:
new Vue({
el: '#app',
data: function () {
return {
data: [{
label: '一级 1',
children: [{
label: '二级 1-1',
children: [{
label: '三级 1-1-1'
}]
}]
}, {
label: '一级 2',
children: [{
label: '二级 2-1',
children: [{
label: '三级 2-1-1'
}]
}, {
label: '二级 2-2',
children: [{
label: '三级 2-2-1'
}]
}]
}, {
label: '一级 3',
children: [{
label: '二级 3-1',
children: [{
label: '三级 3-1-1'
}]
}, {
label: '二级 3-2',
children: [{
label: '三级 3-2-1'
}]
}]
}],
defaultProps: {
children: 'children',
label: 'label'
}
};
},
methods: {
handleNodeClick(data) {
console.log(data);
},
allowDrop(draggingNode, dropNode, type) {
console.log(draggingNode.level, dropNode.level)
//注掉的是同级拖拽
if (draggingNode.level === dropNode.level) {
return type === 'prev' || type === 'next'
} else {
// 不同级进行处理
return false
}
}
}
})
原文链接:http://jsrun.net/WLLKp/edit