省市区三级联动去重

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

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;
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值