zhengyiming
4 天以前 12446d3fedd1efb701c06413019bff9a21ed4eb6
packages/utils/area.ts
@@ -1,21 +1,19 @@
import { AreaType } from '@12333/constants';
export interface AreaTreeNode extends API.AreaInfo {
  children?: AreaTreeNode[];
}
export function formatAreaListToTree(
  areaDataList: API.AreaInfo[],
  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);
      }
    });
@@ -23,11 +21,11 @@
  return treeNodeList;
}
export function flattenAreaTree(tree: API.AreaInfo[]) {
  let result = [] as API.AreaInfo[];
export function flattenAreaTree(tree: API.AreaDto[]) {
  let result = [] as API.AreaDto[];
  // 递归函数,用于遍历子节点
  function flatten(node: API.AreaInfo) {
  function flatten(node: API.AreaDto) {
    result.push(node);
    if (node.children && node.children.length > 0) {