更新记录
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 项目均支持

收藏人数:
下载插件并导入HBuilderX
下载示例项目ZIP
赞赏(0)
下载 36
赞赏 0
下载 12671783
赞赏 1955
赞赏
京公网安备:11010802035340号