Vant_根据已有地址获取code

Vant_根据已有地址获取code

arealist

在AddressEdit我们已经引入 :area-list="areaList"
这是arealist:
在这里插入图片描述
在这里插入图片描述
city_list:市列表
province_list:省列表
county_list:区列表

获取默认地址省市区的code

      // 获取默认的省市区
      this.defaultProvince = this.AddressInfo.province;//山东省
      this.defaultCity = this.AddressInfo.city;//德州市
      this.defaultArea = this.AddressInfo.country;//德城区
 // 省 resultProvince
      let resultProvince = Object.entries(areaList.province_list);
      // console.log(resultProvince)
      resultProvince.forEach((item) => {
        if (item[1] == this.defaultProvince) {
          // console.log(item[0]);
          // console.log(item[1]);
          this.result.provinceCode = item[0];
          this.result.province = item[1];
        }
      });

      // 市 resultCity
      let resultCity = Object.entries(areaList.city_list);
      resultCity.forEach((item) => {
        if (item[1] == this.defaultCity) {
          // console.log(item[0]);
          // console.log(item[1]);
          this.result.cityCode = item[0];
          this.result.city = item[1];
        }
      });

      // 区 resultArea
      let resultArea = Object.entries(areaList.county_list);
      resultArea.forEach((item) => {
        if (item[1] == this.defaultArea) {
          // console.log(item[0]);
          // console.log(item[1]);
          this.result.areaCode = item[0];
          this.result.area = item[1];
        }

打印resultProvince:
在这里插入图片描述
resultProvince中的console.log(item[0]);console.log(item[1]);打印结果
在这里插入图片描述
这里我们就获取到了省的code,市和区的获取方法也如上。
最后省的code放到了provinceCode
市的code放到了cityCode
区的code放到了areaCode

更改

---------------------------2023.8.24更新---------------------------------------
最近把之前的项目重新跑了一遍,发现我当初的获取code存在问题现在进行更改:

问题:当某省某个区的区名与其他省的某个区名重复的时候,获取的code有可能会存在错误

例子:北京市北京市朝阳区与吉林省长春市朝阳区

  • 北京市北京市朝阳区的areaCode为:
    在这里插入图片描述
  • 吉林省长春市朝阳区areaCode为:
    在这里插入图片描述
    但是当我的默认地址设置为北京市北京市朝阳区时,我获取的code却是:
    在这里插入图片描述

解决方法:

      // 获取默认的省市区
      this.defaultProvince = this.AddressInfo.province;
      this.defaultCity = this.AddressInfo.city;
      this.defaultArea = this.AddressInfo.country;

      // 省 resultProvince
      let resultProvince = Object.entries(areaList.province_list);
      // console.log(resultProvince)
      resultProvince.forEach((item) => {
        if (item[1] == this.defaultProvince) {
          this.result.provinceCode = item[0];
          this.result.province = item[1];
        }
      });

      // 将获取的省code转换成数组
      let arrProvince = this.result.provinceCode.split("");
      // console.log(arrProvince);

      // 市 resultCity
      let resultCity = Object.entries(areaList.city_list);
      resultCity.forEach((item) => {
        let arrCity = item[0].split("");
        // console.log(arrCity);
        if (
          item[1] == this.defaultCity &&
          arrProvince[0] == arrCity[0] &&
          arrProvince[0] == arrCity[0]
        ) {
          this.result.cityCode = item[0];
          this.result.city = item[1];
          // console.log(this.result);
        }
      });
      // console.log(this.result);
      let arrCity1 = this.result.cityCode.split("");
      // console.log(arrCity1);

      // 区 resultArea
      let resultArea = Object.entries(areaList.county_list);
      // console.log(resultArea);
      // console.log(this.defaultArea);

      resultArea.forEach((item) => {
        let arrArea = item[0].split("");
        if (
          item[1] == this.defaultArea &&
          arrArea[0] == arrCity1[0] &&
          arrArea[1] == arrCity1[1] &&
          arrArea[2] == arrCity1[2] &&
          arrArea[3] == arrCity1[3]
        ) {
          this.result.areaCode = item[0];
          this.result.area = item[1];
          console.log(item);
        }
      });
      // console.log(this.result);

      // 把获取到的省市区以及对应的code放到result中
      //  拿取默认地址的code  在组件上设置默认的省市区
      // this.AddressInfo.areaCode = this.result.provinceCode;
      // this.AddressInfo.areaCode = this.result.cityCode;
      this.AddressInfo.areaCode = this.result.areaCode;
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值