Skip to content

选择器

选择器用于在预设的选项中选择一个或多个选项。

基础用法

ts
const config = {
  type: 'select',
  formItem: {
    label: '状态'
  },
  select: {
    options: [
      { label: '启用', value: 1 },
      { label: '禁用', value: 0 }
    ],
    placeholder: '请选择状态',
    allowClear: true
  }
}

API

特有属性

属性说明类型默认值
remote远程数据配置RemoteConfig-
mask选项数据Record<stringnumber, any>
valueKey选项数据string-
ts
interface RemoteConfig {
  api: () => Promise<{ data: any[] }>
  valueKey: string
  labelKey: string
}

Ant Design Vue 属性

属性说明类型默认值
options选项数据{ label: string, value: any }[]-
mode模式'multiple' | 'tags'-
maxTagCount最多显示多少个 tagnumber-
optionFilterProp搜索时过滤对应的 option 属性string'value'
showSearch使单选模式可搜索booleanfalse
allowClear支持清除booleanfalse
placeholder选择框默认文字string-
loading加载中状态booleanfalse
disabled是否禁用booleanfalse
remote远程数据配置RemoteConfig-
ts
interface RemoteConfig {
  api: () => Promise<any>
  valueKey: string
  labelKey: string
}

示例

vue
<script setup lang="ts">
const columns = [
  {
    title: '状态',
    dataIndex: 'status',
    edit: {
      type: 'select',
      formItem: {
        required: true
      },
      select: {
        options: [
          { label: '启用', value: 1 },
          { label: '禁用', value: 0 }
        ],
        placeholder: '请选择状态',
        allowClear: true
      }
    }
  },
  {
    title: '标签',
    dataIndex: 'tags',
    edit: {
      type: 'select',
      formItem: {
        label: '标签'
      },
      select: {
        mode: 'multiple',
        options: [
          { label: '前端', value: 'frontend' },
          { label: '后端', value: 'backend' },
          { label: '设计', value: 'design' }
        ],
        maxTagCount: 3,
        placeholder: '请选择标签'
      }
    }
  },
  {
    title: '部门',
    dataIndex: 'department',
    edit: {
      type: 'select',
      formItem: {
        required: true
      },
      select: {
        showSearch: true,
        remote: {
          api: () => fetch('/api/departments'),
          valueKey: 'id',
          labelKey: 'name'
        },
        placeholder: '请选择部门'
      }
    }
  }
]
</script>

根据 Apache-2.0 许可发布。