实现微信小程序picker 省市区 自定义数据 支持三级联动
再使用微信小程序时
发现 当 mode="region" 时数据 选择的省市区的数据不支持后台返回的数据
以下实现后台返回数据操作
先设置HTML
name 字段名字要替换掉
<view class=" h-100 b-b l-h-100">
<picker mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" range-key="name" value="{{multiIndex}}" range="{{multiArray}}">
<view class="picker flex-r">
<view class="bold"><text class="c-f00">*</text>地区</view> <text> {{multiArray[0][multiIndex[0]].name}}{{multiArray[1][multiIndex[1]].name}}{{multiArray[2][multiIndex[2]].name}} </text>
</view>
</picker>
</view>
在data中
data:{
multiArray: [],//地区
multiIndex: [0, 0, 0],
type:0,
}
首次进来查询省市区数据
// POST 开发完成
// 获取省市区
首次调用 type传0
code 为查询下级的id code 为空时则查询省
getcitycode(type,code){
var self=this
var {multiArray,multiIndex,code,street}=this.data
app.ajax({
code,
url: '/shenshiqu',
}, function (result) {
multiArray[type]=result.data.data
if(type<2)self.getcitycode(type+1,result.data.data[index].taobaoid)
})
},
当滚动省获或者市时 更新 并联动
// 选择省市区
bindMultiPickerChange: function (e) {
console.log('picker发送选择改变,携带值为', e.detail.value)
this.setData({multiIndex: e.detail.value})
},
// 选择省市区
bindMultiPickerColumnChange: function (e) {
console.log('修改的列为', e.detail.column, ',值为', e.detail.value);
var data = {
multiArray: this.data.multiArray,
multiIndex: this.data.multiIndex
};
data.multiIndex[e.detail.column] = e.detail.value;
switch (e.detail.column) {
case 0:
console.log(data.multiArray[e.detail.column][e.detail.value].taobaoid)
this.getcitycode(1,data.multiArray[e.detail.column][e.detail.value].taobaoid)
break;
case 1:
console.log(data.multiArray[e.detail.column][e.detail.value].taobaoid)
this.getcitycode(2,data.multiArray[e.detail.column][e.detail.value].taobaoid)
break;
}
this.setData(data);
},
喜欢的可以加人前端面试题库,方便使用 微信搜索 “MST题库”
或者扫码查看 或有问题的扫码联系
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)