4.3 KiB
4.3 KiB
自定义搜索视图说明
简介
该模块实现了自定义搜索视图 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:自选时间筛选
示例:
<header_search class="custom-search">
<quick_filter string="状态筛选" and_or="or">
<filter name="confirmed" string="已确认" domain="[('state', '=', 'confirmed')]"/>
<filter name="draft" string="草稿" domain="[('state', '=', 'draft')]"/>
</quick_filter>
<select_date_filter allow_date_fields="create_date,write_date" />
<field name="partner_id" string="合作伙伴"/>
<field name="order_id" string="订单编号"/>
</header_search>
2. 快捷筛选 (quick_filter)
标签名: quick_filter
支持的属性:
| 属性名 | 类型 | 说明 | 是否可选 |
|---|---|---|---|
class |
String | 自定义 CSS 类名 | ✅ |
string |
String | 显示的标头名称 | ✅ |
invisible |
Boolean | 是否默认隐藏(废弃) | ✅ |
options |
JSON | 扩展参数,支持以下参数: | ✅ |
radio: 是否单选 |
|||
no_label: 不显示标题 |
|||
and_or |
String | 筛选条件之间的逻辑关系 | ✅ (默认 and) |
子标签:
filter:用于定义筛选条件
示例:
<quick_filter string="状态筛选" and_or="or" options="{'radio': False, 'no_label': True}">
<filter name="confirmed" string="已确认" domain="[('state', '=', 'confirmed')]"/>
<filter name="draft" string="草稿" domain="[('state', '=', 'draft')]"/>
</quick_filter>
3. 自选时间筛选 (select_date_filter)(废弃)
标签名: select_date_filter
支持的属性:
| 属性名 | 类型 | 说明 | 是否可选 |
|---|---|---|---|
class |
String | 自定义 CSS 类名 | ✅ |
invisible |
Boolean | 是否默认隐藏(废弃) | ✅ |
allow_date_fields |
String | 允许筛选的时间字段,逗号分隔 | ✅ |
示例:
<select_date_filter allow_date_fields="create_date,write_date" />
4. 字段筛选 (field)
标签名: field
支持的属性:
| 属性名 | 类型 | 说明 | 是否可选 |
|---|---|---|---|
name |
String | 字段名称 | ❌ |
string |
String | 显示的标头名称 | ✅ |
class |
String | 自定义 CSS | ✅ |
invisible |
Boolean | 是否默认隐藏 | ✅ |
options |
JSON | 扩展参数,支持以下参数: | ✅ |
radio: 是否单选 |
|||
no_label: 不显示标题 |
示例:
<field name="partner_id" string="合作伙伴" />
<field name="order_id" string="订单编号" />
使用说明
- 将筛选标签嵌入到自定义列表视图的 XML 文件中。
- 通过
class属性自定义样式。 - 配合 Odoo 17 的搜索面板,实现更加灵活的筛选功能。
注意事项
and_or属性仅在quick_filter中生效。allow_date_fields需要填写模型中的日期字段名。- 如果
invisible="1",筛选项默认隐藏,需要点击更多选项才能显示。