# 自定义搜索视图说明
## 简介
该模块实现了自定义搜索视图 `header_search` 标签,主要包含以下筛选功能:
- 快捷筛选(quick_filter)
- 自选时间筛选(select_date_filter)(待移植)
- 字段搜索(field)(已移植)
通过这些筛选标签,用户可以更灵活地对列表视图中的数据进行筛选。
---
## 结构说明
### 1. 头部搜索框 (header_search)
**标签名:** `header_search`
#### 支持的属性:
| 属性名 | 类型 | 说明 | 是否可选 |
| ------- | ------ |-------------------------------------------------------------------| ---- |
| `class` | String | 自定义 CSS 类名,
可使用class="header-search-inline"使所有筛选在同一行并根据宽度自动换行 | ✅ |
#### 子标签支持:
- `field`:简单字段筛选
- `quick_filter`:快捷筛选
- `select_date_filter`:自选时间筛选
#### 示例:
```xml
```
---
### 2. 快捷筛选 (quick_filter)
**标签名:** `quick_filter`
#### 支持的属性:
| 属性名 | 类型 | 说明 | 是否可选 |
| ----------- | ------- | ----------- | ------------ |
| `class` | String | 自定义 CSS 类名 | ✅ |
| `string` | String | 显示的标头名称 | ✅ |
| `invisible` | Boolean | 是否默认隐藏(废弃) | ✅ |
| `options` | JSON | 扩展参数,支持以下参数: | ✅ |
| | | `radio`: 是否单选 | |
| | | `no_label`: 不显示标题 | |
| `and_or` | String | 筛选条件之间的逻辑关系 | ✅ (默认 `and`) |
#### 子标签:
- `filter` :用于定义筛选条件
#### 示例:
```xml
```
---
### 3. 自选时间筛选 (select_date_filter)(废弃)
**标签名:** `select_date_filter`
#### 支持的属性:
| 属性名 | 类型 | 说明 | 是否可选 |
| ------------------- | ------- |----------------| ---- |
| `class` | String | 自定义 CSS 类名 | ✅ |
| `invisible` | Boolean | 是否默认隐藏(废弃) | ✅ |
| `allow_date_fields` | String | 允许筛选的时间字段,逗号分隔 | ✅ |
#### 示例:
```xml
```
---
### 4. 字段筛选 (field)
**标签名:** `field`
#### 支持的属性:
| 属性名 | 类型 | 说明 | 是否可选 |
| ------- | ---- | --------- | ---- |
| `name` | String | 字段名称 | ❌ |
| `string` | String | 显示的标头名称 | ✅ |
| `class` | String | 自定义 CSS | ✅ |
| `invisible` | Boolean | 是否默认隐藏 | ✅ |
| `options` | JSON | 扩展参数,支持以下参数: | ✅ |
| | | `radio`: 是否单选 | |
| | | `no_label`: 不显示标题 | |
#### 示例:
```xml
```
---
## 使用说明
1. 将筛选标签嵌入到自定义列表视图的 XML 文件中。
2. 通过 `class` 属性自定义样式。
3. 配合 Odoo 17 的搜索面板,实现更加灵活的筛选功能。
---
## 注意事项
- `and_or` 属性仅在 `quick_filter` 中生效。
- `allow_date_fields` 需要填写模型中的日期字段名。
- 如果 `invisible="1"`,筛选项默认隐藏,需要点击更多选项才能显示。