简介
筛选查询组件用于在表格上方提供数据筛选和搜索功能,支持多种表单组件。
用法示例
基础用法
use plugin\xbCode\builder\Builder;
// 创建表格
Builder::crud(function($builder) {
// 添加输入框筛选
$builder->addFilterInput('keyword', '关键词');
// 添加下拉选择筛选
$builder->addFilterSelect('status', '状态')->options([
['label' => '全部', 'value' => ''],
['label' => '启用', 'value' => 1],
['label' => '禁用', 'value' => 0]
]);
// 添加日期筛选
$builder->addFilterDate('date', '日期');
});
自定义配置
Builder::crud(function($builder) {
// 设置筛选查询标题
$builder->setFilterTitle('高级搜索');
// 设置是否包裹在面板中
$builder->setFilterWrapWithPanel(true);
// 输入框筛选
$builder->addFilterInput('username', '用户名')->placeholder('请输入用户名');
// 下拉选择
$builder->addFilterSelect('type', '类型')->options([
['label' => '类型A', 'value' => 'a'],
['label' => '类型B', 'value' => 'b']
]);
// 日期范围筛选
$builder->addFilterDateRange('created_at', '创建时间');
// 复选框筛选
$builder->addFilterCheckbox('tags', '标签')->options([
['label' => '推荐', 'value' => 'recommend'],
['label' => '热门', 'value' => 'hot']
]);
// 单选框筛选
$builder->addFilterRadio('level', '等级')->options([
['label' => '全部', 'value' => ''],
['label' => '初级', 'value' => 1],
['label' => '中级', 'value' => 2],
['label' => '高级', 'value' => 3]
]);
});
可用方法
| 方法名 | 参数 | 返回值 | 说明 |
|---|
| addFilterInput | field, title, value | InputText | 添加输入框筛选 |
| addFilterSelect | field, title, value | Select | 添加下拉选择筛选 |
| addFilterDate | field, title, value | InputDate | 添加日期选择筛选 |
| addFilterDateRange | field, title, value | InputDateRange | 添加日期范围筛选 |
| addFilterCheckbox | field, title, value | Checkboxes | 添加复选框筛选 |
| addFilterRadio | field, title, value | Radios | 添加单选框筛选 |
| setFilterTitle | title | void | 设置筛选查询标题 |
| setFilterWrapWithPanel | bool | this | 设置是否包裹在面板中 |
| addFilterButtons | type, title, level | void | 添加筛选按钮 |
方法参数说明
addFilterInput / addFilterSelect / addFilterDate
| 参数名 | 类型 | 默认值 | 说明 |
|---|
| field | string | 必填 | 字段名称,用于URL参数 |
| title | string | 必填 | 标签文本 |
| value | mixed | '' | 默认值 |
setFilterWrapWithPanel
| 参数名 | 类型 | 默认值 | 说明 |
|---|
| value | bool | 必填 | true: 包裹在面板中;false: 不包裹 |
筛选查询配置
| 属性名 | 类型 | 默认值 | 说明 |
|---|
| filterTitle | string | '搜索查询' | 筛选查询标题 |
| wrapWithPanel | bool | false | 是否包裹在面板中 |
默认按钮
筛选查询默认包含两个按钮:
使用场景
- 数据搜索过滤
- 多条件组合查询
- 日期范围筛选
- 状态分类筛选
注意事项
- 筛选字段会自动添加到URL参数中
- 支持与地址栏参数同步
- 每个筛选组件都会自动设置占位符
- wrapWithPanel 为 false 时会使用紧凑样式
- 筛选值会在表格API请求时自动传递