Skip to content

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填写过多参数及其他可能导致筛选规则失效等情形,整个请求将直接失败