在学谷粒商城的时候,老师并没有给三级树形分类这块讲清楚,导致在拖拽这块很多人都有疑问,在仔细琢磨下,看了这篇文章,只要明白这两个点,那就能理解了。
层级和深度的关系:
- 第一级节点的层级是 0,深度是 3
第二级节点的层级是 1,深度是 2
第三级节点的层级是 2,深度是 1
let deep = Math.abs(this.maxLevel - draggingNode.level) + 1;
对于其中上面这行代码我们了解了层级和深度关系后就明白了,假设,我们该节点下有三级节点,那这时候我们要拖拽总节点层级是3的第一级节点,算出来的deep(也就是被拖动节点的深度),也就是2-0+1=3,和第一级节点的深度完美对应,如果这时候我们要拖拽总节点层级是3的第二级节点,算出来的deep(也就是被拖动节点的深度),也就是2-1+1=2,和第二级节点的深度完美对应
以此类推,就不多说了
然后结合elementui的属性我们进行判断
if (type == "inner") {
// 当拖拽到目标节点内部时(type == "inner")
// 这时需要判断的是: 被拖动节点的深度 + 目标节点的深度 <= 3
return deep + dropNode.level <= 3;
} else {
// 当拖拽到目标节点的同级时(type != "inner")
// 这时需要判断的是: 被拖动节点的深度 + 目标节点的父节点的深度 <= 3
return deep + dropNode.parent.level <= 3;
}
最后,听懂点赞
标签:层级,拖动,deep,拖拽,树形,谷粒,深度,节点,商城 From: https://blog.csdn.net/weixin_46064585/article/details/137420480