衡石科技技术手册--仪表盘过滤控件详解

发布于:2025-07-15 ⋅ 阅读:(21) ⋅ 点赞:(0)

过滤控件说明 

过滤控件 的定义 

过滤控件用于在仪表盘中过滤图表数据,分为仪表盘内过滤控件和全局过滤控件。

过滤控件结构说明 
字段 类型 描述
uid STRING 过滤控件唯一识别 id
appId LONG 过滤控件所属的应用 id
dataAppId LONG 字段来源是数据包时的数据包 id
dashboardId LONG 过滤控件所属的仪表盘 id
datasetId LONG 过滤控件所是用的字段所属的数据集 id
title STRING 过滤控件标题
filterType STRING 过滤控类型,可选值为:FILTER(过滤控件),FILTER_BTN(过滤按钮),PARAM(参数控件),MULTIPLE_DATE_PARAM(日期多选过滤控件)
fieldName STRING 过滤器所用的字段名称
field OBJECT 过滤器所用的字段配置
use STRING 过滤器过滤样式,默认传"checkbox"即可
kind OBJECT 过滤器表达式类型,默认传"formula"即可
op OBJECT 过滤器表达式,默认传"1=1"即可
options OBJECT 过滤控件样式相关配置
options.style OBJECT 过滤控件样式配置
options.titleStyle OBJECT 过滤控件标题样式配置
children LIST 子过滤控件集合,list中的值为子控件的uid
isGlobalFilter BOOLEAN 过滤控件是否为全局控件
controller MAP 过滤按钮控制的过滤控件映射表,key为要控制的过滤控件uid,value为boolean值:true(控制)
byDashboard OBJECT 全局过滤器在各仪表盘中的样式设置
childrenByDashboard OBJECT 全局过滤器与各仪表盘中的过滤控件的父子关系

接口说明 

新增过滤控件 

新增过滤控件

请求URL 

http

POST /api/apps/${appId}/filter-controllers HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

请求参数 
URL 参数 
字段 类型 是否必须 说明
appId INTEGER 过滤控件所在的应用 id
Request Body 参数 

过滤控件配置信息,见过滤控件结构

返回对象的格式说明 
字段 类型 说明
version STRING 当前系统版本哈希值
data OBJECT 过滤控件的完整配置信息,见过滤控件结构
接口示例1: 新增仪表盘内过滤控件 

http

POST /api/apps/1/filter-controllers HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

// Request Body:
{
  "title": "新建过滤器",
  "options": {
    "titleStyle": {
      "textAlign": "center",
      "position": "left"
    },
    "style": {
          "method": "select",
          "itemStyle": {
            "borderTopColor": "#dadada",
            "borderRightColor": "#dadada",
            "borderBottomColor": "#dadada",
            "borderLeftColor": "#dadada",
            "maxHeight": 28,
            "background": "#fff"
          }
        }
  },
  "filterType": "filter",
  "fieldName": "director",
  "field": {
    "datasetId": 1,
    "fieldName": "director",
    "tags": {},
    "defaultAggrType": "count",
    "comment": "",
    "type": "string",
    "config": {},
    "originType": "string",
    "visible": true,
    "nativeType": "bpchar",
    "hideValue": false,
    "detectedType": "string",
    "suggestedTypes": [
      "string"
    ],
    "basicType": "string",
    "dataAppId": 130713,
    "_ukey": "director",
    "labelOrigin": "director"
  },
  "use": "checkbox",
  "kind": "formula",
  "op": "1=1",
  "appId": 1,
  "uid": "01HJ0TE602Z2VERDA4CMY4JR59",
  "dataAppId": 1,
  "datasetId": 1,
  "dashboardId": 1,
  "dashboardOptions": {
    "layouts": {
      "1": {
        "static": false,
        "w": 4,
        "moved": false,
        "h": 4,
        "x": 1,
        "i": "1",
        "y": 1,
        "type": "chart",
        "zIndex": 902,
        "options": {}
      },
      "01HJ0TE602Z2VERDA4CMY4JR59": {
        "i": "01HJ0TE602Z2VERDA4CMY4JR59",
        "x": 1,
        "y": 1,
        "w": 4,
        "h": 1,
        "moved": false,
        "static": false,
        "zIndex": 904,
        "type": "filter"
      }
    }
  }
}

说明

