筛选查询

简介

筛选查询组件用于在表格上方提供数据筛选和搜索功能,支持多种表单组件。

用法示例

基础用法

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]
  ]);
});

可用方法

方法名参数返回值说明
addFilterInputfield, title, valueInputText添加输入框筛选
addFilterSelectfield, title, valueSelect添加下拉选择筛选
addFilterDatefield, title, valueInputDate添加日期选择筛选
addFilterDateRangefield, title, valueInputDateRange添加日期范围筛选
addFilterCheckboxfield, title, valueCheckboxes添加复选框筛选
addFilterRadiofield, title, valueRadios添加单选框筛选
setFilterTitletitlevoid设置筛选查询标题
setFilterWrapWithPanelboolthis设置是否包裹在面板中
addFilterButtonstype, title, levelvoid添加筛选按钮

方法参数说明

addFilterInput / addFilterSelect / addFilterDate

参数名类型默认值说明
fieldstring必填字段名称,用于URL参数
titlestring必填标签文本
valuemixed''默认值

setFilterWrapWithPanel

参数名类型默认值说明
valuebool必填true: 包裹在面板中;false: 不包裹

筛选查询配置

属性名类型默认值说明
filterTitlestring'搜索查询'筛选查询标题
wrapWithPanelboolfalse是否包裹在面板中

默认按钮

筛选查询默认包含两个按钮:

  • 查询按钮:提交筛选条件
  • 重置按钮:清空筛选条件

使用场景

  • 数据搜索过滤
  • 多条件组合查询
  • 日期范围筛选
  • 状态分类筛选

注意事项

  1. 筛选字段会自动添加到URL参数中
  2. 支持与地址栏参数同步
  3. 每个筛选组件都会自动设置占位符
  4. wrapWithPanel 为 false 时会使用紧凑样式
  5. 筛选值会在表格API请求时自动传递