DataGear 制作联动异步加载图表的数据可视化看板
通过DataGear的参数化数据集、图表事件处理和看板API功能,可以很方便地制作联动异步加载图表的数据可视化看板。
首先,新建一个参数化SQL数据集,如下所示:
SELECT
COL_NAME, --地区名
COL_VALUE, --地区指标数值
FROM
T_ANALYSIS
WHERE
<#if 上级地区名??>
COL_PARENT='${上级地区名}'
<#else>
COL_PARENT='中国'
</#if>
参数:
名称 类型 必填
上级地区名 字符串 否
T_ANALYSIS表数据示例:
COL_NAME COL_VALUE COL_PARENT
山东 160 中国
北京 200 中国
...
朝阳区 195 北京
海淀区 200 北京
...
青岛市 10 山东
济南市 160 山东
然后,使用上述数据集,新建两个图表,第一个是展示全国指标的地图图表:
图表类型:基本地图
数据集列标记:
COL_NAME:地区名称 (name)
COL_VALUE:指标数值 (value)
第二个是展示指定地区指标的柱状图:
图表类型:基本柱状图
数据集列标记:
COL_NAME:名称 (name)
COL_VALUE:数值 (value)
然后,新建可视化看板,填写如下看板模板内容:
<!DOCTYPE html>
<html dg-loadable-chart-widgets="[第二个图表ID]">
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
.dg-chart{
display: inline-block;
width: 600px;
height: 500px;
}
#loadChartWrapper{
position:absolute;
top:0;
left:650px;
width:400px;
height:300px;
box-shadow: 0px 0px 6px #474747;
-webkit-box-shadow: 0px 0px 6px #474747;
display:none;
}
#loadChart{
position:absolute;
top:2em;
left:0;
right:0;
bottom:0;
}
</style>
<script type="text/javascript">
function chartClickHandler(chartEvent)
{
//获取点击的地区名
var name = chartEvent.data.name;
$("#chartTitle").html(name);
//图表已加载,直接刷新数据
if(dashboard.renderedChart("loadChart"))
{
var chart = dashboard.chartOf("loadChart");
chart.dataSetParamValueFirst(0, name);
chart.refreshData();
$("#loadChartWrapper").show();
}
//图表未加载
else
{
dashboard.loadChart($("#loadChart"), "[第二个图表ID]",function(chart)
{
chart.dataSetParamValueFirst(0, name);
$("#loadChartWrapper").show();
});
}
}
$(function()
{
$("#removeChartBtn").click(function()
{
dashboard.removeChart("loadChart");
$("#loadChartWrapper").hide();
});
});
</script>
</head>
<body class="dg-dashboard">
<div style="position: absolute;left:1;top:1;font-size:12px;">
DataGear <br>
http://www.datagear.tech
</div>
<div style="font-size:2em;text-align:center;margin-bottom:5px;">DataGear 看板示例</div>
<p> </p>
<div style="position:relative;">
<div class="dg-chart" dg-chart-on-click="chartClickHandler"
dg-chart-disable-setting="true"
dg-chart-widget="[第一个图表ID]">
<!--全国指标--></div>
<div id="loadChartWrapper">
<div id="chartTitle" style="position:absolute;top:2px;left:4px;font-weight:bold;"></div>
<button id="removeChartBtn" style="position:absolute;top:2px;right:2px;">X</button>
<div id="loadChart" dg-chart-disable-setting="true"
dg-chart-options="{title:{show:false},legend:{show:false},grid:{top:30}}">
<!--待加载的图表元素--></div>
</div>
</div>
</body>
</html>
点击【保存并展示】按钮,打开看板展示页面,完成!!!
注意,上述模板中的“[第一个图表ID]”、“[第二个图表ID]”要替换为实际的ID。
效果图如下所示:

