Skip to content

BizSearchForm 业务搜索表单 ​

schema 驱动的搜索表单:一行 fields 配置渲染整个查询区,内置查询 / 重置 / 折叠展开按钮区,回车即查;与 BizTable 的 params + data-source 无缝联动。原生 el-form 属性(size、label-position 等)通过 v-bind="$attrs" 完整透传。

基础用法 ​

声明字段 schema 即可:输入框、下拉、日期范围、数字输入等自动渲染,占位符按类型自动生成(请输入/请选择 + label)。点击「查询」或任意输入框内回车触发 search 事件,参数为完整表单值。

关键词
状态
请选择状态
创建日期
-
最小金额
空值过滤是业务侧常见做法,demo 中演示了提交前剔除 '' / undefined / []。

折叠展开 ​

collapsible 开启折叠,collapsed-rows 控制折叠态展示行数(默认 1 行)。字段超出折叠数量的部分隐藏,展开后保留已填值;「展开 / 收起」按钮随操作区固定在行尾最右。

订单号
渠道
请选择渠道
下单时间
-

当前状态:已折叠(仅展示第一行 3 个字段), 折叠时隐藏字段的已填值在展开后保留。

9 个字段按每行 3 个布局,折叠时仅展示第一行;「展开 / 收起」按钮只在字段数超出时出现。

间距与右侧操作区 ​

字段按固定间距流式排列:gutter 控制字段之间的水平间距(默认 12,可选 24 等)。每列宽度统一为「容器宽扣除间距与操作区后等分」——行行列宽一致、不铺满拉伸,从左依次排列、间距恒定,行尾剩余空间自然留白;查询 / 重置 / 展开按钮始终在最后一行的最右侧(字段只有一行时就在这一行右侧),折叠 / 展开切换列宽不跳变。超宽屏列宽封顶 item-max-width(默认 340px)。

gutter = 12(默认):
关键词
状态
请选择状态
来源渠道
最小金额
创建日期
-
gutter = 24(宽松):
关键词
状态
请选择状态
来源渠道
最小金额
创建日期
-
同一组字段分别用默认 12 与 gutter=24 排布;字段超出一行自动换行,按钮始终贴右。

与 BizTable 联动 ​

搜索表单提交值写入 params,BizTable 监听 params 变化自动回到第一页重新请求;表格远程排序继续生效。这是组件库推荐的标准列表页结构:biz-search-form + biz-table。

订单号
渠道
请选择渠道
状态
请选择状态
下单时间
-
暂无数据
查询、重置(search-on-reset 默认开启,重置后自动查询)、远程排序联动、工具栏全量开启。

更多控件与自定义控件 ​

schema 支持 cascader / radio / checkbox / time-select 等类型;type: 'custom' 配合 slot 字段完全接管渲染,插槽作用域提供 { field, model },model 为响应式表单模型,直接 v-model="model[prop]" 即可。

所属区域
客户类型
联系时间
请选择联系时间
仅看启用
否
{}
columns 调整每行字段数(1~8 任意整数);提交值以 JSON 展示。

高级筛选(多类型混排) ​

订单号
下单时间
-
最小金额
区域
仅加急
高级检索场景:订单号 + 日期范围 + 数字下限 + 区域级联 + 自定义开关控件(type: custom + slot)混排。

重置回默认值 ​

状态
近 N 天
渠道
修改条件后点「重置」——回到 defaultValue(生效 / 7 天 / 全渠道),而不是清空为空串
常错点演示:defaultValue 是「重置基准」——重置回到 生效 / 7 天 / 全渠道,而非清空成空串。

搜索区与刷新同排 ​

巡检任务列表
关键词
状态
请选择状态
负责人
列表页场景:collapsible 收起高频字段,标题置于表单上方,下方刷新 / 导出按钮区。

筛选方案联动(preset) ​

关键字
状态
请选择状态
优先级
请选择优先级
创建日期
-

操作区左侧出现「筛选方案」:调整条件 → 保存当前查询 → 之后一键套用(自动回填 + 触发查询);星标可设默认方案。方案存 localStorage(storage-key),服务端持久化改传 presets + 事件回写。

preset 配置传入即在操作区内置 BizFilterPreset:保存当前条件为方案 / 一键套用(自动回填 + 触发查询)/ 星标默认——高频复筛场景免重复勾选。

