Appearance
BizSearchForm 业务搜索表单
schema 驱动的搜索表单:一行 fields 配置渲染整个查询区,内置查询 / 重置 / 折叠展开按钮区,回车即查;与 BizTable 的 params + data-source 无缝联动。原生 el-form 属性(size、label-position 等)通过 v-bind="$attrs" 完整透传。
基础用法
声明字段 schema 即可:输入框、下拉、日期范围、数字输入等自动渲染,占位符按类型自动生成(请输入/请选择 + label)。点击「查询」或任意输入框内回车触发 search 事件,参数为完整表单值。
折叠展开
collapsible 开启折叠,collapsed-rows 控制折叠态展示行数(默认 1 行)。字段超出折叠数量的部分隐藏,展开后保留已填值;「展开 / 收起」按钮随操作区固定在行尾最右。
当前状态:已折叠(仅展示第一行 3 个字段), 折叠时隐藏字段的已填值在展开后保留。
间距与右侧操作区
字段按固定间距流式排列:gutter 控制字段之间的水平间距(默认 12,可选 24 等)。每列宽度统一为「容器宽扣除间距与操作区后等分」——行行列宽一致、不铺满拉伸,从左依次排列、间距恒定,行尾剩余空间自然留白;查询 / 重置 / 展开按钮始终在最后一行的最右侧(字段只有一行时就在这一行右侧),折叠 / 展开切换列宽不跳变。超宽屏列宽封顶 item-max-width(默认 340px)。
gutter = 12(默认):
gutter = 24(宽松):
与 BizTable 联动
搜索表单提交值写入 params,BizTable 监听 params 变化自动回到第一页重新请求;表格远程排序继续生效。这是组件库推荐的标准列表页结构:biz-search-form + biz-table。
更多控件与自定义控件
schema 支持 cascader / radio / checkbox / time-select 等类型;type: 'custom' 配合 slot 字段完全接管渲染,插槽作用域提供 { field, model },model 为响应式表单模型,直接 v-model="model[prop]" 即可。
{}高级筛选(多类型混排)
重置回默认值
修改条件后点「重置」——回到 defaultValue(生效 / 7 天 / 全渠道),而不是清空为空串
搜索区与刷新同排
巡检任务列表
筛选方案联动(preset)
操作区左侧出现「筛选方案」:调整条件 → 保存当前查询 → 之后一键套用(自动回填 + 触发查询);星标可设默认方案。方案存 localStorage(storage-key),服务端持久化改传 presets + 事件回写。
日期范围业务快捷项
{}Props
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| fields | BizSearchField[] | — | 字段 schema 配置,见下方 BizSearchField |
| v-model | BizSearchValues | — | 表单值(受控模式,不传则内部维护) |
| loading | boolean | false | 查询按钮 loading |
| label-width | string | number | 90 | 标签宽度 |
| columns | number | 3 | 每行字段数(1~8 任意整数;容器很宽时单项封顶不再拉伸,从左依次排列) |
| gutter | number | 12 | 字段之间的水平间距(px) |
| item-max-width | string | number | 340 | 单项最大宽度,数字按 px;宽屏封顶避免控件被拉得过宽 |
| collapsible | boolean | false | 是否可折叠展开 |
| collapsed-rows | number | 1 | 折叠态展示的行数 |
| search-on-reset | boolean | true | 重置后自动触发查询 |
| search-on-enter | boolean | true | 回车触发查询 |
| search-text | string | '查询' | 查询按钮文案 |
| reset-text | string | '重置' | 重置按钮文案 |
| show-reset | boolean | true | 是否显示重置按钮 |
| preset | BizSearchPresetConfig | — | 筛选方案联动:{ storageKey?, presets?, searchOnApply?, max?, editable?, triggerText? },传入即在操作区内置 BizFilterPreset(保存当前条件 / 一键套用回填 + 自动查询 / 星标默认) |
未列出的属性(
size、label-position、disabled等)透传el-form原生 props。
BizSearchField 结构
| 字段 | 类型 | 说明 |
|---|---|---|
| prop | string | 字段名(表单模型 key) |
| label | string | 标签文案 |
| type | BizSearchFieldType | 控件类型:input(默认)/ input-number / select / date / datetime / date-range / month / year / time-select / cascader / radio / checkbox / custom |
| options | BizSearchOption[] | 选项(select / radio / checkbox / cascader),{ label, value, disabled?, children? } |
| defaultValue | unknown | 默认值,同时作为重置基准 |
| placeholder / start-placeholder / end-placeholder | string | 占位符,缺省按类型自动生成 |
| multiple / filterable / clearable / disabled | — | 透传对应控件语义,clearable 默认 true |
| min / max / step / precision / controls-position | — | input-number 专属 |
| format / value-format | string | 日期格式;value-format 缺省为 YYYY-MM-DD(datetime 含时分秒) |
| shortcuts | boolean | date-range 专属:内置业务快捷项(今日 / 本周 / 近7天…),改用 BizDateRange 渲染,值格式不变 |
| start / end / step | string | time-select 时间选项范围与步长 |
| cascader-props | CascaderProps | 透传 el-cascader props(多级、任意选级等) |
| width | string | number | 控件宽度,默认 100%,数字按 px |
| slot | string | 自定义控件插槽名(配合 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
| 属性 / 方法 | 说明 |
|---|---|
| formRef | el-form 实例,可调用 validate / resetFields 等原生方法 |
| getValues | () => BizSearchValues,获取表单值 |
| setValues | (values),批量设置表单值(仅已声明字段) |
| presetRef | 内置 BizFilterPreset 实例(getDefault / getItems 等高级控制) |
| search | 触发查询(等同点击查询按钮) |
| reset | 重置并按 search-on-reset 决定是否触发查询 |
| toggleExpand | 展开 / 收起 |