微信小程序 二级联动(多级联动)

这阵子公司突然需要开发小程序,于是乎恶补下,想必时间已过两年,小程序应该相当成熟了,未曾料到一个二级联动就各种模糊不清。官方给出案例,但是写的太乱,可读性差,还会写些多余的东西进去,容易误导我们这些小白...于是开启了百度之路,看到网友写的博客深感痛心,竟然有直接copy官案,大家都是拿来主义,多余的也copy...算了还是自己动手吧。

上代码:

html:

<picker mode="multiSelector" bindchange="bindQualificationChange" bindcolumnchange="bindQualificationColumnChange" value="{{qualificationIndex}}" range="{{qualificationArray}}">
   <view class="weui-select ellipsis" wx:if="{{qualificationName}}">{{qualificationName+(categoryBrandName?'-'+categoryBrandName:categoryBrandName)}}</view>
   <view class="weui-select" wx:else>请选择供应商要求</view>
</picker>

js:

data:{
   qualificationIndex: ['0', '0'],//索引
    qualificationArray: [
      ['品牌/代理授权书', '经营许可证', '无'],
      ['同品类代理证', '同品牌-同品类代理证']
    ], //付款类型数组
    objectQualificationArray: [{//第二级
        "No": "1",
        "parid": "1",//表示第一级里的第一个
        "regname": "同品类代理证"
      },
      {
        "No": "2",
        "parid": "1",
        "regname": "同品牌-同品类代理证"
      },
        {
        "No": "3",
        "parid": "2",表示第一级里的第二个
        "regname": "请不要开车"
      }
    ],
    qualificationType: "", //	*供应商要求资质类型 0 品牌/代理授权书 1 经营许可证 2 软件代理资质 3 无
    qualificationName: "",//第一级名称
    categoryBrandType: "", //	*供应商要求品牌品类类型 0 同品牌 1 同品类品牌
    categoryBrandName: "",//第二级名称

},
bindQualificationChange: function (e) {//供应商要求
    let vm = this;
    vm.setData({
      "qualificationIndex[0]": e.detail.value[0],
      "qualificationIndex[1]": e.detail.value[1],
      "qualificationName": vm.data.qualificationArray[0][e.detail.value[0]],
      "categoryBrandName": vm.data.qualificationArray[1][e.detail.value[1]] || "",
      "qualificationType": e.detail.value[0], //	资质类型 
      "categoryBrandType": e.detail.value[1] || "", //	品牌品类类型
    })
  },
  bindQualificationColumnChange: function(e) {//供应商要求
    let vm = this;
    // console.log('修改的列为', e.detail.column, ',值为', e.detail.value, vm.data.objectQualificationArray);
    switch (e.detail.column) {
      case 0:
        let list = [];
        // 此循环是进行第二级分组赋值
        for (var i = 0; i < vm.data.objectQualificationArray.length; i++) {
          if (e.detail.value + 1 == vm.data.objectQualificationArray[i].parid) {
            list.push(vm.data.objectQualificationArray[i].regname)
          }
        }
        vm.setData({
          "qualificationArray[1]": list,
          "qualificationIndex[0]": e.detail.value,
          "qualificationIndex[1]": 0
        })

    }
  },


 

 

效果图:

鄙人比较懒就直接贴项目代码了,作为伸手党,毕竟别人的成果借鉴过来还是要消化的,不然永远都是借鉴

 

参考文献:

1、官方案例

2、https://blog.csdn.net/sigesone/article/details/80611984 二级城市联动写的不错

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昌子玩前端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值