表格展示數據只是一方面,為了方便操作,需要增加一些篩選方便檢索數據
suframe目前提供2中模式,**1.頂部獨立檢索項目**,**2.表格表頭檢索**
## 1. 頂部獨立檢索項目
獨立檢索需要單獨配置到ui/table/*.php 類中的filter方法中,格式如下:
```
class DemoTable extends TableInterface
{
public function filters()
{
return [
'id' => ['label' => 'ID', 'type' => 'text'],
'create_time' => ['label' => '時間', 'type' => 'date'],
'create_times' => ['label' => '時間范圍', 'type' => 'daterange'],
'avatar' => ['label' => '頭像', 'type' => 'select', 'value' => ['類型1', '類型2']],
'avatars' => ['label' => '頭像多選', 'type' => 'select', 'value' => ['類型3', '類型4'], 'multiple' => true],
'area' => [
'label' => '地區',
'type' => 'cascader',
'multiple' => true,
'checkStrictly' => true,
'value' => [
[
'label' => '選項一',
'value' => '1',
'children' => [['label' => '選項一.1', 'value' => '1.1'], ['label' => '選項一.2', 'value' => '1.2']]
],
[
'label' => '選項二',
'value' => '2',
'children' => [['label' => '選項二.1', 'value' => '2.1'], ['label' => '選項二.2', 'value' => '2.2']]
],
]
]
];
}
```
目前類型支持:
- text 文本搜索
- date 日期搜索
- daterange 搜索
- select 下拉搜索 ,可選項 [multiple多選]
- cascader 級聯搜索
如果是全等搜索,不需要單獨做任何配置,如果是條件搜索,比如like,between等,需要自行在控制器ajaxSeaerch或者模型的搜索器加條件
搜索器文檔:[http://www.hmoore.net/manual/thinkphp6\_0/1037590](http://www.hmoore.net/manual/thinkphp6_0/1037590)
控制器條件格式如下:
```
private function ajaxSearch()
{
$rs = $this->parseSearchWhere($this->getManageModel(), [
'name' => 'like', //模糊搜索
'create_time' => 'betweenTime', // 時間范圍
...
]);
return json_return($rs);
}
```
檢索條件支持如下:
- eq 等于
- neq 不等于
- gt 大于
- gtn 大于等于
- lt 小于
- ltn 小于等于
- in 集合內
- notIn 集合外
- like 模糊檢索
- like 模糊排除
- betweenTime 日期范圍
- between 范圍
## 2. 表格表頭檢索
表頭檢索檢索項目會在表頭字段右側展示
格式如下
```
public function header()
{
return [
'id' => ['label' => 'ID', 'sort' => true, 'fixed' => 'left', 'width' => 80],
'username' => ['label' => '用戶名', 'filter' => [1 => 'john', 2 => 'jack']],
'real_name' => ['label' => '姓名', 'filter' => [1 => '老錢', 2 => '老王'], 'multiple' => true],
'avatar' => ['label' => '頭像', 'type' => 'image'],
'sex' => '性別',
'create_time' => ['label' => '創建時間', 'sort' => true],
];
}
```
支持的篩選類型:
- sort 排序
- filter 下拉篩選, 可選項:multiple多選