Skip to content

Select 下拉选择 ​

基于 Element Plus el-select 封装,支持静态 options、远程数据源、分组 options、可搜索、多选等功能。

基础用法 ​

基础 / 可搜索 / 多选 / 分组

基础 options

请选择

值:

可搜索

请选择

值:

多选

请选择

值: []

分组 options

请选择

值:

禁用

请选择

远程数据 ​

传入 remote 配置自动请求远端接口获取 options,支持 GET/POST、参数映射、响应数据映射。

静态 / 远程请求 / 多选

多选值类型 ​

通过 multiple 开启多选。modelValueType 控制多选时 emit 的值类型:

  • modelValueType="string"(默认):emit 逗号拼接字符串,如 "1,2,3",适合直接提交给后端
  • modelValueType="array":emit 字符串数组,如 ["1","2","3"],适合前端做进一步处理

多选时 modelValueType 两种模式对比

多选(modelValueType="string",默认)

请选择

typeof: string,JSON: ""

直接 {{ value }} 与数组的 toString 相同,易混淆;用 JSON 可看出是字符串。

多选(modelValueType="array")

请选择

Array.isArray: true,JSON: []

API ​

Props ​

参数说明类型默认值
v-model绑定值(单选为字符串/数字,多选取决于 modelValueType)string | number | string[]-
modelValueType多选时 emit 的值类型,"string" 为逗号拼接字符串,"array" 为数组'string' | 'array''string'
options静态选项列表(优先级高于 remote)OptionItem[] | GroupOptionItem[]-
remote远程数据获取配置RemoteConfig-
placeholder占位文本string-
disabled是否禁用booleanfalse
multiple是否多选booleanfalse
filterable是否可搜索booleanfalse
clearable是否可清空booleanfalse

RemoteConfig ​

参数说明类型默认值
url请求地址string-
method请求方法'get' | 'post''get'
paramsURL query 参数Record<string, any>-
body请求体参数(POST)Record<string, any>-
bodyTypebody 格式'json' | 'form-data''json'
labelKey响应中 label 字段名string'label'
valueKey响应中 value 字段名string'value'
childrenKey响应中 children 字段名string'children'

OptionItem ​

ts
interface OptionItem {
  label: string
  value: string | number
  disabled?: boolean
}

GroupOptionItem ​

ts
interface GroupOptionItem {
  label: string
  disabled?: boolean
  options: OptionItem[]
}

Released under the MIT License.