DataGear 制作基于Vue2、Element UI弹窗效果的数据可视化看板

news2024/11/25 6:58:55

DataGear 在4.4.0版本新增了dg-chart-manual-render特性,用于手动控制看板内图表的渲染,而非在页面加载时自动渲染。利用这一特性,可以很方便制作具有弹窗效果的数据可视化看板。

本文以Vue2、Element UI 前端框架为例,介绍如何制作具有弹窗效果的数据可视化看板。

假设有数据库表t_analysis,其中存储了各省、市的指标数据,数据结构为:

COL_NAME,  COL_VALUE,  COL_PARENT
北京,      200,        中国
内蒙古,    50,         中国
辽宁,      100,        中国
山东,      160,        中国
山西,      160,        中国
河北,      230,        中国
海淀区,    200,        北京
昌平区,    160,        北京
西城区,    180,        北京
怀柔区,    130,        北京
朝阳区,    195,        北京
济南市,    160,        山东
德州市,    80,         山东
烟台市,    40,         山东
青岛市,    10,         山东
...

首先,新建一个参数化SQL数据集,用于查询指定地区的指标,如下所示:

SELECT
    COL_NAME,
	COL_VALUE
FROM
    t_analysis
WHERE
<#if 上级地区??>
    COL_PARENT='${上级地区}'
<#else>
    COL_PARENT='中国'
</#if>

参数为:

名称         类型     必填
上级地区    字符串   否

此数据集在传入了上级地区参数后,查询指定地区内的指标,默认查询上级地区为中国的指标。

然后,新建两个关联上述数据集的图表:

第一个是展示全国指标的地图图表:

图表类型:基本地图
数据集列标记:
COL_NAME:地区名称 (name)
COL_VALUE:指标数值 (value)

第二个是展示指定地区指标的柱状图:

图表类型:基本柱状图
数据集列标记:
COL_NAME:名称 (name) 
COL_VALUE:数值 (value) 

然后,新建空白看板,填写名称后,先保存。

在编写看板页面之前,需要先下载 Vue2、Element UI 库,加入看板资源中。

Vue2下载地址:

https://unpkg.com/vue@2.7.14/dist/vue.min.js

Element UI下载地址:

https://unpkg.com/element-ui@2.15.12/lib/theme-chalk/index.css

https://unpkg.com/element-ui@2.15.12/lib/index.js

https://unpkg.com/element-ui@2.15.12/lib/theme-chalk/fonts/element-icons.woff

加入后的看板资源如下所示:

index.html
lib/
  |-- element-ui@2.15.12/
        |-- index.js
        |-- theme-chalk/
              |-- fonts/
                    |-- element-icons.woff
              |-- index.css
  |-- vue@2.7.14/
        |-- vue.min.js

加入看板资源后,编写index.html内容如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="lib/element-ui@2.15.12/theme-chalk/index.css">
<script src="lib/vue@2.7.14/vue.min.js"></script>
<script src="lib/element-ui@2.15.12/index.js"></script>
<script>
//地图图表的点击处理函数
function chartClickHandler(chartEvent)
{
  let vueApp = dashboard.vueApp;
  
  vueApp.dialogTitle = chartEvent.data.name;
  vueApp.dialogVisible = true;
  //保存点击的地区名,下面将作为参数传递
  vueApp.dialogChartParam = chartEvent.data.name;
}
</script>
</head>
<body dg-chart-auto-resize="true">
<div id="app">
  <h1 style="text-align:center;">DataGear看板示例</h1>
  <div dg-chart-on-click="chartClickHandler" dg-chart-options="{series:[{select:{disabled:true}}]}"
    dg-chart-disable-setting="true" dg-chart-widget="第一个图表ID" style="width:40%;height:60vh;">
  </div>
  <el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="40%" @opened="onDialogOpened" @closed="onDialogClosed">
    <div id="dialogChart" dg-chart-manual-render="true" dg-chart-widget="第二个图表ID"
	  dg-chart-disable-setting="true" dg-chart-options="{title:{show:false},legend:{show:false},grid:{top:30}}"
	  style="height:50vh;">
    </div>
  </el-dialog>
