| import { AreaType } from '@12333/constants'; | 
|   | 
| export function formatAreaListToTree( | 
|   areaDataList: API.AreaTreeNode[], | 
|   parentId = null, | 
|   maxLayer = AreaType.Area | 
| ) { | 
|   const treeNodeList: API.AreaTreeNode[] = []; | 
|   if (areaDataList.length > 0) { | 
|     areaDataList.forEach((areaData) => { | 
|       const areaTreeNode: API.AreaTreeNode = { ...areaData }; | 
|       if (areaData.parentCode === parentId && areaData.layer <= maxLayer) { | 
|         const children = formatAreaListToTree(areaDataList, areaData.areaCode, maxLayer); | 
|         if (children.length > 0) { | 
|           areaTreeNode.children = children; | 
|         } | 
|         treeNodeList.push(areaTreeNode); | 
|       } | 
|     }); | 
|   } | 
|   return treeNodeList; | 
| } | 
|   | 
| export function flattenAreaTree(tree: API.AreaDto[]) { | 
|   let result = [] as API.AreaDto[]; | 
|   | 
|   // 递归函数,用于遍历子节点 | 
|   function flatten(node: API.AreaDto) { | 
|     result.push(node); | 
|   | 
|     if (node.children && node.children.length > 0) { | 
|       node.children.forEach(flatten); | 
|     } | 
|   } | 
|   | 
|   // 遍历树的根节点 | 
|   tree.forEach(flatten); | 
|   | 
|   return result; | 
| } |