filter格式说明
"filter": {
"mode": "AND",// 选填。表示各筛选条件之间的逻辑关系。只能是"AND"或"OR"。缺省值为"AND"
// 可通过criteria数组定义filter的条件,criteria内不可在同一个字段上定义多个条件
"criteria": [
{
"field": "名称",// 必填。根据 preferId 与否,需要填入字段名或字段id
"op": "intersected",// 必填。表示具体的筛选规则,见下
"values": [ // 必填。表示筛选规则中的值。数组形式。
"多维表格",// 值为字符串时表示文本匹配
"12345"
]
},
{
"field": "数量",
"op": "greater",
"values": [
"1"
]
},
{
"field": "复选框",
"op": "Equals",
"values": [
"1"
]
},
{
"field": "不为空",
"op": "NotEmpty"
}
]
}
或
"filter": {
"mode": "OR",
// 可通过filters数组定义条件组,每个元素都是一个filter,由此可以递归地定义条件组
"filters": [
{
"mode": "AND",
"criteria": [
{
"field": "名称",
"op": "Equals",
"values": ["a"]
},
{
"field": "数量",
"op": "Equals",
"values": ["1"]
}
]
},
{
"mode": "AND",
"criteria": [
{
"field": "名称",
"op": "Equals",
"values": ["b"]
},
{
"field": "数量",
"op": "Equals",
"values": ["2"]
}
]
}
]
}筛选规则(大小写不敏感):
- "Equals": 等于
- "NotEqu": 不等于
- "Greater": 大于
- "GreaterEqu": 大等于
- "Less": 小于
- "LessEqu": 小等于
- "GreaterEquAndLessEqu": 介于(取等)
- "LessOrGreater": 介于(不取等)
- "BeginWith": 开头是
- "EndWith": 结尾是
- "Contains": 包含
- "NotContains": 不包含
- "Intersected": 指定值
- "Empty": 为空
- "NotEmpty": 不为空
各筛选规则独立地限制了values数组内最多允许填写的元素数,当values内元素数超过阈值时,该筛选规则将失效。“为空、不为空”不允许填写元素;“介于”允许最多填写2个元素;“指定值”允许填写65535个元素;其他规则允许最多填写1个元素
values[]数组内的元素为字符串时,表示文本匹配。目前还支持对日期进行动态筛选,此时values[]内的元素需以结构体的形式给出:
"filter": {
"mode": "AND",
"criteria": [
{
"field": "日期",
"op": "Equals",
"values": [
{
"dynamicType": "lastMonth",
"type": "DynamicSimple"
}
]
}
]
}上述示例对应的筛选条件为“等于上一个月”。
要使用日期动态筛选,values[]内的结构体需要指定"type": "DynamicSimple",当"op"为"equals"时,"dynamicType"可以为如下的值(大小写不敏感):
- "today": 今天
- "yesterday": 昨天
- "tomorrow": 明天
- "last7Days": 最近7天
- "last30Days": 最近30天
- "thisWeek": 本周
- "lastWeek": 上周
- "nextWeek":下周
- "thisMonth": 本月
- "lastMonth": 上月
- "nextMonth": 次月
当"op"为"greater"或"less"时,"dynamicType"只能是昨天、今天或明天。
filter不是结构体、criterion未指定field、op/values参数填写不合法、values填写过多参数及其他可能导致筛选规则失效等情形,整个请求将直接失败