dashboardOptions.layouts为过滤控件在仪表盘内的样式配置,layouts为MAP类型,key是过滤控件uid或图表id,value为具体的样式配置,请注意,这里的options.layouts每次都需要传递完整的layouts而不是仅传当前新增的控件样式,如:仪表盘内已有一个图表和一个过滤控件,那么新增过滤控件时,layouts中应该有三个键值对,分别对应两个过滤控件和一个已有图表的样式。

接口示例2: 新增仪全局过滤控件 

http

POST /api/apps/1/filter-controllers HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

// Request Body:
{
    "title": "全局过滤器",
    "options": {
        "titleStyle": {},
        "style": {
            "method": "select",
            "itemStyle": {
                "borderTopColor": "#dadada",
                "borderRightColor": "#dadada",
                "borderBottomColor": "#dadada",
                "borderLeftColor": "#dadada",
                "maxHeight": 28,
                "background": "#fff"
            }
        }
    },
    "filterType": "filter",
    "appId": 130713,
    "isGlobalFilter": true,
    "uid": "01HJ0V48VGN5M8XV4FQDW9BZ6D",
    "fieldName": "director",
    "field": {
        "datasetId": 1,
        "fieldName": "director",
        "tags": {},
        "defaultAggrType": "count",
        "type": "string",
        "comment": "",
        "originType": "string",
        "config": {},
        "visible": true,
        "nativeType": "bpchar",
        "hideValue": false,
        "detectedType": "string",
        "suggestedTypes": [
            "string"
        ],
        "basicType": "string",
        "dataAppId": 130713,
        "_ukey": "director",
        "labelOrigin": "director"
    },
    "byDashboard": {
        "1": {
            "style": {
                "method": "select",
                "itemStyle": {
                    "borderTopColor": "#dadada",
                    "borderRightColor": "#dadada",
                    "borderBottomColor": "#dadada",
                    "borderLeftColor": "#dadada",
                    "maxHeight": 28,
                    "background": "#fff"
                }
            }
        }
    },
    "children": [
        "01HJ0TE602Z2VERDA4CMY4JR59"
    ],
    "childrenByDashboard": {
        "1": [
            "01HJ0TE602Z2VERDA4CMY4JR59"
        ]
    },
    "dataAppId": 130713,
    "datasetId": 1,
    "inside": true
}

说明

全局过滤控件不需要传递dashboardOptions

接口示例3: 新增参数控件 

http

POST /api/apps/1/filter-controllers HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

// Request Body:
{
  "uid": "01HJ0WYABBYAHBS8N33KVRHFJH",
  "dashboardId": 1,
  "appId": 1,
  "options": {
    "style": {
      "method": "input"
    },
    "titleStyle": {
      "textAlign": "center",
      "position": "left"
    },
    "mobileOptions": {
      "style": {
        "method": "input"
      },
      "titleStyle": {
        "textAlign": "center",
        "position": "left"
      }
    },
    "enableAll": false
  },
  "datasetId": 1,
  "title": "参数控件",
  "filterType": "param",
  "field": {
    "id": 1,
    "name": "param",
    "appId": 130713,
    "options": {
      "type": "string",
      "subType": "ALL",
      "allowAllValue": true,
      "defaultValue": null
    },
    "extendAppTitle": "过滤控件",
    "uid": "1",
    "isParam": true,
    "type": "string",
    "datasetId": 1,
    "dataAppId": 130713,
    "labelOrigin": "param",
    "label": "param"
  },
  "use": "paramInput",
  "fieldName": "param",
  "dashboardOptions": {
    "layouts": {
      "1": {
        "static": false,
        "w": 4,
        "moved": false,
        "h": 4,
        "x": 1,
        "options": {},
        "i": "1",
        "y": 1,
        "type": "chart",
        "zIndex": 902
      },
      "01HJ0WYABBYAHBS8N33KVRHFJH": {
        "i": "01HJ0WYABBYAHBS8N33KVRHFJH",
        "x": 1,
        "y": 1,
        "w": 4,
        "h": 1,
        "moved": false,
        "static": false,
        "zIndex": 910,
        "type": "param"
      }
    }
  }
}

接口示例4: 新增过滤按钮 

http

POST /api/apps/1/filter-controllers HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

