/* * @Author: shuishen 1109946754@qq.com * @Date: 2025-04-10 18:28:40 * @LastEditors: shuishen 1109946754@qq.com * @LastEditTime: 2025-04-10 18:52:25 * @FilePath: \drone-web-manage\src\utils\disposeData.js * @Description: * * Copyright (c) 2025 by shuishen, All Rights Reserved. */ /** * 递归查找指定adcode值的对象 * @param {string} property - 要匹配的属性名(如'adcode') * @param {*} value - 要匹配的属性值(如22223) * @returns {Object|null} 找到的对象或null */ export const getAdcodeObj = (data, property, value) => { // 检查当前对象是否直接匹配 if (data && typeof data === 'object') { // 检查payload.properties中的adcode if (data.payload?.objects?.collection?.geometries?.[0]?.properties?.[property] == value) { return data } // 检查当前对象的直接属性 if (data[property] == value) { return data } // 递归检查children if (data.children) { for (const key in data.children) { const found = getAdcodeObj(data.children[key], property, value) if (found) return found } } // 递归检查数组或对象属性 for (const key in data) { if (key !== 'children' && data[key] && typeof data[key] === 'object') { const found = getAdcodeObj(data[key], property, value) if (found) return found } } } return null }