小程序picker 二级联动。需要的拿走,只为减少弯路。js文件中为了更方便看到效果所以直接把json 贴出来,通过 JSON.parse(json) 转成对象。正常的应该是通过接口返回的,各位做成动态的要把这个代码去掉,拼装成这样就好了。亲测,可用。
wxml中默认的显示的 两个分类名称,第一个给注释掉了,看需求可再修改显示一个分类名称,还是两个分类名称。
20200603修改了个bug。这个方法重写了
bindMultiPickerColumnChange: function (e) {
var that=this;
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;
//如果是第0列,那麼第1列则显示
if(e.detail.column == 0)
{
for (let i = 0; i < that.data.allmultiArray[e.detail.value].child.length; i++) {
if (i == 0)
{
that.setData({ 'childcatid': that.data.allmultiArray[e.detail.value].child[i].class_id, "multiArray[1]":[] });
}
that.data.multiArray[1].push(that.data.allmultiArray[e.detail.value].child[i].class_name);
}
}
//如果是第1列
if(e.detail.column == 1)
{
for (let i = 0; i < that.data.allmultiArray[that.data.multiIndex[0]].child.length; i++) {
if (i == e.detail.column)
{
that.setData({ 'childcatid': that.data.allmultiArray[that.data.multiIndex[0]].child[i].class_id });
}
}
}
this.setData(data);
},
1