filter专门用于列表中的多条件筛选,排序等场景。
{filter field="" option="" type="" checkStyle="" unCheckStyle="" unset="" unsetName=""}
字段 | 类型 | 必填 | 默认 | 说明 |
field | String | Yes | - | 筛选项的字段 |
table_id | Int | No | 当前模型对应的数据表 | field选项对应的数据表 |
option | String | No | 选项内容 | option默认是从当前字段选项获取 |
type | String | No | auto | type分为auto,like,eq |
checkStyle | String | No | on | 选中的样式 |
unCheckStyle | String | No | 未选中的样式 | |
unset | Boole | No | true | 删除当前条件(即全部) |
unsetName | String | No | 全部 | 删除当前条件的显示字符 |
field字段是对应信息表里的字段,比如我们要选项city字段,那么field值即为city。
默认field会从当前模型对应的字段读取选项内容,比如后台增加city字段,选项内容为:北京,上海,广州,那么filter标签输出选项就是以上内容。
table_id为当前模型对应的数据表,通常默认的就可以。比如我需要从其它数据表里选项选项内容,这里输入对应的table_id即可。
option为选项内容,当指定了option程序会用指定的参数内容,多个选项之间用半角的逗号隔开。比如city字段指定option:
{filter field="city" option="南京,合肥,杭州"}
通常显示的名称和值是一样的,比如点击南京,url中传递city=南京;
但是有些用例需要特别给定值,比如价格区间。
界面显示的为:100元以下,100-200元,200-500元,500元以上
参数值为:100,100__200,200__500,500
这种情况参数写法如下:名称==值
名称和值之间用==隔开,示例代码:
{filter field="price" option="100元以下==__100,100-200元==100__200,200-500元==200__500,500元以上==500__"}
筛选功能分为全匹配(eq)和模糊匹配(like),这里type为字段搜索类型分三种选项:auto,eq,like。
auto:为自动根据字段类型判断是eq(全匹配),还是like(模糊匹配)。为like的时候会在两边加上[]这样程序就可以识别出这是模糊查询。
字段类型是根据字段的formtype做判断,当formtype为checkbox和formtype的时候type等于like,否则等于eq。
当给定option内容时,这里type默认为eq。
checkStyle为选中项的class样式,默认为on
unCheckStyle为未选中项的class样式,默认为空
unset是否启用删除当前条件(即全部),比如城市筛默认显示:全部,北京,上海,广州。
如果unset="false",则:
城市:北京,上海,广州
这样用户一但选中了不能清空当前条件。
即全部的字符串,比如设置为All,所有,不限