uniapp vue2多选模糊下拉组件
FuzzySelect 组件使用文档
组件概述
FuzzySelect
是一个基于 Vue2 的 uni-app 模糊匹配下拉框组件,支持搜索筛选、多选、选项分组等功能,提供了良好的用户体验和自定义选项。
显示效果
安装与引入
将组件文件 FuzzySelect.vue
放入项目的 components
目录下,在需要使用的页面中引入:
<template><view><FuzzySelect :options="options" v-model="selectedValue" /></view>
</template><script>
import FuzzySelect from '@/components/FuzzySelect.vue';export default {components: {FuzzySelect},data() {return {options: [{ value: '1', label: '选项1' },{ value: '2', label: '选项2' },{ value: '3', label: '选项3' }],selectedValue: ''}}
}
</script>
基础用法
单选模式
<FuzzySelect :options="cities" v-model="selectedCity"placeholder="请选择城市"
/>
多选模式
<FuzzySelect :options="cities" v-model="selectedCities"multipleplaceholder="请选择城市"
/>
选项分组
<FuzzySelect :options="groupOptions" v-model="selectedGroupOption"placeholder="请选择"
/>// 分组选项数据格式
groupOptions: [{label: '一线城市',children: [{ value: 'beijing', label: '北京' },{ value: 'shanghai', label: '上海' },{ value: 'guangzhou', label: '广州' },{ value: 'shenzhen', label: '深圳' }]},{label: '新一线城市',children: [{ value: 'chengdu', label: '成都' },{ value: 'hangzhou', label: '杭州' },{ value: 'wuhan', label: '武汉' }]}
]
自定义过滤字段
<FuzzySelect :options="complexOptions" v-model="selectedComplexOption":filterFields="['name', 'code']"placeholder="可搜索名称或代码"
/>// 复杂选项数据格式
complexOptions: [{ value: '1001', label: '北京', name: '北京市', code: '010' },{ value: '1002', label: '上海', name: '上海市', code: '021' },{ value: '1003', label: '广州', name: '广州市', code: '020' }
]
Props
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
options | Array | [] | 选项数据,支持分组格式 |
value | String/Number/Array | null | 绑定值,单选时为单个值,多选时为数组 |
multiple | Boolean | false | 是否支持多选 |
placeholder | String | ‘请选择’ | 占位文本 |
searchPlaceholder | String | ‘搜索…’ | 搜索框占位文本 |
showSearch | Boolean | true | 是否显示搜索框 |
maxHeight | String | ‘200px’ | 下拉列表最大高度 |
noDataText | String | ‘暂无数据’ | 无数据时显示的文本 |
strictMatch | Boolean | false | 是否严格匹配(区分大小写) |
filterFields | Array | [‘label’] | 搜索过滤的字段 |
事件
事件名 | 说明 | 返回值 |
---|---|---|
input | 值变更时触发 | 选中的值 |
change | 值变更时触发 | 选中的值 |
方法
方法名 | 说明 | 参数 | 返回值 |
---|---|---|---|
clearAllSelected | 清空所有选中项 | 无 | 无 |
样式自定义
组件使用了 scoped 样式,如需自定义样式,可以通过覆盖 CSS 变量或直接修改组件内部样式来实现。
注意事项
- 确保选项数据格式正确,分组选项需要包含
children
字段 - 多选模式下,绑定值应为数组类型
- 在小程序环境下使用时,可能需要根据实际情况调整样式
通过以上方式,你可以灵活使用 FuzzySelect
组件实现各种下拉选择需求,享受其带来的模糊匹配、搜索筛选等便捷功能。