微信小程序地址的二级联动--柳州

地址的二级联动–柳州

效果图:
在这里插入图片描述
.js

const app = getApp()
var that
var list = []
Page({
  data: {
    addressInfo: [], //记录从服务器上返回的地址
    multiIndex: [0, 0, 0],

    cityCode: '', //市id
    regionCode: '', //区id
    townCode: '', //镇id

    arrAll: [
      ["柳州市"],
      [],
      []
    ]
  },
  onLoad: function () {
    that = this
    that.getAddressInfo()
  },

  getAddressInfo: function () {
    wx.request({
      url: '',//地址返回的数据就是最后面注释的
      method: "GET",
      success(res) {
        console.log("获取地址列表的结果:", res.data.data.children[0].children)

        let arr2 = res.data.data.children[0].children
        that.data.addressInfo = arr2 //记录到局部数组
        //把从服务器上返回来的地址数组的label放到arrAll第二列
        for (var i = 0; i < arr2.length; i++) {
          that.data.arrAll[1][i] = arr2[i].label
        }
        //把从服务器上返回来的地址数组的第一个城中区的子label放到arrAll第三列
        for (var i = 0; i < arr2[0].children.length; i++) {
          that.data.arrAll[2][i] = arr2[0].children[i].label
        }
        //更新
        that.setData({
          arrAll: that.data.arrAll
        })

        console.log("查找", that.code_Townname(450226207))
        console.log("查找", that.code_Regionname(450227))
      },
      fail(res) {
        console.log("失败", res)

      },
    })
  },
  bindMultiPickerChange: function (e) {
    console.log("按了确定进入:", e.detail.value)
    that.setData({
      multiIndex: e.detail.value

    })
    //使用[0,2,1]把地址中对应的code提取出来
    that.data.regionCode = that.data.addressInfo[e.detail.value[1]].value //区的code赋值
    that.data.townCode = that.data.addressInfo[e.detail.value[1]].children[e.detail.value[2]].value //县的code赋值
    console.log("区code:", that.data.regionCode)
    console.log("镇code:", that.data.townCode)
  },
  bindMultiPickerColumnChange: function (e) {
    console.log('修改的列为', e.detail.column, ',值为', e.detail.value);
    switch (e.detail.column) {
      case 1:
        list = []
        //把从服务器上返回来的地址数组的--指定第几个label中的--子label,放到arrAll第三列
        for (var i = 0; i < that.data.addressInfo[e.detail.value].children.length; i++) {
          that.data.arrAll[2][i] = that.data.addressInfo[e.detail.value].children[i].label
        }
        that.setData({
          arrAll: that.data.arrAll
        })

    }
  },

  /**
   * 镇code转成具体地址
   */
  code_Townname: function (code) {
    for (let j = 0; j < that.data.addressInfo.length; j++) {
      for (let i = 0; i < that.data.addressInfo[j].children.length; i++) {
        // console.log('查找中:', that.data.addressInfo[j].children[i].value)
        if (code == that.data.addressInfo[j].children[i].value) {
          console.log('已经找到')
          return that.data.addressInfo[j].children[i].label
        }
      }      
    }
    return '没有找到'

  },
  /**
   * 区code转成具体地址
   */
  code_Regionname: function (code) {
    for (var i = 0; i < that.data.addressInfo.length; i++) {
      // that.data.arrAll[2][i] = that.data.addressInfo[e.detail.value].children[i].label
      if (code == that.data.addressInfo[i].value) {
        console.log('已经找到')
        return that.data.addressInfo[i].label
      }
    }
    return '没有找到'
  },


})