源码地址:
Gitee:https://gitee.com/datagear/datagear
Github:https://github.com/datageartech/datagear
DataGear 制作联动异步加载图表的数据可视化看板的更多相关文章
- 使用getJSON()方法异步加载JSON格式数据
使用getJSON()方法异步加载JSON格式数据 使用getJSON()方法可以通过Ajax异步请求的方式,获取服务器中的数组,并对获取的数据进行解析,显示在页面中,它的调用格式为: jQuery. ...
- 异步加载回来的数据不受JS控制了
写成下面这种方式时,异步加载回来的数据不受JS控制 $(."orderdiv").click(function(){ $(this).find(".orderinfo&q ...
- Unity跳转场景进度条制作教程(异步加载)
Unity跳转场景进度条制作 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享 ...
- jsTree 的简单用法--异步加载和刷新数据
首先这两个文件是必须要引用的,还有就是引用 jQuery 文件就不说了: <link href="/css/plugins/jsTree/style.min.css" rel ...
- 【vue】获取异步加载后的数据
异步请求的数据,对它做一些处理,需要怎么做呢?? axios 异步请求数据,得到返回的数据, 赋值给变量 info .如果要对 info 的数据做一些处理后再赋值给 hobby ,直接在 axios ...
- 实用ExtJS教程100例-010:ExtJS Form异步加载和提交数据
ExtJS Form 为我们提供了两个方法:load 和 submit,分别用来加载和提交数据,这两个方法都是异步的. 系列ExtJS教程持续更新中,点击查看>>最新ExtJS教程目录 F ...
- jquery.datatable.js与CI整合 异步加载(大数据量处理)
http://blog.csdn.net/kingsix7/article/details/38928685 1.CI 控制器添加方法 $this->show_fields_array=arra ...
- LayUi 树形组件tree 实现懒加载模式,展开父节点时异步加载子节点数据
LayUi框架中树形组件tree官方还在持续完善中,目前最新版本为v2.5.5 官方树形组件目前还不支持懒加载方式,之前我修改一版是通过reload重载实例方法填充子节点数据方式,因为递归页面元素时存 ...
- antd二级联动异步加载
/** * Created by Admin on 2016/9/19. * 批量导入 */ import React, {Component, PropTypes} from "react ...
- Angular4中利用promise异步加载gojs
GoJS是一个实现交互类图表(比如流程图,树图,关系图,力导图等等)的JS库 gojs提供了angular的基本例子,不过是离线版 https://github.com/NorthwoodsSoftw ...
随机推荐
- UOS可能的来源
1050a 行业版 是基于 阿里的Anolis 1050d 企业版 是基于debian 1050e 欧拉版 是基于华为欧拉 euler
- 文心一言 VS 讯飞星火 VS chatgpt (186)-- 算法导论14.1 3题
三.用go语言,写出OS-SELECT的非递归版本. 文心一言: 下面是使用Go语言编写的OS-SELECT的非递归版本: func OS_SELECT(T *Node, k int) *Node { ...
- 从DevOps状态报告看技术团队的文化建设
本文源自一次内部分享,借由此机会又把历年的DevOps状态报告翻看了一遍,其实大多数时候我们对于DevOps的理解都在于流程,工具,实践这些看得见摸得着的东西,但就像文末的几点思考所说的那样,我们一直 ...
- git日志输出相关命令
git log 默认输出所有的日志 git log 默认输出所有的日志 git 日志输出--只看最近的两条或者三条 有些时候我们可能只需要看最近的2或者3条日志 git log -2 日志输出--只看 ...
- 【发现一个小问题】坑爹的官方日志库`golang.org/x/exp/slog`,凭啥不让我设置debug级别日志
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 一个代码使用了官方的日志库"golang.org ...
- Golang并发控制方式有几种?
Go语言中的goroutine是一种轻量级的线程,其优点在于占用资源少.切换成本低,能够高效地实现并发操作.但如何对这些并发的goroutine进行控制呢? 一提到并发控制,大家最先想到到的是锁.Go ...
- Unity2019使用Gradle命令行(编译)出安卓包
在我所经历的项目组中有这几种方法来生成APK 直接在Unity生成APK,可以接入SDK 使用Unity导出Android Studio工程手动生成APK 使用Unity导出Android Studi ...
- Collectors.toMap的暗坑与避免方式
使用Java的stream中的Collectors可以很方便地做容器间的转换,可以少写很多代码.但是其中有暗含的坑需要注意和避免,本文探讨Collectors.toMap(JDK8版本). Colle ...
- Oracle私网mtu滚动修改实施方案
之前测试遇到过mtu修改不能滚动的情况,目前在自己测试环境重新反复验证发现正常是可以滚动的,下面梳理下整个实施方案: 环境:RHEL6 + Oracle 11.2.0.4 RAC(2 nodes) / ...
- Sliver C2 实战 vulntarget-f
网络拓扑 host ip1 ip2 ubuntu(自用) 192.168.130.14 / centos 192.168.130.3 10.0.10.2 ubuntu1 10.0.10.3 10. ...