| | |
| | | import { TreeNodeData } from 'element-plus/es/components/tree/src/tree.type'; |
| | | |
| | | export function getTree( |
| | | data: API.ModuleDto[], |
| | | root?: string, |
| | |
| | | |
| | | return result; |
| | | } |
| | | |
| | | type TreeCallback<T extends TreeNodeData, R> = ( |
| | | data: T, |
| | | index: number, |
| | | array: T[], |
| | | parent?: T |
| | | ) => R; |
| | | |
| | | export function treeEach<T extends TreeNodeData>( |
| | | treeData: T[], |
| | | callback: TreeCallback<T, void>, |
| | | getChildren: (data: T) => T[], |
| | | parent?: T |
| | | ) { |
| | | for (let i = 0; i < treeData.length; i++) { |
| | | const data = treeData[i]; |
| | | callback(data, i, treeData, parent); |
| | | |
| | | const children = getChildren(data); |
| | | if (Array.isArray(children)) { |
| | | treeEach(children, callback, getChildren, data); |
| | | } |
| | | } |
| | | } |