| | |
| | | import { AreaType } from '@12333/constants'; |
| | | |
| | | export interface AreaTreeNode extends API.AreaDto { |
| | | children?: AreaTreeNode[]; |
| | | } |
| | | |
| | | export function formatAreaListToTree( |
| | | areaDataList: API.AreaDto[], |
| | | parentId: number, |
| | | areaDataList: API.AreaTreeNode[], |
| | | parentId = '', |
| | | maxLayer = AreaType.Area |
| | | ) { |
| | | const treeNodeList: API.AreaTreeNode[] = []; |
| | | if (areaDataList.length > 0) { |
| | | areaDataList.forEach((areaData) => { |
| | | const areaTreeNode: API.AreaTreeNode = { ...areaData }; |
| | | if (areaData.parentId === parentId && areaData.layer <= maxLayer) { |
| | | if (areaData.parentCode === parentId && areaData.layer <= maxLayer) { |
| | | const children = formatAreaListToTree(areaDataList, areaData.areaCode, maxLayer); |
| | | areaTreeNode.children = children; |
| | | treeNodeList.push(areaTreeNode); |