文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

微信小程序如何实现地区选择伪五级联动

2023-07-02 16:30

关注

这篇文章主要介绍“微信小程序如何实现地区选择伪五级联动”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序如何实现地区选择伪五级联动”文章能帮助大家解决问题。

效果图

微信小程序如何实现地区选择伪五级联动

这里采用的是自定义多列选择器picker mode="multiSelector"

<view class="section">    <view class="section__title">多列选择器</view>    <picker mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{multiIndex}}" range="{{multiArray}}">      <view wx:if="{{multiIndex[0]==0}}" class="picker" style='font-size:24rpx'>        当前选择:全国      </view>      <view wx:elif="{{multiIndex[1]==0}}" class="picker" style='font-size:24rpx'>        当前选择:{{multiArray[0][multiIndex[0]]}}      </view>      <view wx:elif="{{multiIndex[2]==0}}" class="picker" style='font-size:24rpx'>        当前选择:{{multiArray[0][multiIndex[0]]}}-{{multiArray[1][multiIndex[1]]}}      </view>      <view wx:elif="{{multiIndex[3]==0}}" class="picker" style='font-size:24rpx'>        当前选择:{{multiArray[0][multiIndex[0]]}}-{{multiArray[1][multiIndex[1]]}}-{{multiArray[2][multiIndex[2]]}}      </view>      <view wx:else class="picker" style='font-size:24rpx'>        当前选择:{{multiArray[0][multiIndex[0]]}}-{{multiArray[1][multiIndex[1]]}}-{{multiArray[2][multiIndex[2]]}}-{{multiArray[3][multiIndex[3]]}}      </view>    </picker></view>

multiArray包含4个数组(省市县镇),multiIndex是4个数组对应选中下标 

onLoad: async function (options) {    let chinaData = await getCountryList()    chinaData.unshift({city: [],code: 0,name: "全部"})    for(let one of chinaData){        one.city.unshift({county: [],code: 0,name: "全部"})        for(let two of one.city){            two.county.unshift({code: 0,name: "全部"})        }    }    this.data.chinaData = chinaData;    let sheng = []; //  设置省数组    for(let i = 0; i < chinaData.length; i++) {       sheng.push(chinaData[i].name);    }    this.setData({       "multiArray[0]": sheng    })    this.getCity(); // 得到市},    bindMultiPickerChange: function(e) {        console.log(e);    },    bindMultiPickerColumnChange: function(e) {        let move = e.detail;        let index = move.column;        let value = move.value;        if (index == 0) {          this.setData({            multiIndex: [value,0,0,0]          })          this.getCity();        }        if (index == 1) {          this.setData({            "multiIndex[1]": value,            "multiIndex[2]": 0,            "multiIndex[3]": 0          })          this.getXian();        }        if (index == 2) {          this.setData({            "multiIndex[2]": value,            "multiIndex[3]": 0,               })          this.getZhen();        }        if (index == 3) {          this.setData({            "multiIndex[3]": value          })          this.getZhen();        }    },    getCity: function() { //  得到市        let shengNum = this.data.multiIndex[0];        let chinaData = this.data.chinaData;        let cityData = chinaData[shengNum].city;        let city = [];        for (let i = 0; i < cityData.length; i++) {          city.push(cityData[i].name)        }        this.setData({          "multiArray[1]": city        })        this.getXian();    },    getXian: function(e) { //  得到县        let shengNum = this.data.multiIndex[0];        let cityNum = this.data.multiIndex[1];        let chinaData = this.data.chinaData;        let xianData = chinaData[shengNum].city[cityNum].county;        let xian = [];        for (let i = 0; i < xianData.length; i++) {          xian.push(xianData[i].name)        }        this.setData({          "multiArray[2]": xian        })        this.getZhen();    },    async getZhen(){//  得到镇        let shengNum = this.data.multiIndex[0];        let cityNum = this.data.multiIndex[1];        let xianNum = this.data.multiIndex[2];        let chinaData = this.data.chinaData;        let zhen = [];        if(chinaData[shengNum].city[cityNum].county[xianNum].code == 0){            this.setData({                "multiArray[3]" : ["全部"]            })        }else{            //这里需要传县的code值获取镇的数据            let res =  await getTownByCounty(chinaData[shengNum].city[cityNum].county[xianNum].code)            let zhenData = JSON.parse(res.data.data.json)            zhenData.unshift({code: 0,name: "全部"})            for (let i = 0; i < zhenData.length; i++) {                zhen.push(zhenData[i].name)            }            this.setData({                "multiArray[3]" : zhen            })        }    }

省市县数据返回类型

微信小程序如何实现地区选择伪五级联动

镇返回数据

微信小程序如何实现地区选择伪五级联动

关于“微信小程序如何实现地区选择伪五级联动”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