|
|
@@ -451,12 +451,14 @@ export class Tree<T extends TreeRaw = TreeRaw> {
|
|
|
const targetNodeIdx = allNodes.findIndex(node => node.ID === targetNode.ID);
|
|
|
const position = fisrtNodeIdx > targetNodeIdx ? 'prev' : 'next';
|
|
|
const nodes = []; // 防止改了原始数组顺序
|
|
|
+ const sourceNodeIDs = sourceNodes.map(node => node.ID); // 不能直接用sourceNodes includes判断,因为传入的可能时proxy节点
|
|
|
for (const node of allNodes) {
|
|
|
- if (!sourceNodes.includes(node)) {
|
|
|
+ // 不能用includes,因为传入的可能时proxy节点
|
|
|
+ if (!sourceNodeIDs.includes(node.ID)) {
|
|
|
nodes.push(node);
|
|
|
}
|
|
|
}
|
|
|
- const targetIdx = nodes.indexOf(targetNode);
|
|
|
+ const targetIdx = nodes.findIndex(node => node.ID === targetNode.ID);
|
|
|
if (position === 'prev') {
|
|
|
// 插到targetNode前面
|
|
|
nodes.splice(targetIdx, 0, ...sourceNodes);
|