AvueAvue
首页
  • 开发指南
  • Skill开发
  • 在线测试工具
  • Form组件
  • Crud组件
  • Default组件
  • Data组件
  • Component组件
产品
工作台
授权
联系
2.x文档
个人支付接口
首页
  • 开发指南
  • Skill开发
  • 在线测试工具
  • Form组件
  • Crud组件
  • Default组件
  • Data组件
  • Component组件
产品
工作台
授权
联系
2.x文档
个人支付接口
  • 基础组件使用约定
  • Input 输入框
  • InputOtp 一次性密码输入
  • InputTree 树选择
  • InputNumber 数字输入框
  • InputColor 颜色选择
  • InputIcon 图标选择
  • InputMap 地图选点
  • InputTable 表格选择
  • Array 数组输入
  • Img 媒体地址输入
  • Url 链接输入
  • Select 选择框
  • Radio 单选框
  • Checkbox 多选框
  • Switch 开关
  • Date 日期时间
  • Time 时间
  • Rate 评分
  • Slider 滑块
  • Cascader 级联选择器
  • Upload 附件上传

Select 选择框

avue-select:单选为字典标量值,多选建议使用数组。树选择器应使用 avue-input-tree,不要把 Select 的 type 写成 tree。

通用属性、字典与事件见 基础组件使用约定。模板属性可写为 kebab-case,Form 配置对象使用 camelCase。

基础用法

效果预览可直接操作下方示例

独立组件通过 v-model 绑定单个字段;在 Form 中使用时,将相应配置放入 column。

正在加载示例…
<template>
  <el-row :gutter="20">
    <el-col :xs="24" :md="12">
      <p>单选(数字值)</p>
      <avue-select v-model="single" :dic="options" placeholder="请选择状态" />
    </el-col>
    <el-col :xs="24" :md="12">
      <p>多选(数组值)</p>
      <avue-select v-model="multiple" :dic="options" multiple all :remove-tag="onRemoveTag" placeholder="请选择状态" />
    </el-col>
  </el-row>
  <pre>{{ JSON.stringify({ single, multiple, removedTag }, null, 2) }}</pre>
</template>

<script setup>
import { ref } from 'vue';
const single = ref(0);
const multiple = ref([0, 1]);
const removedTag = ref(null);
const options = [
  { label: '待处理', value: 0 },
  { label: '处理中', value: 1 },
  { label: '已归档(禁用)', value: 2, disabled: true },
];
function onRemoveTag(tagValue) {
  removedTag.value = tagValue;
}
</script>

属性

属性类型默认值说明
dic / propsarray / object[] / 默认映射本地选项与键映射
multiple / limitboolean / numberfalse / 0多选与最多选项数,0 不限
allbooleanfalse普通多选显示全选,跳过禁用项
filterable / allowCreatebooleanfalse搜索与创建;创建需配合搜索
virtualizebooleanfalse使用 Element Plus Select V2
remotebooleanfalse远程搜索,自动开启搜索
columnobject{}远程请求的 dicUrl/dicQuery/dicMethod/dicHeaders/dicFormatter/props
defaultFirstOptionbooleanfalse回车选择首个匹配项
tags / collapseTags / collapseTagsTooltipbooleanfalse折叠多选标签及提示
maxCollapseTagsnumber继承 Element Plus标签最大显示数量,类型是数字
noMatchText / noDataText / loadingTextstring—无匹配、空字典和加载文案
valueOnClearstring / number / boolean / functionundefined清空后的值
removeTagfunction—接收被移除的 tagValue,不是对象
endReachedfunction—虚拟列表到底回调,接收 { value, column, dic }
dragbooleanfalse标签拖拽;先加载 Sortable

远程搜索

独立 Select 从 column 读取远程配置。Form 会把整列传给内部组件,无需再包一层 column。

<avue-select
  v-model="userId"
  remote
  :column="{ dicUrl: '/api/users', dicQuery: { keyword: '{{key}}' } }"
/>

{{key}} 此时是搜索词。失败会触发 dic-error({ type: 'select-remote', error })。组件的 end-reached 事件透传底层参数,与 endReached 回调对象不同。

默认插槽接收 { item, label, value },label/value 是映射键名,item 是选项对象。

最后更新:
贡献者: smallwei
Prev
Url 链接输入
Next
Radio 单选框