# SimpleSelect 简单选择器

此组件仅在 v1.0.21 版本以及以上支持

# SimpleSelect 概述

大量数据使用。
选择器支持单选、多选、过滤。

# SimpleSelect 代码演示

# 基础用法

基本用法。可以使用 v-model 双向绑定数据。
单选时,value 只接受字符串,多选时,只接受数组类型,组件会自动根据 Optionvalue 来返回选中的数据。
可以给 Select 添加 style 样式,比如宽度。

# 多选

通过设置属性 multiple 开启多选模式,点击复选框选中选项。多选模式下,model 接受数组类型的数据,所返回的也是数组。

# 可搜索

通过设置属性 filterable 可以开启搜索模式。单选和多选都支持搜索模式。多选搜索时,可以使用键盘 Delete 快捷删除最后一个已选项。
支持模糊查询,不支持拼音查询。
on-query-change 事件:搜索词改变时触发,控制台中可查看。
setQuery 方法:设置搜索词,为空时清空,仅在 filterable="true" 时有效。

# 弹窗的展开方向和多列

通过 placement 弹窗的展开方向,可选值为 bottom 和 top。默认值为 bottom。

# 远程搜索

远程搜索需同时设置 filterableremoteremote-methodloading 四个 props,其中 loading 用于控制是否正在搜索中,remote-method 是远程搜索的方法。
loading-text 远程搜索中的文字提示,默认显示加载中。
注意:需要给 Option 设置 key。
设置初始显示值,需设置 label 属性。
本例为账号,尝试输入一些数字。

# 是否全选过滤后的数据

isSelectFilter 开启后使用全选功能时将自动全选过滤后的数据。

# 隐藏多选框

hideMult 只在多选模式下生效,开启后隐藏左侧多选框。

# 聚焦指定选项

focusInit 类型为Number,设置后将会默认聚焦在某一项。
例如实例中 focusInit=5,即默认聚焦设置项。

# 设置互斥项

specialIndex 在多选模式下,开启特殊项。
specialVal 开启特殊项之后,使用该值指定特殊项的 Value,特殊项将与其他项互斥。
例如实例中 specialVal = "CD3Z" ,即 CD3Z 将与其他项互斥。

# 选择框内显示已选数量

showTotalNum 离开当前选项框时显示当前选择项数目,项数大于 2 时生效。

# 远程搜索时显示下拉箭头

showArrow 远程搜索时默认不显示箭头,设置该属性后重新显示箭头。

# 多选时已选项显示 value

showValue 多选时已选项默认显示 label,设置该属性后可以改为显示 value。

# 精确搜索时自动勾选

accuFilter 多选时开启筛选,如果输入内容与某选项一致,就自动选中该内容。

# on-change返回类型

valueToString 多选时在 on-change 事件中是否返回 string 类型的 value 值。
label-in-value 多选时在 on-change 事件中 将 value 和 label 一起返回。
注: valueToStringlabel-in-value 不能同时配置。

# 退格键清空

isBackClear 按下退格键自动清空内容。

# 自定义搜索图标

searchIcon 展示搜索图标,配置图标名。
需要配合开启 filterable ,且不能与 showArrow 同时使用。

# 选项分组

选项分组时的 block data 的结构如下:[ { group: '浙江省': options: [ { label: '杭州市', value: 'hz' } ] } ]

# 自定义本地搜索

自定义本地搜索需同时设置 filterablefilter-method

# SimpleSelect API

# SimpleSelect props

