无人机管理后台前端(已迁走)
罗广辉
2025-10-11 02409bfbe15f22fc3b5dccadabfd860a660a49d9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
/**
 * 根据行政区划代码查找对应的行政区划名称
 * @param {string|number} areaCode - 行政区划代码
 * @param {Array} regionalData - 行政区划树形数据
 * @param {boolean} [needFullPath=false] - 是否需要完整路径
 * @returns {string} 行政区划名称或完整路径
 */
export const findAreaName = (areaCode, regionalData = [], needFullPath = false) => {
    if (!regionalData || regionalData.length === 0) return areaCode;
  
    const normalizeCode = code => {
      if (!code) return '';
      const strCode = String(code).replace(/0+$/, '');
      return strCode.length >= 6 ? strCode : '';
    };
  
    const targetCode = normalizeCode(areaCode);
    
    const findInTree = (treeNodes, parentPath = []) => {
      for (const node of treeNodes) {
        const currentPath = [...parentPath, node.name];
  
        if (normalizeCode(node.id) === targetCode) {
          return needFullPath ? currentPath.join('/') : node.name;
        }
  
        if (node.childrens?.length > 0) {
          const found = findInTree(node.childrens, currentPath);
          if (found) return found;
        }
      }
      return null;
    };
  
    return findInTree(regionalData) || areaCode;
  };