将县级代码添加到城市级代码中:Cascader 区域数据处理优化
可以在代码中加入一个功能,将县的代码也放进城市中。具体的做法是在遍历'county'时,根据县的代码找到对应的城市,然后将县添加到城市的'children'中。
修改后的代码如下:
function useCascaderAreaData() {
const {
city_list: city,
county_list: county,
province_list: province
} = areaList;
const provinceMap = /* @__PURE__ */ new Map();
Object.keys(province).forEach((code) => {
provinceMap.set(code.slice(0, 2), makeOption(province[code], code, []));
});
const cityMap = /* @__PURE__ */ new Map();
Object.keys(city).forEach((code) => {
const option = makeOption(city[code], code, []);
cityMap.set(code.slice(0, 4), option);
const province2 = provinceMap.get(code.slice(0, 2));
if (province2) {
province2.children.push(option);
}
});
Object.keys(county).forEach((code) => {
const city2 = cityMap.get(code.slice(0, 4));
if (city2) {
city2.children.push(makeOption(county[code], code));
} else {
// 如果找不到对应的城市,则将县添加到省份的'children'中
const province3 = provinceMap.get(code.slice(0, 2));
if (province3) {
province3.children.push(makeOption(county[code], code));
}
}
});
return Array.from(provinceMap.values());
}
这样,如果有对应的城市代码,县将会被添加到城市的'children'中;如果找不到对应的城市代码,县将会被添加到省份的'children'中。
原文地址: http://www.cveoy.top/t/topic/pMrJ 著作权归作者所有。请勿转载和采集!