获取到省市区最后一级怎么回显到联级选择器(ts)
ts部分
// 行政区号查找父节点
function findParentValues(nodes: any, targetvalue: any, result: any = []) {
// console.log('===============', nodes, targetvalue, '----')
for (const node of nodes) {
if (node.value === targetvalue) {
// 如果当前节点就是目标节点,回溯并添加父级value到结果数组
// 注意:由于我们是从下往上回溯,所以需要反转数组
result.unshift(node.value)
// 如果需要继续向上(理论上在这个场景下不需要,因为我们找到了目标),可以取消下一行的return
return result // 找到目标后直接返回结果
}
if (node.children && node.children.length > 0) {
// 递归查找子节点
const found = findParentValues(
node.children,
targetvalue,
result,
)
if (found.length > 0) {
// 如果在子节点中找到了目标,添加当前节点的value到结果数组
result.unshift(node.value)
return result // 返回结果,因为已经找到了目标
}
}
}
return result // 如果没有找到目标,返回空数组
}
/*
addressList.value ---获取到的省市区等的数据
res.data.xzqh --- 获取到的省市区最后一级 如:43122100000000
*/
const address = findParentValues(addressList.value, res.data.xzqh) //得到的是["43000000000000","43120000000000","43122100000000"]