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 ...
随机推荐
- vim 复制代码的方法
之前vim 复制代码 总是格式变错乱了 尤其是yaml文件 有的还带注释 非常痛苦 今天早上查了下 原来处理的方式非常简单 增加一个参数就可以了 方法为 1. vim 打开一个文件 2.输入 :se ...
- sed 删除部分行以及删除包含某些行的命令
sed的简单学习 前言: 最近进行mysql数据库的备份恢复操作,发现source 命令执行时数据库表的速度非常缓慢, 本来想通过这种方式处理一下,能够减少数据备份的处理. 删除包含内容的信息 sed ...
- Vue3中hook的简单使用
创建文件夹 在src下创建文件夹.文件名称为hooks. hooks下的文件夹下,是你的封装的hook: 通过命名为useXXXXXX usexy.js 文件是封装的获取屏幕的坐标 import { ...
- 官宣!Python 开发者大会(PyCon US)提供在线订阅啦!
今年一开年,我们就遇到了一个天大的"黑天鹅"事件,如今它已蔓延成为了一个全球性事件,而且似乎还要持续一段挺长的时间. 各行各业的人们都受到了牵连,各种计划和安排也要被迫作出调整.今 ...
- 用python进行精细中文分句(基于正则表达式),HarvestText:文本挖掘和预处理工具
1.用python进行精细中文分句(基于正则表达式) 中文分句,乍一看是一个挺简单的工作,一般我们只要找到一个[.!?]这类的典型断句符断开就可以了吗. 对于简单的文本这个做法是已经可行了 ...
- MySQL 之单表查询(精简笔记)
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RD ...
- C/C++ 反汇编:分析类的实现原理
反汇编即把目标二进制机器码转为汇编代码的过程,该技术常用于软件破解.外挂技术.病毒分析.逆向工程.软件汉化等领域,学习和理解反汇编对软件调试.系统漏洞挖掘.内核原理及理解高级语言代码都有相当大的帮助, ...
- P3509 [POI2010] ZAB-Frog 题解
题目链接:ZAB-Frog 基于一个根据距离第 \(k\) 大的事实: 容易知道,对于红色的点而言,与它相近最近的 \(k\) 个点是连续的.而第 \(k\) 远的要么是最左侧要么是最右侧.而我们注意 ...
- 哈希表(HashMap)与字符串哈希
哈希表 哈希表是一种通过映射来快速查找的数据结构.其通过键值对(key-value)来存储.一个数据通过哈希函数的运算来生成一个属于他自己的键值,尔后将其与键值绑定.当我们想查找这个数据时,就可以直接 ...
- XD刷机中执行reclaimdisks.sh的作用
之前刷机提到在使用OEDA进行一键部署前,需先在所有DB节点上运行reclaimdisks.sh,也提到观察会释放pvs/vgs/lvs相对应的剩余空间. 本文以一套X8环境为例,来看下具体的表现,以 ...