</div>
</body>
</html>
<script>
new Vue(
{
  el: '#app',
  data()
  {
    let d =
    {
      dialogTitle: "",
      dialogVisible: false,
      dialogChartParam: ""
    };
    return d;
  },
  mounted()
  {
    dashboard.vueApp = this;
  },
  methods:
  {
    onDialogOpened()
    {
	  //打开对话框后设置图表参数并执行渲染
      let dialogChart = dashboard.chartOf("dialogChart");
      dialogChart.dataSetParamValueFirst(0, this.dialogChartParam);
      dialogChart.render();
    },
    onDialogClosed: function()
    {
	  //关闭对话框后销毁图表
      let dialogChart = dashboard.chartOf("dialogChart");
      dialogChart.destroy();
    }
  }
});
</script>

保存,看板制作完成!

效果图如下所示:
在这里插入图片描述

官网地址:

http://www.datagear.tech

源码地址:

Gitee:https://gitee.com/datagear/datagear

Github:https://github.com/datageartech/datagear

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/168199.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言】通讯录—静态版

前言: 刚学完结构体和枚举&#xff0c;在网上找了个通讯录的项目&#xff0c;用来练手 目标:该通讯录可存储千人个人信息 包括:姓名&#xff0c;年龄&#xff0c;性别&#xff0c;电话&#xff0c;地址 实现功能: 1.添加联系人 2.删除联系人 …

Web 安全漏洞之 XSS 攻击

什么是 XSS 攻击 XSS&#xff08;Cross-Site Scripting&#xff09;又称跨站脚本&#xff0c;XSS的重点不在于跨站点&#xff0c;而是在于脚本的执行。XSS是一种经常出现在 Web 应用程序中的计算机安全漏洞&#xff0c;是由于 Web 应用程序对用户的输入过滤不足而产生的。 常…

MyBatis -- 多表查询

MyBatis -- 多表查询一、准备工作二、多表查询属性名与字段名不匹配一、准备工作 博客系统场景。 创建库、表&#xff1a; -- 创建数据库 drop database if exists mycnblog; create database mycnblog DEFAULT CHARACTER SET utf8mb4;-- 使用数据数据 use mycnblog;-- 创建…

小程序样式和组件基础

小程序样式和组件基础小程序样式样式wxss简介响应式单位rpx其它css单位支持的单位内置组件简介image组件-基础组件介绍常用属性示例image组件-懒加载与基础库版本用法swiper组件组件介绍常用属性示例navigator组件-基础组件介绍常用属性示例navigator组件-页面栈页面栈返回按钮…

常用windows自带程序对应的命令

敲winr键&#xff0c;调出 运行 框&#xff1b; 输入命令回车&#xff0c;打开对应程序&#xff1b; 输入cmd&#xff0c;调出命令行窗口&#xff1b; gpedit&#xff0c;组策略编辑器&#xff0c; 有的电脑没有组策略编辑器&#xff1b; 资源管理器&#xff1b; dvdplay&…

【BP靶场portswigger-客户端15】基于DOM的漏洞-7个实验(全)

前言&#xff1a; 介绍&#xff1a; 博主&#xff1a;网络安全领域狂热爱好者&#xff08;承诺在CSDN永久无偿分享文章&#xff09;。 殊荣&#xff1a;CSDN网络安全领域优质创作者&#xff0c;2022年双十一业务安全保卫战-某厂第一名&#xff0c;某厂特邀数字业务安全研究员&…

使用PyTorch构建GAN生成对抗网络源码(详细步骤讲解+注释版)02 人脸识别 上

文章目录1 数据集描述2 GPU设置3 设置Dataset类4 设置辨别器类5 辅助函数与辅助类1 数据集描述 此项目使用的是著名的celebA&#xff08;CelebFaces Attribute&#xff09;数据集。其包含10,177个名人身份的202,599张人脸图片&#xff0c;每张图片都做好了特征标记&#xff0c…

【数据结构】顺序表的原理及实现

1.什么是顺序表 顺序表是用一段物理地址连续的存储单元进行存储元素的线性结构&#xff0c;通常是以数组进行存储。通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系。 2.顺序表的实现 判断顺序表是否为空表public boolean isEmpty()判断顺序表是否满publi…

复旦MBA海外短期课程 | 善用ESG金融,共创可持续未来

2022年&#xff0c;世界在颠簸中向前迈进&#xff1a;全球气候变化、能源危机、大国博弈……在这样的背景下&#xff0c;近年来备受瞩目的ESG价值、“双碳”目标、可持续发展、责任投资等话题愈发成为焦点。今年复旦MBA培养体系全面升级之际&#xff0c;在新增的“未来发展模块…

Pandas CSV 文件