// Request Body:
{
    "version": 5000,
    "title": "查询",
    "options": {},
    "filterType": "filterBtn",
    "appId": 130713,
    "uid": "01HJ0X4WF0SR2MEND24V1J5BNE",
    "dashboardId": 1,
    "dashboardOptions": {
        "layouts": {
            "1": {
                "static": false,
                "w": 4,
                "moved": false,
                "h": 4,
                "x": 1,
                "options": {},
                "i": "1",
                "y": 1,
                "type": "chart",
                "zIndex": 902
            },
            "01HJ0X4WF0SR2MEND24V1J5BNE": {
                "i": "01HJ0X4WF0SR2MEND24V1J5BNE",
                "x": 1,
                "y": 1,
                "w": 4,
                "h": 1,
                "moved": false,
                "static": false,
                "zIndex": 912,
                "type": "filterBtn"
            }
        }
    }
}

说明

过滤按钮具体控制哪些过滤控件需要调用批量更新接口

更新过滤控件 

更新过滤控件

请求URL 

http

PUT /api/apps/${appId}/filter-controllers/{uid} HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

请求参数 
URL 参数 
字段 类型 是否必须 说明
appId INTEGER 过滤控件所在的应用 id
uid INTEGER 过滤控件唯一识别id
Request Body 参数 

过滤控件配置信息,见过滤控件结构

返回对象的格式说明 
字段 类型 说明
version STRING 当前系统版本哈希值
data OBJECT 过滤控件的完整配置信息,见过滤控件结构
接口示例 

http

PUT /api/apps/1/filter-controllers/01HJ0TE602Z2VERDA4CMY4JR59 HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

// Request Body:
{
    "uid": "01HJ0TE602Z2VERDA4CMY4JR59",
    "dashboardId": 1,
    "appId": 130713,
    "options": {
        "style": {
            "method": "select"
        },
        "titleStyle": {
            "textAlign": "center",
            "position": "left"
        },
        "mobileOptions": {
            "style": {
                "method": "select"
            },
            "titleStyle": {
                "textAlign": "center",
                "position": "left"
            }
        }
    },
    "datasetId": 1,
    "dataAppId": 130713,
    "title": "新建过滤器",
    "filterType": "filter",
    "version": 5000,
    "fieldName": "director",
    "field": {
        "datasetId": 1,
        "fieldName": "director",
        "tags": {},
        "defaultAggrType": "count",
        "comment": "",
        "type": "string",
        "config": {},
        "originType": "string",
        "visible": true,
        "nativeType": "bpchar",
        "hideValue": false,
        "detectedType": "string",
        "suggestedTypes": [
            "string"
        ],
        "basicType": "string",
        "dataAppId": 130713,
        "_ukey": "director",
        "labelOrigin": "director"
    },
    "use": "checkbox",
    "kind": "formula",
    "op": "1=1"
}

说明

更新不需要再次传递dashboardOptions

批量更新过滤控件 

批量更新过滤控件

请求URL 

http

PUT /api/apps/${appId}/filter-controllers HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

1
2
3

请求参数 
URL 参数 
字段 类型 是否必须 说明
appId INTEGER 过滤控件所在的应用 id
Request Body 参数 

过滤控件配置信息,见过滤控件结构

返回对象的格式说明 
字段 类型 说明
version STRING 当前系统版本哈希值
data OBJECT 过滤控件的完整配置信息,见过滤控件结构
接口示例 

http

PUT /api/apps/1/filter-controllers/01HJ0TE602Z2VERDA4CMY4JR59 HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