/**
 * 
 访问服务器返回的值为:

  {"code":200,"message":"操作成功","data":{"value":450000,"label":"广西壮族自治区","children":[{"value":450200,"label":"柳州市","children":[{"value":450202,"label":"城中区","children":[{"value":450202105,"label":"河东街道"},{"value":450202107,"label":"沿江街道"},{"value":450202004,"label":"潭中街道"},{"value":450202102,"label":"公园街道"},{"value":450202103,"label":"中南街道"},{"value":450202101,"label":"城中街道"},{"value":450202106,"label":"静兰街道"}],"count":0},{"value":450203,"label":"鱼峰区","children":[{"value":450203001,"label":"天马街道"},{"value":450203002,"label":"驾鹤街道"},{"value":450203005,"label":"荣军街道"},{"value":450203003,"label":"箭盘山街道"},{"value":450203004,"label":"五里亭街道"},{"value":450203007,"label":"白莲街道"},{"value":450203008,"label":"麒麟街道"},{"value":450203009,"label":"白沙镇"},{"value":450203010,"label":"里雍镇"}],"count":0},{"value":450205,"label":"柳北区","children":[{"value":450205010,"label":"雅儒街道"},{"value":450205013,"label":"锦绣街道"},{"value":450205014,"label":"跃进街道"},{"value":450205008,"label":"解放街道"},{"value":450205009,"label":"胜利街道"},{"value":450205011,"label":"雀儿山街道"},{"value":450205000,"label":"柳长街道"},{"value":450205007,"label":"钢城街道"},{"value":450205003,"label":"白露街道"},{"value":450205006,"label":"石碑坪镇"},{"value":450205005,"label":"长塘镇"},{"value":450205004,"label":"沙塘镇"}],"count":0},{"value":450204,"label":"柳南区","children":[{"value":450204002,"label":"柳南街道"},{"value":450204004,"label":"潭西街道"},{"value":450204008,"label":"河西街道"},{"value":450204007,"label":"鹅山街道"},{"value":450204006,"label":"南站街道"},{"value":450204003,"label":"南环街道"},{"value":450204005,"label":"柳石街道"},{"value":450204009,"label":"银山街道"},{"value":450204001,"label":"太阳村镇"},{"value":450204010,"label":"流山镇"},{"value":450204011,"label":"洛满镇"}],"count":0},{"value":450206,"label":"柳江区","children":[{"value":450206013,"label":"拉堡镇"},{"value":450206011,"label":"穿山镇"},{"value":450206004,"label":"成团镇"},{"value":450206010,"label":"进德镇"},{"value":450206003,"label":"百朋镇"},{"value":450206008,"label":"三都镇"},{"value":450206009,"label":"里高镇"},{"value":450206012,"label":"土博镇"}],"count":0},{"value":450228,"label":"北部生态新区","children":[{"value":450228001,"label":"阳和街道"}],"count":0},{"value":450227,"label":"柳东新区","children":[{"value":450227001,"label":"雒容镇"},{"value":450227002,"label":"洛埠镇"}],"count":0},{"value":450223,"label":"鹿寨县","children":[{"value":450223101,"label":"平山镇"},{"value":450223100,"label":"中渡镇"},{"value":450223104,"label":"寨沙镇"},{"value":450223102,"label":"鹿寨镇"},{"value":450223200,"label":"黄冕镇"},{"value":450223201,"label":"江口乡"},{"value":450223202,"label":"导江乡"},{"value":450223205,"label":"四排镇"}],"count":0},{"value":450225,"label":"融水县","children":[{"value":450225100,"label":"融水镇"},{"value":450225101,"label":"和睦镇"},{"value":450225103,"label":"怀宝镇"},{"value":450225102,"label":"三防镇"},{"value":450225110,"label":"大浪乡"},{"value":450225201,"label":"永乐镇"},{"value":450225202,"label":"四荣乡"},{"value":450225203,"label":"香粉乡"},{"value":450225210,"label":"安陲乡"},{"value":450225214,"label":"汪洞乡"},{"value":450225207,"label":"同练瑶族乡"},{"value":450225208,"label":"滚贝侗族乡"},{"value":450225209,"label":"杆洞乡"},{"value":450225204,"label":"安太乡"},{"value":450225205,"label":"洞头镇"},{"value":450225111,"label":"大浪镇"},{"value":450225120,"label":"白云乡"},{"value":450225213,"label":"红水乡"},{"value":450225214,"label":"拱洞乡"},{"value":450225216,"label":"大年乡"},{"value":450225215,"label":"良寨乡"}],"count":0},{"value":450224,"label":"融安县","children":[{"value":450224200,"label":"雅瑶乡"},{"value":450224201,"label":"大坡乡"},{"value":450224206,"label":"东起乡"},{"value":450224204,"label":"桥板乡"},{"value":450224205,"label":"沙子乡"},{"value":450224207,"label":"潭头乡"},{"value":450224103,"label":"板榄镇"},{"value":450224104,"label":"大将镇"},{"value":450224100,"label":"长安镇"},{"value":450224101,"label":"浮石镇"},{"value":450224102,"label":"泗顶镇"},{"value":450224105,"label":"大良镇"}],"count":0},{"value":450222,"label":"柳城县","children":[{"value":450222010,"label":"冲脉镇"},{"value":450222001,"label":"大埔镇"},{"value":450222002,"label":"东泉镇"},{"value":450222003,"label":"凤山镇"},{"value":450222004,"label":"六塘镇"},{"value":450222005,"label":"龙头镇"},{"value":450222014,"label":"马山镇"},{"value":450222007,"label":"沙埔镇"},{"value":450222009,"label":"社冲乡"},{"value":450222006,"label":"太平镇"},{"value":450222013,"label":"寨隆镇"},{"value":450222011,"label":"古砦仫佬族乡"}],"count":0},{"value":450226,"label":"三江县","children":[{"value":450226101,"label":"丹洲镇"},{"value":450226102,"label":"斗江镇"},{"value":450226100,"label":" 古宜镇"},{"value":450226210,"label":"林溪镇"},{"value":450226207,"label":"富禄苗族乡"},{"value":450226203,"label":"老堡乡"},{"value":450226204,"label":"高基瑶族乡"},{"value":450226208,"label":"梅林乡"},{"value":450226205,"label":"良口乡"},{"value":450226206,"label":"洋溪乡"},{"value":450226201,"label":"程村乡"},{"value":450226202,"label":"和平乡"},{"value":450226212,"label":"同乐苗族乡"},{"value":450226209,"label":"八江镇"},{"value":450226110,"label":"独峒乡"}],"count":0}]}]}}
 
  */

.wxml

<view class="section">
  <view class="section__title">省市二级联动demo</view>
  <picker mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{multiIndex}}" range="{{arrAll}}">
    <view class="picker">
      当前选择:{{arrAll[0][multiIndex[0]]}}{{arrAll[1][multiIndex[1]]}}{{arrAll[2][multiIndex[2]]}}
    </view>
  </picker>
</view>

猜你喜欢

转载自blog.csdn.net/wy313622821/article/details/107189570
今日推荐