1. 过滤控件
1.1. 过滤控件说明
1.1.1. 过滤控件 的定义
过滤控件用于在仪表盘中过滤图表数据,分为仪表盘内过滤控件和全局过滤控件。
过滤控件结构说明
字段 | 类型 | 描述 | |
---|---|---|---|
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(控制) | false(不控制) |
byDashboard | OBJECT | 全局过滤器在各仪表盘中的样式设置 | |
childrenByDashboard | OBJECT | 全局过滤器与各仪表盘中的过滤控件的父子关系 |
1.2. 接口说明
1.2.1. 新增过滤控件
新增过滤控件
请求URL
POST /api/v1/apps/${appId}/filter-controllers
需要认证:是
请求参数
URL 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
appId | INTEGER | 是 | 过滤控件所在的应用 id |
Request Body 参数
过滤控件配置信息,见过滤控件结构
返回对象的格式说明
字段 | 类型 | 说明 |
---|---|---|
version | STRING | 当前系统版本哈希值 |
data | OBJECT | 过滤控件的完整配置信息,见过滤控件结构 |
接口示例1: 新增仪表盘内过滤控件
POST /api/v1/apps/1/filter-controllers
{
"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: 新增仪全局过滤控件
POST /api/v1/apps/1/filter-controllers
{
"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: 新增参数控件
POST /api/v1/apps/1/filter-controllers
{
"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: 新增过滤按钮
POST /api/v1/apps/1/filter-controllers
{
"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"
}
}
}
}
说明
: 过滤按钮具体控制哪些过滤控件需要调用批量更新接口
1.2.2. 更新过滤控件
更新过滤控件
请求URL
PUT /api/v1/apps/${appId}/filter-controllers/{uid}
需要认证:是
请求参数
URL 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
appId | INTEGER | 是 | 过滤控件所在的应用 id |
uid | INTEGER | 是 | 过滤控件唯一识别id |
Request Body 参数
过滤控件配置信息,见过滤控件结构
返回对象的格式说明
字段 | 类型 | 说明 |
---|---|---|
version | STRING | 当前系统版本哈希值 |
data | OBJECT | 过滤控件的完整配置信息,见过滤控件结构 |
接口示例
PUT /api/v1/apps/1/filter-controllers/01HJ0TE602Z2VERDA4CMY4JR59
{
"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
1.2.3. 批量更新过滤控件
批量更新过滤控件
请求URL
PUT /api/v1/apps/${appId}/filter-controllers
需要认证:是
请求参数
URL 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
appId | INTEGER | 是 | 过滤控件所在的应用 id |
Request Body 参数
过滤控件配置信息,见过滤控件结构
返回对象的格式说明
字段 | 类型 | 说明 |
---|---|---|
version | STRING | 当前系统版本哈希值 |
data | OBJECT | 过滤控件的完整配置信息,见过滤控件结构 |
接口示例
PUT /api/v1/apps/1/filter-controllers/01HJ0TE602Z2VERDA4CMY4JR59
[
{
"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
1.2.4. 获取过滤控件列表
获取过滤控件列表
请求URL
GET /api/v1/apps/${appId}/filter-controllers
需要认证:是
请求参数
URL 参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
appId | INTEGER | 是 | 过滤控件所在的应用 id |
Request Body 参数
过滤控件配置信息,见过滤控件结构
返回对象的格式说明
字段 | 类型 | 说明 |
---|---|---|
version | STRING | 当前系统版本哈希值 |
data | OBJECT | 过滤控件的完整配置信息,见过滤控件结构 |
接口示例
GET /api/v1/apps/1/filter-controllers
{
"version": "5.1-SNAPSHOT@69ca65d#666a4a7",
"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
}