更新记录

1.0.0(2026-10-12) 下载此版本

  • 首个版本
  • 数据驱动 + 字段映射(label / value / disabled),适配任意数据结构
  • 通过 multiple 属性切换单选 / 多选,用法与 el-select 的 multiple 一致
  • 支持一键清除、整体禁用、无选项提示
  • 多选超长回显自动折叠为「+N」,可自定义展示数量与分隔符
  • 支持主题色自定义
  • v-model 双向绑定,Vue2 / Vue3 双兼容

平台兼容性

uni-app(5.0)

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

uni-app x(5.0)

Chrome Safari Android iOS 鸿蒙 微信小程序
√ √ √ √ √ √

其他

多语言 暗黑模式 宽屏模式 蒸汽模式
× × √ ×

Rui-multiDataSelect 多选下拉选择器

通用下拉选择组件:选择框 + 下拉面板,选项由 data 数据驱动、字段可映射,通过 multiple 属性即可在单选 / 多选之间切换,用法与 element-plus 的 el-select 一致。

组件不依赖任何业务接口或数据格式,开箱即用。

功能特性

  • 数据驱动 + 字段映射 props(label / value / disabled),适配任意数据结构
  • multiple 属性切换单选 / 多选:多选逐项勾选、单选选中即关闭
  • 多选超长回显自动折叠为「+N」,展示数量与分隔符可自定义
  • 支持一键清除、整体禁用、无选项提示
  • 支持主题色自定义
  • 点击遮罩自动关闭下拉面板
  • v-model 双向绑定,Vue2、Vue3 项目均可直接使用,无需适配

数据格式

默认选项字段为 label / value / disabled:

const options = [
  { label: '研发中心', value: 'dev' },
  { label: '市场中心', value: 'market' },
  { label: '职能中心', value: 'hr', disabled: true }
]

若字段名不同,通过 props 映射:

<Rui-multiDataSelect v-model="form.depts" :data="options"
  :props="{ label: 'name', value: 'code', disabled: 'disabledFlag' }" />

快速上手

<!-- 多选(默认) -->
<Rui-multiDataSelect v-model="form.depts" :data="options" />

<!-- 单选:设置 :multiple="false" -->
<Rui-multiDataSelect v-model="form.dept" :data="options" :multiple="false" />

<!-- 不可清除 + 禁用 -->
<Rui-multiDataSelect v-model="form.depts" :data="options" :clearable="false" disabled />

<!-- 自定义占位、无选项提示、折叠数量、分隔符、主题色 -->
<Rui-multiDataSelect v-model="form.depts" :data="options"
  placeholder="请选择部门" empty-text="暂无部门"
  :max-show="2" separator="," primary-color="#ff6600" />

Props

属性名 类型 默认值 说明
value / modelValue Array / String / Number '' v-model 绑定值:多选为数组,单选为节点值,Vue2 / Vue3 均直接使用
data Array [] 选项数据源
props Object { label: 'label', value: 'value', disabled: 'disabled' } 字段映射,用法与 el-select 一致
multiple Boolean true 是否多选,与 el-select 的 multiple 属性一致;设为 false 即单选
clearable Boolean true 是否可一键清除已选值
disabled Boolean false 整体禁用
placeholder String '请选择' 未选择时的占位文案
emptyText String '无选项' 无选项时的提示文案
maxShow Number 3 多选时最多直接展示的项数,超出显示「+N」;小于等于 0 表示全部展示
separator String '、' 多选回显文本的分隔符
primaryColor String '#2979ff' 主题色(选中态)

Events

事件名 参数 说明
change (value) 选中 / 取消 / 清除时触发,参数为最新绑定值
input (value) Vue2 v-model 内部事件
update:modelValue (value) Vue3 v-model 内部事件

使用说明

  • 多选模式下 v-model 为数组,单选模式下为单个值;清除时多选回传 []、单选回传 ''
  • 多选模式下点击选项为勾选 / 取消,面板保持打开;单选模式下选中后自动关闭面板
  • 选项值为 0、'' 等非真值时也能正常参与选中判断(内部按字符串比较)
  • 点击下拉面板外的遮罩区域可关闭面板
  • 该组件为下拉面板(跟随选择框向下弹出),如需底部弹窗形式可自行调整样式

兼容性

  • 支持:App(vue 页面)、H5、微信 / 支付宝 / 百度 / 字节跳动 / QQ 小程序
  • 不支持:nvue 页面
  • Vue2、Vue3 项目均支持

隐私、权限声明

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

无

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

无

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

无

许可协议

MIT License

Copyright (c) 2026 Rui

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

暂无用户评论。