// Request Body:
[
  {
    "op": "1=1",
    "controller": {
      "01HJ0X4WF0SR2MEND24V1J5BNE": true
    },
    "fieldsChain": [
      {
        "field": "月份",
        "keys": [
          "130145_datasetList_2"
        ],
        "appId": 130145,
        "datasetId": 2,
        "label": "月份"
      }
    ],
    "fieldName": "director",
    "use": "checkbox",
    "kind": "formula",
    "datasetName": "A_IVT_MOVIE",
    "title": "新建过滤器",
    "version": 5000,
    "uid": "01HJ0TE602Z2VERDA4CMY4JR59",
    "hasChain": true,
    "field": {
      "fieldName": "director",
      "visible": true,
      "suggestedTypes": [
        "string"
      ],
      "type": "string",
      "detectedType": "string",
      "tags": {},
      "basicType": "string",
      "defaultAggrType": "count",
      "originType": "string",
      "hideValue": false,
      "appId": 130713,
      "nativeType": "bpchar",
      "_ukey": "director",
      "datasetId": 1,
      "comment": "",
      "labelOrigin": "director",
      "id": 125664649,
      "config": {}
    },
    "children": [
      "01HJ0TNJJFG2S7HGKA5B57A11S"
    ],
    "dashboardId": 1,
    "appId": 130713,
    "options": {
      "style": {
        "method": "select"
      },
      "titleStyle": {
        "textAlign": "center",
        "position": "left"
      },
      "mobileOptions": {
        "style": {
          "method": "select"
        },
        "titleStyle": {
          "textAlign": "center",
          "position": "left"
        }
      }
    },
    "datasetId": 1,
    "fieldSiblings": [],
    "dataAppId": 130713,
    "filterType": "filter"
  },
  {
    "uid": "01HJ0WYABBYAHBS8N33KVRHFJH",
    "controller": {
      "01HJ0X4WF0SR2MEND24V1J5BNE": true
    },
    "fieldName": "d",
    "field": {
      "updatedBy": 8,
      "isParam": true,
      "isDelete": false,
      "label": "d",
      "type": "string",
      "tags": {},
      "createdAt": 1702984863536,
      "uid": "1",
      "extendAppTitle": "过滤控件",
      "createdBy": 8,
      "appId": 130713,
      "name": "d",
      "options": {
        "allowAllValue": true,
        "subType": "ALL",
        "type": "string"
      },
      "datasetId": 1,
      "labelOrigin": "d",
      "id": 1,
      "dataAppId": 130713,
      "updatedAt": 1702984863536
    },
    "dashboardId": 1,
    "use": "paramInput",
    "appId": 130713,
    "options": {
      "style": {
        "method": "input"
      },
      "titleStyle": {
        "textAlign": "center",
        "position": "left"
      },
      "enableAll": false,
      "mobileOptions": {
        "style": {
          "method": "input"
        },
        "titleStyle": {
          "textAlign": "center",
          "position": "left"
        }
      }
    },
    "datasetId": 1,
    "dataAppId": 130713,
    "title": "新建参数控件",
    "filterType": "param"
  },
  {
    "uid": "01HJ0X4WF0SR2MEND24V1J5BNE",
    "dashboardId": 1,
    "appId": 130713,
    "options": {},
    "dataAppId": 130713,
    "title": "查询",
    "filterType": "filterBtn",
    "version": 5000
  }
]

说明

该例为更新过滤按钮,需要将过滤按钮要控制的过滤控件的信息都放在list中并设置controller后传递,controller中为过滤按钮的uid

获取过滤控件列表 

获取过滤控件列表

请求URL 

http

GET /api/apps/${appId}/filter-controllers HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

请求参数 
URL 参数 
字段 类型 是否必须 说明
appId INTEGER 过滤控件所在的应用 id
Request Body 参数 

过滤控件配置信息,见过滤控件结构

返回对象的格式说明 
字段 类型 说明
version STRING 当前系统版本哈希值
data OBJECT 过滤控件的完整配置信息,见过滤控件结构
接口示例 

http

GET /api/apps/1/filter-controllers HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...

