Skip to content
On this page

介绍

为什么要二次封装 select ?不知道你有没有这种感觉,如果一个页面有很多个 select 组件,你会写很多 el-selectel-option,再加上属性一多,整个页面的代码量噌的一下就变的巨多,这是我封装的初衷。具体功能请查看源码

部分功能

TIP

具体功能逻辑请查看源代码~(props)

  • 简化代码,每个需要 select 的地方,只需要一个标签 <o-select /> 外加绑定值和传入下拉的数据即可实现;
  • 修改默认属性,比如:clearablefilterable 等,我这里需要默认为 true 的,不然每个组件都要添加一遍;
  • 可扩展,传入的数据格式默认为 keyvalue
ts
;[
  {
    key: '111',
    value: '王二小'
  }
]

如果想要修改,比如是 idtext,可以通过 prop 配置:

ts
{
  key: 'id',
  value: 'text'
}
  • search-key,传入该属性,会启用远程搜索,为什么是 search-key,因为我这里所有搜索接口都规范成 /api/search/autocomplete/${search-key},所以哪个模块的下拉数据,传入该数据的搜索类型即可;
  • value-key,传入该属性,绑定数据为对象类型;

使用示例

ts
<o-select
  v-model="status"
  :options="options"
  placeholder="请选择状态"
/>


const status = ref(1)
const options = [
  { id: 1, name: '启用' },
  { id: 0, name: '禁用' }
]

MIT License.