如何通过传递参数让大屏展示不同的数据
摘要: 大屏分享之后的链接,可以通过添加传参,来做到显示不同的数据,本文介绍如果实现。 本文内容基于山海鲸可视化软件操作,您可先免费下载山海鲸可视化后再阅读本文。 下载山海鲸可视化软件
山海鲸可视化的分享链接支持传入自定义参数,参数可以透传给数据源(目前支持API和使用SQL语句的数据库),数据源针对不同参数,返回不同的数据,就可以达到同一个大屏展示不同数据的效果。下面分别举例说明:
1. 使用API数据源
我们现在有一个API数据源(http://test.shanhaibi.com/demo_params.php),返回结果如下:
我们用这个API数据源制作一个简单的大屏,托管后链接为 http://share.shanhaibi.com/share/param-demo/ ,如下:
如果访问大屏时加上参数 a=2&text=哈哈
,则这个参数会透传给API,实际访问的API也会自动加上这些参数:
大屏链接: https://share.shanhaibi.com/share/param-demo/?a=2&text=哈哈
API 链接: http://test.shanhaibi.com/demo_params.php?a=2&text=哈哈
API返回结果如下:
这时候大屏的数据就会变成上面返回的数据,如下:
备注:API数据源需要对传参作相应处理,返回不同的数据,同时还需要保持数据结构不变。
2. 使用SQL语句的数据库(1.3.7版本开始支持)
现在数据库中有一个user表,表中数据如下:
在山海鲸可视化中添加SQL语句,如下:
3个SQL语句分别如下:
select * from user where name = {name:’张三‘}
select * from user where time>{start:0} and time<{end:1623772800}
select * from user where name like {name_like:’张%‘} and type={type:3}
可以看出,这些SQL语句比较特殊,里面定义了参数和默认值,其中红色的为参数名,绿色的为默认值。
软件会根据大屏传过来的参数对SQL语句参数和默认值部分进行替换处理后,再进行查询。
如果大屏不传参数,则实际执行的SQL语句分别为:
select * from user where name = ‘张三’
select * from user where time>0 and time<1623772800
select * from user where name like ‘张%’ and type=3
如果大屏传参,参数为
name: 李四
start: 1634428800
end: 1637116392
name_like: %三
type: 1
则实际执行的SQL语句分别为:
select * from user where name = ‘李四’
select * from user where time>1634428800 and time<1637116392
select * from user where name like ‘%三’ and type=1