属性 说明 类型 默认值
value 指定选中项目的 value 值,可以使用 v-model 双向绑定数据。单选时只接受 String,多选时只接受 Array String | Number | Array
multiple 是否支持多选 Boolean false
clearable 是否可以清空选项,只在单选时有效 Boolean true
filterable 是否支持搜索 Boolean false
filterBy 可配置根据 value 还是 label 来筛选选项,默认根据 value 和 label 筛选 String -
placeholder 选择框默认文字 String 请选择
label-in-value 在返回选项时,是否将 label 和 value 一并返回,默认只返回 value Boolean false
placement 弹窗的展开方向,可选值为 bottomtop bottom-starttop-start String bottom
transfer 是否将弹层放置于 body 内,在 Tabs、带有 fixed 的 Table 列内使用时,建议添加此属性,它将不受父级样式影响,从而达到更好的效果 Boolean false
dropWidth 设置下拉框的宽度,不设置时下拉框的宽度等于输入框宽度 (v1.0.30) String/Number -
showBottom 搜索框显示位置,只在 (filterable 为 true) 时使用,默认显示在输入框位置,设置为 true 时显示在下拉框顶部 Boolean false
checkToHead 筛选框左侧加入多选框,可进行全选取消功能 Boolean false
widthAdaption 下拉框的宽度是否随着内容自适应,以 Simple-select 设置的宽度为最小宽度,最大宽度取输入框宽度与 maxDropWidth 的最大值 (v1.0.31) Boolean false
maxDropWidth 下拉框的自适应时设置的最大宽度,实际值会取输入框宽度与 maxDropWidth 的最大值 (v1.0.31) String/Number 500
autoPlacement 下拉面板方向自适应,其相对于外部第一个非静态定位父元素开始定位 (v1.0.30) Boolean false
remote 是否使用远程搜索 (v1.0.32) Boolean false
remote-method 远程搜索的方法 (v1.0.32) Function -
filter-method 本地自定义搜索方法 (v1.0.85) 不支持远程搜索
自定义单个 option 的方法, return true 表示显示 return false 表示不显示
返回参数: val (索值) obj (当前 option 对象)
注意:与filterBy相斥
Function -
isSelectFilter 全选时是否全选过滤后的数据 (v1.0.34) Boolean false
hideMult 隐藏多选框的多选模式(只在设置多选时有效) (v1.0.37) Boolean false
focusInit 默认聚焦选项的 index (v1.0.38) Number 0
loading 配合远程搜索使用。loading 设置为 true 时显示加载提示文字。(v1.0.40) Boolean false
loadingText 加载中显示的文字。(v1.0.40) String 加载中
showLoadingIcon 显示 loading 动画效果,需搭配使用 loading=true (v1.0.67) Boolena false
specialIndex 是否开启特殊项目,选择特殊项与其他项互斥 (v1.0.41) Boolean false
specialVal 特殊项关键值 (value) (v1.0.41) String -1
showTotalNum 离开当前选项框时显示当前选择项数目,项数大于 2 时生效 (v1.0.41) Boolean false
showArrow 远程搜索时显示下拉箭头 (v1.0.43) Boolean false
showValue 多选时输入框是否显示 value 值,默认 label,对多选有效 (v1.0.43)
1. 鼠标悬浮 title 显示 value 文本 2. 支持单选 (v1.0.85)
Boolean false
accuFilter 搜索精确匹配,如果搜索时输入的信息完全匹配到value或者label的时候 自动勾选,暂不支持远程搜索(需开启filterable)(v1.1.1)
单选使用建议开启showBottom属性
Boolean false
remoteNoQuery 远程搜索时不执行 filter (v1.0.44) Boolean false
valueToString 多选时在on-change事件中是否返回string类型的 value 值(注:与label-in-value不能同时配置) (v1.0.45) Boolean false
newSearchModel 是否开启新的搜索模式(o45 个性化业务专用)(v1.0.4) Boolean false
isBackClear 输入框是否可通过 backspace 按键清除选中项 (V1.0.45,只支持谷歌) Boolean false
searchIcon 展示搜索图标,配置图标名。注意:需要配合开启 filterable ,且不能与 showArrow 同时使用 (v1.0.46) String false
tabindex 设置输入框 tabindex (v1.0.47) String | Number -1
isCheckall 是否显示全选反选快捷方式,只在多选模式下使用 (v1.0.63) Boolean false
showTitle 下拉内容过长时鼠标移入是否显示提示信息 (v1.0.66) Boolean true
autoFocus 是否自动高亮第一个检索选项 (v1.0.51) Boolean false
valueNotMatch true:表示 v-model 绑定的变量值与下拉选择的值不匹配(即脏数据)会把 v-model 的清空 (v1.0.83)
针对单选有效,不支持远程搜索
false: 保留原先的值(默认)
Boolean false
notFoundText 自定义下拉列表数据为空时显示的文本内容 (v1.0.86) String 无匹配数据
dropMinWidth 下拉框的最小宽度,当输入框大于dropMinWidth时,让下拉面板与输入框同宽;当输入框小于dropMinWidth时,下拉框用dropMinWidt(v1.1.1)
注意:与widthAdaption互斥
String | Number -
cleanByDel 在过滤场景下,若为false,搜索内容为空时,点击delete不会删除选中节点,默认会删除(仅支持多选场景下) (v1.10.0) Boolean true

# SimpleSelect events

事件名 说明 返回值
on-change 选中的 Option 变化时触发,默认返回 value,如需返回 label,详见 label-in-value 属性 当前选中项
on-query-change 搜索词改变时触发,伴随可选项发生变化 搜索值
on-focus 获取焦点时触发 (只在 filterable 为 true 下有效) (v1.0.49)
on-blur 失去焦点时触发 (只在 filterable 为 true下有效) (v1.0.48)
on-drop-change 弹框关闭 / 展开时触发 (v1.0.48) 弹窗状态
on-clear-select 监听清空事件。当清空所选项时会被触发 (v1.0.51) 返回值为清空的选项

# SimpleSelect slot

名称 说明
header 自定义弹框头部内容 (v1.0.32)
footer 自定义弹框尾部内容 (v1.0.32)

# SimpleSelect methods

方法名 说明 参数
selectedTop (true/false) 选择项置顶 (this.$refs.xxx.selectedTop() )\ (v1.0.32),选择项恢复开始状态 (v1.0.41)
toggleSelect (true/false) 全选/全不选 (this.$refs.xxx.toggleSelect() ) (v1.0.32)

# Block props

属性 说明 类型 默认值
data 选择框中数据,必填 Array []
showCol 多列配置项,最多新增3列,具体请参考示例(v1.0.36) Array []
showHeader 为 showCol 和第一列 label 添加表头,具体请参考示例(v1.0.38) Array []

# showHeader options

属性 说明 类型 默认值
title 列标题 String -
width 列宽 String | Number('400' | 400)

# Block data

属性 说明 类型 默认值
value 选择项关键字 String --
label 选择项显示名称 String --

# Block events

事件名 说明 返回值
on-scroll 下拉框滚动时触发 第一个参数为滚动条距离底部的高度,当滚动条到底时,返回值小于列表的一个行高约 30;第二个参数是列表的 scrollTop;第三个参数为滚动方向 ("x"代表水平滚动,"y"代表垂直滚动,1.0.47版本)
on-paste 在 newSearchModel 模式下,输入框粘贴时触发 (暂不支持鼠标右键粘贴) 返回 obj 对象包括 oldval 旧值,newval 新值(1.0.46支持)
on-input-focus 在 newSearchModel 模式下,输入框得到焦点时触发(1.0.46支持) -

# simpleselect性能

下拉列表条数 2000 5000 10000
耗时 389ms 508ms 727ms