需求 : 在省市区三级联动中,如果只选择了区,那就存储区的编号;如果选择了市,那么不存储区级的编号,只存储市的编号;如果选择了省,那么只存储省级编号。
function changeRes(checkedKeys) {
let checkedList = checkedKeys; // 所有checkbox 勾选的编号
let data = [];
let proFixList = [];
let cityFixList = [];
checkedList.map(v => {
let proFix = v.slice(0, 2);
let areaFix = v.slice(2, 4);
let proCode = proFix + '0000';
if (areaFix !== '00') {
let cityCode = proFix + areaFix + '00';
cityFixList.push(cityCode)
}
proFixList.push(proCode)
proFixList = [...new Set(proFixList)]; // 选择的省
cityFixList = [...new Set(cityFixList)]; // 选择的市
})
cityFixList.map(v => {
if (checkedList.includes(v)) {
checkedList.map((vv, k) => {
if (vv.slice(0,4) === v.slice(0, 4)) {
checkedList[k] = v;
} else if (vv === '017020') { // 内蒙古康巴什区 邮政编码处理
checkedList[k] = '150000'
}
})
}
data = [...new Set(checkedList)]; // 数组去除重复数据
})
proFixList.map(v => {
if (checkedList.includes(v)) {
checkedList.map((vv, k) => {
if (vv.slice(0,2) === v.slice(0, 2)) {
checkedList[k] = v;
}
})
}
data = [...new Set(checkedList)];
})
return data;
}