谷粒商城-拖拽(拖拽节点的顺序及层级)
首先加入@node-drop事件(拖拽成功完成时触发的事件),共四个参数,依次为:被拖拽节点对应的 Node(draggingNode)、结束拖拽时最后进入的节点(dropNode)、被拖拽节点的放置位置(drop:typebefore、after、inner)、event。

首先初始化pCid以及siblings,分别代表当前节点最新的父节点的id以及父节点的子节点们。

若在节点前后插入,那么pCid是dropNode的父节点的catId,siblings是dropNode的父节点的孩子,但是如果没有父节点,则把父节点的catId置为0。若插入进节点里面,那么pCid是dropNode的catId,siblings是dropNode的孩子。

用for循环来对节点顺序进行排序。
如果遍历时,孩子节点与拖拽节点catId相同,那么则修改他的父节点catId。并且修改拖拽节点的层级,如果层级发生了改变,则让catLevel与孩子节点的level相同。

此方法为递归修改子节点的层级,因为当前只是修改的当前的节点层级,若节点中包含子节点,需要一并修改。

依次遍历拖拽节点的子节点,把拖拽节点的子节点level赋予catLevel。
递归方法:

浙公网安备 33010602011771号