|
|
|
@ -87,11 +87,39 @@ export function useTree( |
|
|
|
if (treeItem[keyField] === parentKey) { |
|
|
|
treeItem[childrenField] = treeItem[childrenField] || []; |
|
|
|
treeItem[childrenField][push](node); |
|
|
|
return true; |
|
|
|
} |
|
|
|
}); |
|
|
|
treeDataRef.value = treeData; |
|
|
|
} |
|
|
|
/** |
|
|
|
* 批量添加节点 |
|
|
|
*/ |
|
|
|
function insertNodesByKey({ parentKey = null, list, push = 'push' }: InsertNodeParams) { |
|
|
|
const treeData: any = cloneDeep(unref(treeDataRef)); |
|
|
|
if (!list || list.length < 1) { |
|
|
|
return; |
|
|
|
} |
|
|
|
if (!parentKey) { |
|
|
|
for (let i = 0; i < list.length; i++) { |
|
|
|
treeData[push](list[i]); |
|
|
|
} |
|
|
|
} else { |
|
|
|
const { key: keyField, children: childrenField } = unref(getReplaceFields); |
|
|
|
if (!childrenField || !keyField) return; |
|
|
|
|
|
|
|
forEach(treeData, (treeItem) => { |
|
|
|
if (treeItem[keyField] === parentKey) { |
|
|
|
treeItem[childrenField] = treeItem[childrenField] || []; |
|
|
|
for (let i = 0; i < list.length; i++) { |
|
|
|
treeItem[childrenField][push](list[i]); |
|
|
|
} |
|
|
|
treeDataRef.value = treeData; |
|
|
|
return true; |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
// Delete node
|
|
|
|
function deleteNodeByKey(key: string, list?: TreeDataItem[]) { |
|
|
|
if (!key) return; |
|
|
|
@ -111,5 +139,12 @@ export function useTree( |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return { deleteNodeByKey, insertNodeByKey, filterByLevel, updateNodeByKey, getAllKeys }; |
|
|
|
return { |
|
|
|
deleteNodeByKey, |
|
|
|
insertNodeByKey, |
|
|
|
insertNodesByKey, |
|
|
|
filterByLevel, |
|
|
|
updateNodeByKey, |
|
|
|
getAllKeys, |
|
|
|
}; |
|
|
|
} |
|
|
|
|