通用搜索的的內容是根據`bootstrap-table`配置的字段`columns`決定的,渲染的內容及格式由FastAdmin自動進行渲染,如果需要禁用或刪除某一選項,可以在JS中配置`operate:false`來刪除通用搜索中的選項。例如通常情況下我們的在JS中進行字段的配置如下:
~~~
{field: 'createtime', title: __('Create Time')},
~~~
這里默認是啟用的通用搜索,針對通用搜索,有以下幾個常用的配置:
~~~
operate:'=' //用于查詢時的操作符,默認為=,為false表示禁用此字段的通用搜索,支持!=、LIKE、NOT LIKE、>、<、>=<=、FIND_IN_SET、IN、NOT IN、BETWEEN、NOT BETWEEN、RANGE、NOT RANGE、NULL、NOT NULL、false
searchList: //用于渲染列表的數據,支持的格式有JSON Array、JSON Object、$.getJSON、Function
addclass: //用于給input或select添加額外的class屬性
type: //用于定義input文本框的類型,默認為text
data: //用于給input或select添加額外的屬性
~~~
常用配置示例如下:
~~~
//時間區間搜索
{field: 'createtime', title: __('Createtime'), operate: 'RANGE', addclass: 'datetimerange', formatter: Table.api.formatter.datetime},
//金額區間搜索
{field: 'money', title: __('Money'), operate: 'RANGE'},
//下拉列表搜索
{field: 'flag', title: __('Flag'), searchList: {"hot": __('Flag hot'), "index": __('Flag index'), "recommend": __('Flag recommend')}, operate: 'FIND_IN_SET', formatter: Table.api.formatter.label},
//動態下拉列表搜索
{field: 'type', title: __('Type'), searchList: $.getJSON("ajax/dynamicselect")},
//禁用通用搜索
{field: 'keywords', title: __('Keywords'), operate: false},
~~~
如果我們需要完全自定義我們的通用搜索欄,我們可以在配置`bootstrap-table`時定義`searchFormTemplate`選項來完全重寫我們的通用搜索欄,具體請參考`開發示例插件`中的自定義搜索示例