Skip to content

ApiSelect 搜索选择器

基于 antd Select 封装的搜索选择器组件,支持远程搜索和数据加载。

示例

基础用法

多选模式

自定义字段名:{label: 'username', value: 'userId'}

请选择用户
复制代码
查看代码

API

属性

属性名说明类型默认值
value当前选中的值string | string[]-
fetchFunc获取选项数据的函数(params:any) => Promise<any>-
fieldNames自定义字段名{ label: string, value: string }{ label: 'name', value: 'id' }
fetchOptions请求配置{ params?: Record<string, any>, afterRes?: Function }-
mode设置 Select 的模式(multiple为多选)'multiple'-
search搜索配置(开启后会携带搜索字段到请求中){key: string}-
placeholder选择框默认文本string'请选择'

事件

事件名说明回调参数
update:value选中值变化时触发(value: string | string[], option: any)

插槽

插槽名说明
notFoundContent当下拉列表为空时显示的内容

注意事项

  1. fetchFunc 函数需要返回符合以下格式的数据:
typescript
{
  success: boolean;
  data: {
    data: Array<{
      [key: string]: any;
    }>;
  };
}
  1. 如果后端返回的数据格式与默认格式不一致,可以通过 fetchOptions.afterRes 进行转换:
typescript
{
  fetchOptions: {
    afterRes: (res) => {
      // 转换数据格式
      return res.map(item => ({
        name: item.label,
        id: item.value
      }))
    }
  }
}
  1. 可以通过 fieldNames 自定义选项的标签和值的字段名:
typescript
{
  fieldNames: {
    label: 'username',  // 显示的文本字段
    value: 'userId'     // 选项的值字段
  }
}