日期范围业务快捷项 ​

订单号
创建时间
至
状态
请选择状态
{}
date-range 字段开启 shortcuts: true 后,控件换用 BizDateRange 渲染——面板自带「今日 / 本周 / 近7天 / 近30天」等业务快捷项,值仍为 YYYY-MM-DD 字符串数组。

Props ​

属性名类型默认值说明
fieldsBizSearchField[]—字段 schema 配置,见下方 BizSearchField
v-modelBizSearchValues—表单值(受控模式,不传则内部维护)
loadingbooleanfalse查询按钮 loading
label-widthstring | number90标签宽度
columnsnumber3每行字段数(1~8 任意整数;容器很宽时单项封顶不再拉伸,从左依次排列)
gutternumber12字段之间的水平间距(px)
item-max-widthstring | number340单项最大宽度,数字按 px;宽屏封顶避免控件被拉得过宽
collapsiblebooleanfalse是否可折叠展开
collapsed-rowsnumber1折叠态展示的行数
search-on-resetbooleantrue重置后自动触发查询
search-on-enterbooleantrue回车触发查询
search-textstring'查询'查询按钮文案
reset-textstring'重置'重置按钮文案
show-resetbooleantrue是否显示重置按钮
presetBizSearchPresetConfig—筛选方案联动:{ storageKey?, presets?, searchOnApply?, max?, editable?, triggerText? },传入即在操作区内置 BizFilterPreset(保存当前条件 / 一键套用回填 + 自动查询 / 星标默认)

未列出的属性(size、label-position、disabled 等)透传 el-form 原生 props。

BizSearchField 结构 ​

字段类型说明
propstring字段名(表单模型 key)
labelstring标签文案
typeBizSearchFieldType控件类型:input(默认)/ input-number / select / date / datetime / date-range / month / year / time-select / cascader / radio / checkbox / custom
optionsBizSearchOption[]选项(select / radio / checkbox / cascader),{ label, value, disabled?, children? }
defaultValueunknown默认值,同时作为重置基准
placeholder / start-placeholder / end-placeholderstring占位符,缺省按类型自动生成
multiple / filterable / clearable / disabled—透传对应控件语义,clearable 默认 true
min / max / step / precision / controls-position—input-number 专属
format / value-formatstring日期格式;value-format 缺省为 YYYY-MM-DD(datetime 含时分秒)
shortcutsbooleandate-range 专属:内置业务快捷项(今日 / 本周 / 近7天…),改用 BizDateRange 渲染,值格式不变
start / end / stepstringtime-select 时间选项范围与步长
cascader-propsCascaderProps透传 el-cascader props(多级、任意选级等)
widthstring | number控件宽度,默认 100%,数字按 px
slotstring自定义控件插槽名(配合 type: 'custom' 或覆盖任意类型)

date-range / checkbox / 多选 select / 多选 cascader 的值为数组。

Events ​

事件名参数说明
update:modelValue(values: BizSearchValues)表单值变化(v-model)
search(values: BizSearchValues)点击查询 / 回车 / 调用 search()
reset(values: BizSearchValues)重置后触发(重置基准为 defaultValue 或类型空值)
field-change(payload: { prop, value })任一字段值变化(控件 change 提交后)
expand-change(expanded: boolean)展开 / 收起变化
preset-apply(values, item)筛选方案应用(已回填表单;searchOnApply 开启时 search 已随后触发)
preset-save(item)筛选方案保存(受控模式由业务持久化后回写 preset.presets)
preset-remove(id)筛选方案删除
preset-change(items)方案列表变化(本地存储模式)

Slots ​

插槽名说明
动态插槽(field.slot)自定义控件,作用域 { field, model },model 为响应式模型,可 v-model="model[field.prop]"

Expose ​

属性 / 方法说明
formRefel-form 实例,可调用 validate / resetFields 等原生方法
getValues() => BizSearchValues,获取表单值
setValues(values),批量设置表单值(仅已声明字段)
presetRef内置 BizFilterPreset 实例(getDefault / getItems 等高级控制)
search触发查询(等同点击查询按钮)
reset重置并按 search-on-reset 决定是否触发查询
toggleExpand展开 / 收起