AvueAvue
首页
  • 开发指南
  • Skill开发
  • 在线测试工具
  • Form组件
  • Crud组件
  • Default组件
  • Data组件
  • Component组件
产品
工作台
授权
联系
2.x文档
个人支付接口
首页
  • 开发指南
  • Skill开发
  • 在线测试工具
  • Form组件
  • Crud组件
  • Default组件
  • Data组件
  • Component组件
产品
工作台
授权
联系
2.x文档
个人支付接口
  • Article 文章
  • Group 分组容器
  • Title 标题文本
  • CountUp 数字动画
  • Comment 评论
  • Chat 客服聊天
  • Captcha 验证码
  • Contextmenu 右键菜单
  • Clipboard 复制文本
  • DialogForm 弹窗表单
  • Draggable 拖拽
  • Export Excel 导入与导出
  • Flow 流程
  • FilterBuilder 高级筛选
  • FileManager 文件管理
  • QRCode 二维码
  • Iframe 嵌入页面
  • ImagePreview 图片预览
  • Login 登录组件
  • License 授权书
  • Print 打印
  • Screenshot 页面截图
  • Search 标签搜索
  • Sign 电子签名
  • TextEllipsis 超出文本省略
  • Tabs 选项卡
  • Tree 树型
  • Video 摄像头
  • Calendar 日历组合示例

Search 标签搜索

avue-search 用字典标签组合搜索条件,可与列表或 avue-crud 配合使用。组件维护条件对象并触发 change,实际列表查询由业务回调完成。

单选、多选与自定义字段

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

multiple: false 为单选,值是一个字典值;默认多选,值为数组。示例使用本地字典,点击标签后下方显示当前条件。

正在加载示例…
<template>
  <avue-search v-model="form" :option="option" @change="handleChange">
    <template #keyword>
      <el-input v-model="form.keyword" placeholder="输入关键词" clearable />
    </template>
  </avue-search>
  <el-alert :title="`当前条件:${summary}`" type="info" :closable="false" />
</template>

<script setup>
import { ref } from 'vue'

const form = ref({ status: 'enabled', transport: ['train'], keyword: '' })
const summary = ref(JSON.stringify(form.value))
const option = {
  column: [
    { label: '状态(单选)', prop: 'status', multiple: false, dicData: [
      { label: '启用', value: 'enabled' }, { label: '停用', value: 'disabled' }
    ] },
    { label: '交通(多选)', prop: 'transport', dicData: [
      { label: '动车', value: 'train' }, { label: '飞机', value: 'plane' },
      { label: '驾车', value: 'car' }
    ] },
    { label: '自定义关键词', prop: 'keyword', multiple: false }
  ]
}
function handleChange(value) {
  summary.value = JSON.stringify(value)
}
</script>

Props

参数说明类型默认值
modelValue / v-model搜索条件,字段名与 column.prop 一致object{}
option搜索配置,必须提供 column 数组object—

Option

参数说明类型
column搜索字段数组,见下表array
card使用卡片样式boolean
props全局字典字段映射,如 { label: 'name', value: 'id' };列配置优先object

Column

参数说明类型默认值
prop / label条件字段名 / 标签名string—
span字段所占栅格数number24
multiple只有显式设为 false 才使用单选boolean多选
dicData本地字典,默认项为 { label, value }array—
props当前字段的字典映射object—
dicUrl / dicMethod / dicQuery / dicHeaders / dicFormatter远程字典的地址、方法、参数、请求头和格式化函数,遵循通用字典配置string / object / function—

单选初始化为 '',多选初始化为 []。字典值按严格相等比较,数字 1 与字符串 '1' 不会视为同一个选项。更换选项时也应清理已失效的搜索值。

Events

事件名说明参数
update:modelValue同步条件对象form
change条件对象发生变化,包括业务侧修改数据form

组件没有提交按钮与 submit 事件。避免在 change 中无条件重写同一份条件对象;需要远程搜索时,在业务层处理请求去重和加载状态。

Slots 与 Methods

每个 column.prop 都可以作为具名插槽,作用域参数为 { dic },其中 dic 是该字段的已加载字典。插槽内的自定义控件应直接绑定外部搜索对象对应字段。

通过 ref.updateDic(prop, dicData) 可替换字段字典,通过 ref.dicInit() 可按当前配置重新加载字典;修改搜索条件直接更新 v-model。

最后更新:
贡献者: smallwei
Prev
Screenshot 页面截图
Next
Sign 电子签名