以 iframe 形式嵌入看板
# 以 iframe 形式嵌入看板
# 集成认证
为了页面访问安全,IBI支持一下形式的认证方式:
- 通过看板分享生成的分享ID认证,参数:
shareid
,shareid包含看板idboardId
信息 - 通过用户名和密码认证,参数:
userName
/password
,password支持明文或者md5加密认证 - 通过jwt token认证,参数:
token
认证检测优先级
token
> shareid
> 用户名和密码
# PC端单看板集成
单看板集成url地址格式如下
http://ibi—ip:port/appname/render.html?[key=value]
在外部系统集成方面, 通过看板分享功能, 利用该功能可以生成一个外部能够访问到的链接, 操作如下:
自由布局看板 → 分享 → 选择一个分享链接有效期限 → 点击 Add:
之后便可以在其他地方访问到这个看板, 通过这个链接访问的看板不带周边菜单栏和看板参数
# IFrame 过滤参数传递
key 区分大小写,后面的解释不再赘述
Key | 描述 | 默认 |
---|---|---|
shareid | 通过看板分享生成,shareid中包含看板id和分享实例生成时的看板参数状态 | |
boardId | 看板ID,使用shareid不需要传递boardId | |
showParam | 全局控制是否显示看板上的参数栏,可选值:0/1, true/false; | true |
hiddenPNames | 控制参数栏中的指定参数隐藏,传递参数名数组, ['参数名 1','参数名 2'] | |
showTitle | 是否显示看板标题,可选值:0/1, true/false; | true |
showExport | 是否显示导出按钮 | false |
filters | 控制看板参数的过滤内容,值格式为 JSON 对象 | |
locale | 多语言支持,只会影响系统菜单项 | cn/en |
其他参数 | 其他参数会被解释为环境变量 |
# 参数详解
# showParam
全局控制是否显示看板上的参数栏,可选值:0/1, true/false; 不给值,默认为显示参数栏
http://localhost:8088/render.html?shareid=N9SYIQ9r&showParam=false
http://localhost:8088/render.html?shareid=N9SYIQ9r&showParam=0
2
# hiddenPNames
控制参数栏中的指定参数隐藏,传递参数名数组, 如下面的请求可以把看板上名称为用户
的参数隐藏,以防止用户修改,
http://localhost:8088/render.html?shareid=N9SYIQ9r&hiddenPNames=['用户']
参数名称单引号、双引号都能兼容
# showTitle
控制是否显示看板原始标题
http://localhost:8088//render.html?shareid=N0zt6xJw&showTitle=false#/
# showExport
http://localhost:8088//render.html?shareid=N0zt6xJw&showExport=true#/
# filters
看板参数的状态可以通过传递一个 json 对象设定(一般用户可由外部集成系统代码生成),具体格式如下:
{
"boardParams": [
{
"id": "mpgxi01ev6k",
"name": "用户",
"type": "=",
"values": ["aaa", "bbb"]
},
{
"id": "2khmtv1s63p",
"name": "用户名",
"type": "=",
"values": []
}
]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- 该 json 对象可以通过
URL参数工具
提取,用户根据参数值内容复杂程度决定是否进行 urlEncode 再传递 - 通过 id 与看板上的参数进行关联,关联不上则会被丢弃,filter项目中name属性为非必须属性,删除可以减少参数长度
- type:不同的参数类型 type 值有所区别,设置前建议通过
URL参数工具
查看之后调试确认const EQ = '=', NEQ = '≠', GT = '>', LT = '<', GET = '≥', LET = '≤', LIKE = 'like', NOT_LIKE = 'not like', GEL = '(a,b]', EGL = '[a,b)', GL = '(a,b)', EGEL = '[a,b]';
1
2
3
4
5
6
7
8
9
10
11
12
参数形式 | 支持类型 |
---|---|
通用过滤器 | 支持所有类型 |
日期范围 | 支持闭区间[a,b] |
复选框, 下拉框 | 支持相等过滤 = |
关键词输入 | Like |
http://host/render.html?shareid=N9SYIQ9r&filters={"boardParams":[{"id":"mpgxi01ev6k","name":"用户","type":"=","values":["aaa","bbb"]},{"id":"2khmtv1s63p","name":"用户名","type":"=","values":[]}]}
// filters 调用encodeURIComponent之后
http://host/render.html?shareid=N9SYIQ9r&filters=filters=%7B%22boardParams%22%3A%5B%7B%22id%22%3A%22mpgxi01ev6k%22%2C%22name%22%3A%22%E7%94%A8%E6%88%B7%22%2C%22type%22%3A%22%3D%22%2C%22values%22%3A%5B%22aaa%22%2C%22bbb%22%5D%7D%2C%7B%22id%22%3A%222khmtv1s63p%22%2C%22name%22%3A%22%E7%94%A8%E6%88%B7%E5%90%8D%22%2C%22type%22%3A%22%3D%22%2C%22values%22%3A%5B%5D%7D%5D%7D
2
3
4
# locale
系统菜单项多语言支持
http://localhost:8088//render.html?shareid=N0zt6xJw&showExport=true&locale=en#/
# PC端单个图表集成
单个图表集成url地址格式如下
集成认证
认证信息推荐token认证
http://ibi—ip:port/appname/render.html?widgetId=xxx
# PC端单个复杂报表集成
单个复杂报表集成url地址格式如下
集成认证
认证方式推荐token认证
http://ibi—ip:port/appname/render.html?reportId=xxx
# PC端主题分析集成
主题分析集成格式如下,id参数为主题分析的id
集成认证
认证方式推荐token认证
http://ibi—ip:port/appname/mini-app.html?id=appId
# PC端一次集成多个网格看板
集成url地址格式如下
http://ibi—ip:port/appname/render-lite.html?boards=[json数组]&其他变量定义
# URL 变量解释
Key | Description |
---|---|
认证 | 参考集成认证 多看板集成不支持shareid |
boards | 要集成的多个看板对象定义 |
baseServerUrl | 重定向服务端地址,使用场景把前端作为一个独立模块分布式部署的场景可以使用 |
boardStyle | 多看板集成影响看板展示区域样式 |
locale | 多语言支持,只会影响系统菜单项 |
其他参数 | 其他参数可以用于全局变量,局部变量variables, 可以覆盖全局变量 |
# boards
boards 为一个JSON数组字符串,里面每个成员对应集成的一个标签页(一个看板),接受的传参与单看板集成基本一致
[
{
showParam: true,
showExport: true,
title: '第一个看板',
boardId: 63,
hiddenParamNames: [],
filters: {"boardParams":[{"id":"5chiv3mmalw","name":"国家","type":"=","values":["美国"]}]},
variables: {
country: '美国'
}
},
...
]
2
3
4
5
6
7
8
9
10
11
12
13
14
Tips
该集成链接一般由用户读取 IBI 元数据之后,通过代码自动生成
# boardStyle
看板展示区域的样式,为encode之后的css字符串
http://localhost:8088/render-lite.html?userName=peter&password=xxxboardStyle=background-color%3Ared
# 大屏集成url
http://ibi—ip:port/appname/cockpit.html?boardId=id&其他变量定义
# URL 变量解释
Key | Description |
---|---|
认证 | 参考集成认证 |
boardId | 要集成的多个看板对象定义, 分享链接集成不需要boardId |
filters | 参考filters |
locale | 多语言支持,只会影响系统菜单项 |
其他参数 | 其他参数可以用于全局变量,局部变量variables, 可以覆盖全局变量 |
# 大屏组集成传参
通过分享功能生成集成地址
# URL 变量解释
Key | Description |
---|---|
认证 | shareid, username/password, token, 通过大屏组分享生成 |
boardId | 通过shareid集成不需要传递该参数 |
filters | 大屏组需要传递多个看板参数,所以格式和单看板参数有所不同具体参考下方说明 |
locale | 多语言支持,只会影响系统菜单项 |
其他参数 | 其他参数可以用于全局变量,局部变量variables, 可以覆盖全局变量 |
# filters参数格式
可以通过分享窗口中的URL参数工具
提取生成, filter加入url中需要encode,参数项目中的name属性可以不要,参数匹配通过id关联
{
boardParams: [{
boardId: xxx,
filters: [{"id":"5chiv3mmalw","name":"国家","type":"=","values":["美国"]}]
}]
}
2
3
4
5
6
# 移动端单看板集成
http://ibi—ip:port/mobile部署地址/render.html?boards=xxx
Key | Description |
---|---|
认证 | 参考集成认证 |
boardId | 通过shareid集成不需要传递该参数 |
filters | 参考filters |
locale | 多语言支持,只会影响系统菜单项 |
其他参数 | 其他参数可以用于全局变量,局部变量variables, 可以覆盖全局变量 |
# 移动端多看板集成
http://ibi—ip:port/mobile部署地址/render.html?boards=xxx
# URL 变量解释
Key | Description |
---|---|
认证 | 参考集成认证 多看板集成不支持shareid |
boards | 要集成的多个看板对象定义, 与PC端多看板集成一致, 格式 |
locale | 多语言支持,只会影响系统菜单项 |
其他参数 | 其他参数可以用于全局变量,局部变量variables, 可以覆盖全局变量 |
# 移动端专题分析集成
http://ibi—ip:port/mini-app.html?id=appId
# URL 变量解释
Key | Description |
---|---|
认证 | 参考集成认证 不支持shareid |
id | 专题分析id |
其他参数 | 其他参数可以用于全局变量,局部变量variables, 可以覆盖全局变量 |