以 iframe 形式嵌入看板

2021-6-29 About 21 min

# 以 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]
1

在外部系统集成方面, 通过看板分享功能, 利用该功能可以生成一个外部能够访问到的链接, 操作如下:

自由布局看板 → 分享 → 选择一个分享链接有效期限 → 点击 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
1
2

# hiddenPNames

控制参数栏中的指定参数隐藏,传递参数名数组, 如下面的请求可以把看板上名称为用户的参数隐藏,以防止用户修改,

http://localhost:8088/render.html?shareid=N9SYIQ9r&hiddenPNames=['用户']
1

参数名称单引号、双引号都能兼容

# showTitle

控制是否显示看板原始标题

http://localhost:8088//render.html?shareid=N0zt6xJw&showTitle=false#/
1

# showExport

http://localhost:8088//render.html?shareid=N0zt6xJw&showExport=true#/
1

# filters

看板参数的状态可以通过传递一个 json 对象设定(一般用户可由外部集成系统代码生成),具体格式如下:

{
    "boardParams": [
        {
            "id": "mpgxi01ev6k",
            "name": "用户",
            "type": "=",
            "values": ["aaa", "bbb"]
        },
        {
            "id": "2khmtv1s63p",
            "name": "用户名",
            "type": "=",
            "values": []
        }
    ]
}
1
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
1
2
3
4

# locale

系统菜单项多语言支持

http://localhost:8088//render.html?shareid=N0zt6xJw&showExport=true&locale=en#/
1

# PC端单个图表集成

单个图表集成url地址格式如下

集成认证

认证信息推荐token认证

http://ibi—ip:port/appname/render.html?widgetId=xxx
1

# PC端单个复杂报表集成

单个复杂报表集成url地址格式如下

集成认证

认证方式推荐token认证

http://ibi—ip:port/appname/render.html?reportId=xxx
1

# PC端主题分析集成

主题分析集成格式如下,id参数为主题分析的id

集成认证

认证方式推荐token认证

http://ibi—ip:port/appname/mini-app.html?id=appId
1

# PC端一次集成多个网格看板

集成url地址格式如下

http://ibi—ip:port/appname/render-lite.html?boards=[json数组]&其他变量定义
1

# 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: '美国'
        }
    },
    ...
]
1
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
1

# 大屏集成url

http://ibi—ip:port/appname/cockpit.html?boardId=id&其他变量定义
1

# 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":["美国"]}]
    }]
}
1
2
3
4
5
6

# 移动端单看板集成

http://ibi—ip:port/mobile部署地址/render.html?boards=xxx
1
Key Description
认证 参考集成认证
boardId 通过shareid集成不需要传递该参数
filters 参考filters
locale 多语言支持,只会影响系统菜单项
其他参数 其他参数可以用于全局变量,局部变量variables, 可以覆盖全局变量

# 移动端多看板集成

http://ibi—ip:port/mobile部署地址/render.html?boards=xxx
1

# URL 变量解释

Key Description
认证 参考集成认证 多看板集成不支持shareid
boards 要集成的多个看板对象定义, 与PC端多看板集成一致, 格式
locale 多语言支持,只会影响系统菜单项
其他参数 其他参数可以用于全局变量,局部变量variables, 可以覆盖全局变量

# 移动端专题分析集成

http://ibi—ip:port/mini-app.html?id=appId
1

# URL 变量解释

Key Description
认证 参考集成认证 不支持shareid
id 专题分析id
其他参数 其他参数可以用于全局变量,局部变量variables, 可以覆盖全局变量
Last update: February 17, 2025 15:53