|
|
@@ -433,7 +433,7 @@ export class Tree<T extends TreeRaw = TreeRaw> {
|
|
|
}
|
|
|
|
|
|
// 检查节点是否有相同顺序号的错误情况(协作的时候可能导致)
|
|
|
- checkSeq(nodes: TreeNode<T>[]) {
|
|
|
+ checkSeq(nodes: TreeNode<T>[]): boolean {
|
|
|
const seqList: number[] = nodes.map(node => node.seq);
|
|
|
const seqSet = new Set(seqList);
|
|
|
return seqList.length === seqSet.size;
|
|
|
@@ -445,8 +445,10 @@ export class Tree<T extends TreeRaw = TreeRaw> {
|
|
|
sourceNodes: TreeNode<T>[],
|
|
|
targetNode: TreeNode<T>
|
|
|
): UpdateData[] {
|
|
|
- const fisrtNodeIdx = allNodes.indexOf(sourceNodes[0]);
|
|
|
- const targetNodeIdx = allNodes.indexOf(targetNode);
|
|
|
+ const fisrtNodeIdx = allNodes.findIndex(
|
|
|
+ node => node.ID === sourceNodes[0].ID
|
|
|
+ ); // 不能用indexOf,因为传入的可能时proxy节点
|
|
|
+ const targetNodeIdx = allNodes.findIndex(node => node.ID === targetNode.ID);
|
|
|
const position = fisrtNodeIdx > targetNodeIdx ? 'prev' : 'next';
|
|
|
const nodes = []; // 防止改了原始数组顺序
|
|
|
for (const node of allNodes) {
|