// Request Body:
{
  "version": "version@9a5e106#6730f0d",
  "code": 0,
  "msg": "success",
  "data": [
    {
      "op": "1=1",
      "fieldsChain": [
        {
          "field": "月份",
          "keys": [
            "130145_datasetList_2"
          ],
          "appId": 130145,
          "datasetId": 2,
          "label": "月份"
        }
      ],
      "fieldName": "director",
      "use": "checkbox",
      "kind": "formula",
      "datasetName": "A_IVT_MOVIE",
      "title": "新建过滤器",
      "version": 5000,
      "uid": "01HJ0TE602Z2VERDA4CMY4JR59",
      "hasChain": true,
      "field": {
        "visible": true,
        "fieldName": "director",
        "suggestedTypes": [
          "string"
        ],
        "type": "string",
        "detectedType": "string",
        "tags": {},
        "basicType": "string",
        "originType": "string",
        "defaultAggrType": "count",
        "hideValue": false,
        "appId": 130713,
        "nativeType": "bpchar",
        "_ukey": "director",
        "datasetId": 1,
        "comment": "",
        "labelOrigin": "director",
        "id": 125664649,
        "config": {}
      },
      "children": [
        "01HJ0TNJJFG2S7HGKA5B57A11S"
      ],
      "dashboardId": 1,
      "appId": 130713,
      "options": {
        "style": {
          "method": "select"
        },
        "titleStyle": {
          "textAlign": "center",
          "position": "left"
        },
        "mobileOptions": {
          "style": {
            "method": "select"
          },
          "titleStyle": {
            "textAlign": "center",
            "position": "left"
          }
        }
      },
      "datasetId": 1,
      "fieldSiblings": [],
      "dataAppId": 130713,
      "filterType": "filter"
    },
    {
      "op": "1=1",
      "fieldName": "stars",
      "use": "checkbox",
      "kind": "formula",
      "datasetName": "A_IVT_MOVIE",
      "title": "新建过滤器",
      "version": 5000,
      "uid": "01HJ0TNJJFG2S7HGKA5B57A11S",
      "field": {
        "visible": true,
        "fieldName": "stars",
        "suggestedTypes": [
          "string"
        ],
        "type": "string",
        "detectedType": "string",
        "tags": {},
        "basicType": "string",
        "originType": "string",
        "defaultAggrType": "count",
        "hideValue": false,
        "appId": 130713,
        "nativeType": "varchar",
        "_ukey": "stars",
        "datasetId": 1,
        "comment": "",
        "labelOrigin": "stars",
        "id": 125664654,
        "config": {}
      },
      "children": [
        "01HJ0TRQ88JAJNHEQQK6NYE16F"
      ],
      "dashboardId": 1,
      "appId": 130713,
      "options": {
        "style": {
          "method": "select"
        },
        "titleStyle": {
          "textAlign": "center",
          "position": "left"
        },
        "mobileOptions": {
          "style": {
            "method": "select"
          },
          "titleStyle": {
            "textAlign": "center",
            "position": "left"
          }
        }
      },
      "datasetId": 1,
      "fieldSiblings": [],
      "dataAppId": 130713,
      "filterType": "filter"
    },
    {
      "op": "1=1",
      "fieldName": "zh_name",
      "use": "checkbox",
      "kind": "formula",
      "datasetName": "A_IVT_MOVIE",
      "title": "新建过滤器",
      "version": 5000,
      "uid": "01HJ0TRQ88JAJNHEQQK6NYE16F",
      "field": {
        "visible": true,
        "fieldName": "zh_name",
        "suggestedTypes": [
          "string"
        ],
        "type": "string",
        "detectedType": "string",
        "tags": {},
        "basicType": "string",
        "originType": "string",
        "defaultAggrType": "count",
        "hideValue": false,
        "appId": 130713,
        "nativeType": "bpchar",
        "_ukey": "zh_name",
        "datasetId": 1,
        "comment": "",
        "labelOrigin": "zh_name",
        "id": 125664648,
        "config": {}
      },
      "dashboardId": 1,
      "appId": 130713,
      "options": {
        "style": {
          "method": "select"
        },
        "titleStyle": {
          "textAlign": "center",
          "position": "left"
        },
        "mobileOptions": {
          "style": {
            "method": "select"
          },
          "titleStyle": {
            "textAlign": "center",
            "position": "left"
          }
        }
      },
      "datasetId": 1,
      "fieldSiblings": [],
      "dataAppId": 130713,
      "filterType": "filter"
    },
    {
      "uid": "01HJ0WYABBYAHBS8N33KVRHFJH",
      "fieldName": "d",
      "field": {
        "isParam": true,
        "updatedBy": 8,
        "isDelete": false,
        "label": "d",
        "type": "string",
        "tags": {},
        "uid": "1",
        "createdAt": "2023-12-19 19:21:03",
        "extendAppTitle": "过滤控件",
        "createdBy": 8,
        "appId": 130713,
        "name": "d",
        "options": {
          "allowAllValue": true,
          "subType": "ALL",
          "type": "string"
        },
        "datasetId": 1,
        "labelOrigin": "d",
        "id": 1,
        "dataAppId": 130713,
        "updatedAt": "2023-12-19 19:21:03"
      },
      "dashboardId": 1,
      "use": "paramInput",
      "appId": 130713,
      "options": {
        "enableAll": false,
        "style": {
          "method": "input"
        },
        "titleStyle": {
          "textAlign": "center",
          "position": "left"
        },
        "mobileOptions": {
          "style": {
            "method": "input"
          },
          "titleStyle": {
            "textAlign": "center",
            "position": "left"
          }
        }
      },
      "datasetId": 1,
      "dataAppId": 130713,
      "title": "新建参数控件",
      "filterType": "param",
      "version": 5000
    },
    {
      "uid": "01HJ0X4WF0SR2MEND24V1J5BNE",
      "dashboardId": 1,
      "appId": 130713,
      "options": {},
      "dataAppId": 130713,
      "title": "查询",
      "filterType": "filterBtn",
      "version": 5000
    }
  ],
  "chartDataStartTimeMillis": 0
}


网站公告

今日签到

点亮在社区的每一天
去签到