uniapp 有没有级联多选的组件可以使用?
在uniapp开发中,需要使用级联多选组件,但官方组件库里似乎没有找到合适的。请问有没有现成的级联多选组件可以使用?最好是支持多级联动选择,并且能兼容小程序和H5端的。如果有第三方插件推荐,也请说明一下使用方法和注意事项。
        
          2 回复
        
      
      
        有。uni-app官方没有专门的级联多选组件,但可以通过<picker>的mode="multiSelector"实现多列选择,或使用第三方组件如uni-data-picker、uni-cascader等插件库实现更完整的级联多选功能。
是的,uni-app 提供了 <picker> 组件,通过设置 mode="multiSelector" 可以实现级联多选功能。以下是具体实现方法:
核心代码示例
<template>
  <view>
    <picker 
      mode="multiSelector" 
      :range="multiArray" 
      :value="multiIndex"
      @change="onMultiChange"
      @columnchange="onColumnChange"
    >
      <view>当前选择:{{ selectedValues }}</view>
    </picker>
  </view>
</template>
<script>
export default {
  data() {
    return {
      multiArray: [
        ['前端', '后端'],           // 第一级
        ['Vue', 'React'],          // 第二级(初始)
        ['基础', '进阶']            // 第三级(初始)
      ],
      multiIndex: [0, 0, 0],
      selectedValues: []
    }
  },
  methods: {
    // 列数据变化时触发(联动关键)
    onColumnChange(e) {
      const { column, value } = e.detail
      const data = JSON.parse(JSON.stringify(this.multiArray))
      const idx = JSON.parse(JSON.stringify(this.multiIndex))
      
      idx[column] = value
      
      // 根据第一列动态更新第二列数据
      if (column === 0) {
        switch(value) {
          case 0: 
            data[1] = ['Vue', 'React', 'Angular']
            data[2] = ['基础', '进阶']
            break
          case 1: 
            data[1] = ['Java', 'Python', 'Go']
            data[2] = ['初级', '高级']
            break
        }
        idx[1] = 0
        idx[2] = 0
      }
      
      // 根据第二列动态更新第三列数据
      if (column === 1) {
        // 可继续添加具体逻辑
      }
      
      this.multiArray = data
      this.multiIndex = idx
    },
    
    // 最终选择确认
    onMultiChange(e) {
      const values = e.detail.value
      this.selectedValues = values.map((item, index) => {
        return this.multiArray[index][item]
      })
    }
  }
}
</script>
使用说明
- 数据格式:multiArray需要三维数组,分别对应各级选项
- 联动原理:通过监听 @columnchange事件,动态修改后续列的数据源
- 取值方式:在 @change事件中通过multiIndex获取选中项的索引
扩展方案
如需更复杂的样式和功能,推荐使用第三方组件:
- uni-data-picker:DCloud官方数据驱动组件
- uni-cascader:社区开发的级联选择器
在插件市场搜索以上组件名称即可找到详细文档和使用示例。
以上实现可以满足大部分级联选择需求,实际开发时根据业务数据调整动态加载逻辑即可。
 
        
       
                     
                   
                    

