|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|