封装选择器
提示
你也可以选择 ElSelectV2 替代这个组件
传入 data 数据,自动生成选项
将传入 data 数据中的某项设置为 disabled: true 即可
通过 config 配置数据键值。value- v-model 绑定的键值、label-显示键值、disabled-控制不可选的键值、children-子分组的键值
通过默认插槽可以自定义备选项
当 multiple 为 true 时,启用多选。此时绑定的 model-value 为数组格式
默认情况下选中值会以 Tag 的形式展现,你也可以设置 collapse-tags 属性将它们合并为一段文字。 您可以使用 collapse-tags-tooltip 属性来启用鼠标悬停折叠文字以显示具体所选值的行为
通过 data 中的 children 字段配置可以轻松生成分组展示 (如果有多层分组,推荐使用 TreeSelect)
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|---|---|---|---|---|
| v-model | 绑定值 | array | - | - |
| data | 绑定数据 | array | - | - |
| config | 配置绑定数据键值 | object | - | { value: ‘value’, label: ‘label’, disabled: ‘disabled’, children: ‘children’ } |
| multiple | 是否多选 | boolean | - | false |
| disabled | 是否禁用 | boolean | - | false |
| size | 尺寸 | string | large / default /small | - |
| clearable | 是否可以清空选项 | boolean | - | false |
| collapse-tags | 多选时是否将选中值按文字的形式展示 | boolean | - | false |
| collapse-tags-tooltip | 当鼠标悬停折叠标签的文本时是否显示所有选定的标签。 当 collapse-tags 是 true 生效 | boolean | - | false |
| multiple-limit | 多选时用户最多可以选择的项目数,为 0 则不限制 | number | - | 0 |
| name | select input 的 name 属性 | string | - | - |
| effect | Tooltip 主题 | string | dark / light | light |
| autocomplete | select input 的 autocomplete 属性 | string | on / off | off |
| placeholder | 占位符 | string | - | 请选择 |
| filterable | 是否可搜索 | boolean | - | false |
| allow-create | 是否允许用户创建新条目,需配合 filterable 使用 | boolean | - | false |
| filter-method | 自定义搜索方法 | Function | - | - |
| remote | 是否为远程搜索 | boolean | - | false |
| remote-method | 远程搜索方法 | Function | - | - |
| loading | 是否正在从远程获取数据 | boolean | - | false |
| loading-text | 远程加载时显示的文字 | string | - | 加载中 |
| no-match-text | 搜索条件无匹配时显示的文字,也可以使用#empty 设置 | string | - | 无匹配数据 |
| no-data-text | 选项为空时显示的文字,也可以使用#empty 设置 | string | - | 无数据 |
| popper-class | Select 下拉框的类名 | string | - | - |
| reserve-keyword | 多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词 | boolean | - | false |
| default-first-option | 在输入框按下回车,选择第一个匹配项。配合 filterable 或 remote 使用 | boolean | - | false |
| teleported | 是否将 Select 的下拉菜单 teleport 至 body | boolean | - | true |
| persistent | 选择下拉目时不活动同时persistent 是false,选择下拉目将被销毁 | boolean | - | true |
| automatic-dropdown | 对于不可搜索的 Select,是否在输入框获得焦点后自动弹出选项菜单 | boolean | - | false |
| clear-icon | 自定义清空图标的类名 | string / Component | - | CircleClose |
| fit-input-width | 下拉框的宽度是否与输入框相同 | boolean | — | false |
| suffix-icon | 自定义后缀图标组件 | string / Component | — | ArrowUp |
| tag-type | 标签类型 | string | success / info / warning / danger | info |
| validate-event | 输入时是否触发表单的校验 | boolean | - | true |
| 名称 | 说明 | 类型 |
|---|---|---|
| change | 选中值发生变化时触发 | (value: any) => void |
| visible-change | 下拉框出现/隐藏时触发 | (visible: boolean) => void |
| remove-tag | 多选模式下移除 tag 时触发 | (tagValue: any) => void |
| clear | 可清空的单选模式下用户点击清空按钮时触发 | () => void |
| blur | 当 input 失去焦点时触发 | (event: FocusEvent) => void |
| focus | 当 input 获得焦点时触发 | (event: FocusEvent) => void |
| 名称 | 说明 | 类型 |
|---|---|---|
| - | 自定插槽内容 | { item } |