省市区三级联动去重

来源:互联网 发布:房屋装修预软件 编辑:程序博客网 时间:2024/05/21 16:58

需求 : 在省市区三级联动中,如果只选择了区,那就存储区的编号;如果选择了市,那么不存储区级的编号,只存储市的编号;如果选择了省,那么只存储省级编号。

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;  }
原创粉丝点击