更新记录

1.0.3(2026-06-30)

更新readme文件

1.0.2(2026-06-30)

新增primaryColor属性,主题颜色配置
修复已知bug

1.0.1(2026-06-29)

更新说明:详见属性表
新增title属性
新增searchPlaceholder属性
新增multiple多选属性
新增both属性

查看更多

平台兼容性

uni-app(3.7.13)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - -

其他

多语言 暗黑模式 宽屏模式
× ×

w-cascader-picker适用于uni-app项目的多级选择组件

本组件目前兼容微信小程序、H5、APP端

本组件支持省市区选择、年月日选择、多级选择、自定义选择级数据自定义选择项、三级级联、支持精准搜索选项

从uniapp插件市场导入 遇到问题或有建议可以留言反馈
如果觉得组件不错,给五星鼓励鼓励爱你哟!

注意:该组件需要配合uni-popup使用,如果未安装该组件,请安装后重启项目!!!

vue2的使用方式暂不支持

使用方式(vue3 demo)

<template>
  <view class="content">
    <view class="btns" @click="openpopup()">
      打开选择器
    </view>
    <w-cascader-picker :data="options" :index="pickerIndex" hasSearch :visible="popupVisible"
      @selectIndex="(val) => selectIndex(val)" @close="handlePopupClose()" rangeKey="label" />
  </view>
</template>

<script setup>
  import {
    nextTick,
    ref,
  } from 'vue'
  import {
    onLoad,
    onReady,
    onPullDownRefresh,
    onReachBottom
  } from '@dcloudio/uni-app'

  const popupVisible = ref(false)
  // 级联选择器数据
  const options = ref([{
      value: '110000',
      label: '北京市',
      children: [{
        value: '110100',
        label: '北京市',
        children: [{
            value: '110101',
            label: '东城区',
          },
          {
            value: '110102',
            label: '西城区',
          },
        ],
      }],
    },
    {
      value: '120000',
      label: '天津市',
      children: [{
        value: '120100',
        label: '天津市',
        children: [{
            value: '120101',
            label: '和平区',
          },
          {
            value: '120102',
            label: '河东区',
          },
        ],
      }],
    },
  ])
  const pickerIndex = ref([0, 0, 0])

  const openpopup = () => {
    popupVisible.value = true
  }

  const selectIndex = (val) => {
    console.log(val, 'selectIndex')
  }

  const handlePopupClose = () => {
    popupVisible.value = false
  }
  onLoad(() => {

  })
</script>

<style scoped lang="scss">
  .content {
    width: 100%;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .btns {
    background: #E41A37;
    padding: 20rpx;
    border-radius: 8rpx;
    color: #fff;
  }
</style>

options数据格式(注意:组件自动检查数据源options的子集关键children字段,自动识别层级关系):

属性说明

名称 类型 默认值 描述
index Array [] 用于回显选中的下标(下标从 0 开始)
hasSearch Boolean false 是否开启搜索框
visible Boolean false 打开弹出层的值
data Array [] 数据源
rangeKey String 'label' 当 range 是一个 Array<Object> 时,通过 range-key 来指定 Object 中 key 的值作为选择器显示内容
title String '请选择' 弹出层的标题
searchPlaceholder String '请输入关键字搜索' 搜索框的站位字符
primaryColor String '' 主题颜色配置
multiple Boolean false 是否多选
both Boolean false 当值为true时,返回选择的value和对应的label
@selectIndex Function 点击确定按钮的回调
@close Function 关闭弹出层的回调

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率: