通过DataGear的参数化数据集和看板API功能,可以很方便地制作包含时序图表的看板。
首先,以时间为参数,新建一个参数化SQL数据集:
1SELECT 2 COL_TIME, 3 COL_VALUE 4FROM 5 T_TIME_SERIES 6<#if 时间??> 7WHERE 8 COL_TIME > '${时间}' 9</#if> 10ORDER BY 11 COL_TIME ASC 12<#if 时间??> 13LIMIT 0, 1 14<#else> 15LIMIT 0, 5 16</#if>
参数:
1名称 类型 必填 2时间 字符串 否
上述数据集在未指定时间参数时加载最初的5条数据,指定了时间参数时,则加载一条数据。
然后,新建一个使用上述数据集的折线图图表:
1图表类型:平滑折线图 2数据集列标记:COL_TIME:名称 (name);COL_VALUE:数值 (value) 3更新间隔:1000毫秒
然后,新建可视化看板,填写如下看板模板内容:
1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>测试-时序图表</title> 6<style type="text/css"> 7.dg-chart{ 8 display: inline-block; 9 width: 60%; 10 margin-left: 20%; 11 height: 400px; 12} 13</style> 14<script type="text/javascript"> 15//存储时序窗口内要显示的数据 16var timeSeriesData = []; 17var chartListener= 18{ 19 onUpdate: function(chart, results) 20 { 21 var result = results[0]; 22 var data = result.data; 23 24 if(data.length > 0) 25 { 26 if(timeSeriesData.length == 0) 27 timeSeriesData = data; 28 else 29 { 30 timeSeriesData = timeSeriesData.concat(data); 31 //限定时序窗口数据量为10 32 while(timeSeriesData.length > 10) 33 timeSeriesData.shift(); 34 } 35 36 //设置图表下一次刷新时取数的时间参数 37 var nextTimeParam = data[data.length - 1]["COL_TIME"]; 38 chart.dataSetParamValue(0, 0, nextTimeParam); 39 } 40 41 result.data = timeSeriesData; 42 } 43}; 44</script> 45</head> 46<body class="dg-dashboard"> 47 <div style="position: absolute;left:1;top:1;font-size:12px;"> 48 DataGear <br> 49 http://www.datagear.tech 50</div> 51<div style="font-size:2em;text-align:center;margin-bottom:5px;">DataGear 看板示例</div> 52<p> </p> 53<div class="dg-chart" 54 dg-chart-listener="chartListener" 55 dg-chart-disable-setting="true" 56 dg-chart-widget="[上述图表ID]"></div> 57</body> 58</html>
点击[保存并展示]按钮,打开看板展示页面,完成!!!
效果图如下所示:

源码地址:
Gitee:https://gitee.com/datagear/datagear