zhengyiming
2025-10-15 a3e1da45f265bb7593fb585b114a268a104c5d8a
packages/utils/area.ts
@@ -1,21 +1,19 @@
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 = null,
  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;
        if (children.length > 0) {
          areaTreeNode.children = children;
        }
        treeNodeList.push(areaTreeNode);
      }
    });