Select 选择器

大约 5 分钟

Select 选择器

下拉选择器。

何时使用

  • 弹出一个下拉菜单给用户选择操作,用于代替原生的选择器,或者需要一个更优雅的多选器时。
  • 当选项少时(少于 5 项),建议直接将选项平铺,使用 Radio 是更好的选择。

代码演示

基本用法
基本用法。

使用 f-select-option
使用 options (recommend)

三种大小
三种大小的选择框,当 size 分别为 largesmall 时,输入框高度为 40px24px ,默认高度为 32px




最多显示多少个选项及选项最大长度
设置一个数字,超过后自动折叠。
maxTagCount 也可以设置成响应式,但响应式对性能有所消耗,不推荐在大表单场景下使用。

maxTagCount: 2
多选提示框展示选中的内容
maxTagCount: responsive
maxTagTextLength: 10

分组
设置一个数字,超过后自动折叠。
用 OptGroup 或 options.options 进行选项分组。


CheckBox 多选
设置一个数字,超过后自动折叠。
用 OptGroup 或 options.options 进行选项分组。

注意:使用 f-select-option 不支持这种模式

支持分组多选

API

Select props

参数说明类型默认值版本
pressLine
新增
组件右上角文本string
showMaxTagPlaceholder
新增
是否展示超出内容文案booleanfalse
tooltips
新增
Tooltip文字提示组件展示文本,组件参数说明参考Tooltip文字提示组件,新增两个属性 textColorcontentHeighttextColor:string contentHeight:number
allowClear支持清除booleanfalse
autoClearSearchValue是否在选中项后清空搜索框,只在 modemultipletags 时有效。booleantrue
autofocus默认获取焦点booleanfalse
bordered是否有边框booleantrue
clearIcon自定义的多选框清空图标VNode | slot-
defaultActiveFirstOption是否默认高亮第一个选项。booleantrue
defaultOpen是否默认展开下拉菜单boolean-
disabled是否禁用booleanfalse
dropdownClassName下拉菜单的 className 属性string-
dropdownMatchSelectWidth下拉菜单和选择器同宽。默认将设置 min-width,当值小于选择框宽度时会被忽略。false 时会关闭虚拟滚动boolean | numbertrue
dropdownMenuStyledropdown 菜单自定义样式object-
dropdownRender自定义下拉框内容({menuNode: VNode, props}) => VNode | v-slot-
dropdownStyle下拉菜单的 style 属性object-
fieldNames自定义节点 label、value、options 的字段object{ label: label, value: value, options: options }3.0
filterOption是否根据输入项进行筛选。当其为一个函数时,会接收 inputValue option 两个参数,当 option 符合筛选条件时,应返回 true,反之则返回 falseboolean | function(inputValue, option)true
filterSort搜索时对筛选结果项的排序函数, 类似Array.sortopen in new window里的 compareFunction(optionA: Option, optionB: Option) => number-3.0
firstActiveValue默认高亮的选项string|string[]-
getPopupContainer菜单渲染父节点。默认渲染到 body 上,如果你遇到菜单滚动定位问题,试试修改为滚动的区域,并相对其定位。function(triggerNode)() => document.body
labelInValue是否把每个选项的 label 包装到 value 中,会把 Select 的 value 类型从 string 变为 {key: string, label: vNodes, originLabel: any} 的格式, originLabel(3.1) 保持原始类型,如果通过 a-select-option children 构造的节点,该值是是个函数(即 a-select-option 的默认插槽)booleanfalse
listHeight设置弹窗滚动高度number256
maxTagCount最多显示多少个 tagnumber-
maxTagPlaceholder隐藏 tag 时显示的内容slot | function(omittedValues)-
maxTagTextLength最大显示的 tag 文本长度number-
menuItemSelectedIcon自定义当前选中的条目图标VNode | slot-
mode设置 Select 的模式为多选或标签multiple | tags | combobox | 新增 checkbox-multiple-
notFoundContent当下拉列表为空时显示的内容string|slotNot Found
open是否展开下拉菜单boolean-
option通过 option 插槽,自定义节点v-slot:option="{value, label, [disabled, key, title]}"-2.2.5
optionFilterProp搜索时过滤对应的 option 属性,不支持 childrenstringvalue
optionLabelProp回填到选择框的 Option 的属性值,默认是 Option 的子元素。比如在子元素需要高亮效果时,此值可以设为 valuestringchildren | label(设置 options 时)
optionsoptions 数据,如果设置则不需要手动构造 selectOption 节点array<{value, label, [disabled, key, title]}>[]
placeholder选择框默认文字string|slot-
removeIcon自定义的多选框清除图标VNode | slot-
searchValue控制搜索文本string-
showArrow是否显示下拉小箭头boolean单选为true,多选为false
showSearch配置是否可搜索boolean单选为false,多选为true
size选择框大小,可选 large smallstringdefault
suffixIcon自定义的选择框后缀图标VNode | slot-
tagRender自定义 tag 内容 render,仅在 modemultipletags 时生效slot | (props) => any-3.0
tokenSeparators在 tags 和 multiple 模式下自动分词的分隔符string[]
value(v-model)指定当前选中的条目string|string[]|number|number[]-
virtual设置 false 时关闭虚拟滚动booleantrue3.0

注意,如果发现下拉菜单跟随页面滚动,或者需要在其他弹层中触发 Select,请尝试使用 getPopupContainer={triggerNode => triggerNode.parentNode} 将下拉弹层渲染节点固定在触发器的父元素中。

事件

事件名称说明回调参数
blur失去焦点的时回调function
change选中 option,或 input 的 value 变化(combobox 模式下)时,调用此函数function(value, option:Option/Array<Option>)
deselect取消选中时调用,参数为选中项的 value (或 key) 值,仅在 multiple 或 tags 模式下生效function(value,option:Option)
dropdownVisibleChange展开下拉菜单的回调function(open)
focus获得焦点时回调function
inputKeyDown键盘按下时回调function
mouseenter鼠标移入时回调function
mouseleave鼠标移出时回调function
popupScroll下拉列表滚动时的回调function
search文本框值变化时回调function(value: string)
select被选中时调用,参数为选中项的 value (或 key) 值function(value, option:Option)

Select Methods

名称说明
blur()取消焦点
focus()获取焦点

Option props

参数说明类型默认值
classOption 器类名string-
disabled是否禁用booleanfalse
key和 value 含义一致。如果 Vue 需要你设置此项,此项值与 value 的值相同,然后可以省略 value 设置string
title选中该 Option 后,Select 的 titlestring-
value默认根据此属性值进行筛选string|number-

OptGroup props

参数说明类型默认值
keystring-
label组名string|function(h)|slot
上次编辑于:
贡献者: Xiou.Wang,Noah.Su,Troye.Chen