微信小程序之省市区三级联动自定义组件

最近一直在写小程序,上线以后老大告我,我们的地址选择只用地图来选择不能满足用户需求,还是得需要一个省市区选择器,好吧,本着用户是上帝,一切以用户用的爽为目的程序猿当然只能选择满足它了,于是就手动撸一个自定义组件省的以后折腾。关于自定义组件的概念定义我就不在这里赘述了,相信大家都已经阅读过文档了(文档写的还是很清楚的),下面我就直接上效果图了:

微信小程序之省市区三级联动自定义组件

使用的时候,直接引入自定义组件

{
"usingComponents": {
"nyz_area_picker": "../../Component/nyz_area_picker/nyz_area_picker"
}

}

wxml:

<nyz_area_picker
show="{{show}}"
bind:sureSelectArea="sureSelectAreaListener"
>
</nyz_area_picker>

js:

Page({
data: {
province:'',
city:'',
area:'',
show:false
},
sureSelectAreaListener:function(e){
var that = this;
that.setData({
show: false,
province: e.detail.currentTarget.dataset.province,
city: e.detail.currentTarget.dataset.city,
area: e.detail.currentTarget.dataset.area
})
},
chooseAddress:function(){
console.log("xuanzedizhi")
var that = this;
that.setData({
show:true
})
}
})

属性值:

show:组件显示隐藏

maskShow:是否显示蒙层

组件的js中别忘记引入area.js:

var areaTool = require('../../utils/area.js');
如果代码包过大,可以将地区json串放到服务器,通过接口请求也可。


组件源码及demo已经放在了github上,欢迎大家issue,github链接:https://github.com/Iterator1993/weapp_area_select