Pandas CSV 文件CSV&#xff08;Comma-Separated Values&#xff0c;逗号分隔值&#xff0c;有时也称为字符分隔值&#xff0c;因为分隔字符也可以不是逗号&#xff09;&#xff0c;其文件以纯文本形式存储表格数据&#xff08;数字和文本&#xff09;。CSV 是一种通用的、相对…

【沐风老师】3dMax一键生成中央空调排风口插件使用教程

3dMax一键创建中央空调排风口插件&#xff0c;快捷生成矩形或菱形两种形状的排风口。 【版本要求】 不确定。3dmax2020环境测试可用&#xff0c;其他版本自行测试&#xff0c;欢迎反馈测试结果。 【安装方法】 方法一&#xff1a;拖动插件文件到3dMax窗口打开。 方法二&#x…

ESP32相关知识点

1.vs code代码回退到上一步: 方法1:在Windows中可以使用快捷键“Alt←”实现 方法2:利用vs code界面操作&#xff0c;Go-Back 2.设置vs code下ESP-IDF Monitor Device的波特率。 步骤Manage-New Code update available------Command Palette 弹出对话框 搜索或选择:ESP-IDF:SD…

基于Androidstudio的打车拼车app

需求信息&#xff1a; 客户端&#xff1a; 1&#xff1a;注册和登录:用户信息录入与登录。 2&#xff1a;修改密码:用户忘记密码可在此处找回。 3&#xff1a;地图功能:提供城市地图&#xff0c;能被自由移动、放大和缩小。 4&#xff1a;自身定位:获取用户位置信息&#xff0c…

STM-PWM采集

输入捕获分为两种方式进行捕获 1、pwm输入捕获:精度高&#xff0c;每个定时器只能采集一个pwm&#xff0c;且只能使用通道1、通道2。 2、通用输入捕获&#xff1a;相对比较精确&#xff0c;每个定时器可以采集多个pwm&#xff0c; 1、pwm输入捕获使用教程如下&#xff1a; 参…

Vue 快速入门(一)

1、介绍 Vue(读音/vju/&#xff0c;类似view)&#xff0c;是中国的大神尤雨溪开发的&#xff0c;为数不多的国人开发的世界顶级开源软件。是一套用于构建用户界面的渐进式框架&#xff0c;Vue 被设计为可以自底向上逐层应用。MVVM响应式编程模型&#xff0c;避免直接操作DOM&am…

虹科分享 | HPC调度解决方案:HK-Adaptive在数字卫星图像领域的应用

2011年3月11日&#xff0c;日本海岸附近发生了9.0级地震。这次地震引发了强大的海啸&#xff0c;并向内陆传播了6英里&#xff0c;不仅使地球的轴心偏移了大约10到25厘米&#xff0c;还导致福岛核电站发生核紧急情况。 为了减少这场灾害的损失&#xff0c;不同国家的不同组织以…

浅谈虚拟电厂与企业微电网数字化建设

安科瑞 华楠摘要&#xff1a;2023年1月8日&#xff0c;微信公众号鱼眼看电改(作者俞庆)发表了文章《虚拟电厂与负荷侧数字化》&#xff0c;原文如下&#xff1a;“虚拟电厂是电力数字化的一个应用方向&#xff0c;准确的说&#xff0c;是负荷侧数字化的发展方向。所以负荷侧数字…

NetSuite Classifications的注意事项

Classifications&#xff0c;我们将之称为“分析维度”吧&#xff0c;这样更能体现其真正的用途。在NetSuite中标准的分析维度是“LDC&#xff08;Location、Department、Class&#xff09;”&#xff0c;这是NetSuite的特色。有些注意事项我们今天分享下。 1. LDC的用途区别 …

Django REST framework--Swagger API文档生成器

Django REST framework--Swagger API文档生成器swagger在线接口文档drf-yasg安装与配置安装drf-yasg配置drf-yasg互动模式文档模式定制化用法&#xff08;viewset模式&#xff09;修饰视图装饰器api_view修饰视图集swagger在线接口文档 目前为止&#xff0c;接口开发到了一定的…

Spring AOP【统一异常处理与统一数据格式封装】

Spring AOP【统一异常处理与统一格式封装】&#x1f34e;一.统一异常处理&#x1f352;1.1 实现一个异常方法&#x1f352;1.2 统一处理异常代码的实现&#x1f352;1.3 统一处理所有异常&#x1f34e;二.统一格式封装&#x1f352;2.1 实现一个返回数据方法&#x1f352;2.2 统…