大屏可视化(VUE2 + DataV)

news2025/1/16 17:02:27

准备:安装vue脚手架(vue/cli),创建vue2项目,安装dataV,在main.js入口文件中引入dataV。

dataV地址:DataV

一、dataV安装

npm install @jiaminghi/data-view

二、main.js

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import dataV from '@jiaminghi/data-view'

import '@/assets/css/index.css'

Vue.use(dataV)
Vue.config.productionTip = false

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')

三、app.vue

<template>
  <div id="app">
    <router-view/>
  </div>
</template>

四、route => index.js

import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

const routes = [
  {
    path: '/',
    name: 'home',
    component: () => import('../views/HomeView.vue')
  }
]

const router = new VueRouter({
  routes
})

export default router

五、views => HomeView.vue

<template>
  <div class="content bg">
    <!-- 全屏容器 -->
    <dv-full-screen-container>
      <!-- 第一行 -->
      <div class="module_box" style="height: 10vh;">
        <div style="flex: 0 1 30%;">
          <dv-decoration-10 style="width:100%;height:50px;" />
        </div>
        <div style="flex: 0 1 40%;">
          <div style="display: flex;width: 100%;">
            <dv-decoration-8 style="width:300px;height:50px;flex:1;transform: rotateY(180deg);" />
            <dv-decoration-11 style="width:200px;height:60px;flex:1">数据中心</dv-decoration-11>
            <dv-decoration-8 style="width:300px;height:50px;flex:1" />
          </div>
        </div>
        <div style="flex: 0 1 30%;">
          <dv-decoration-10 style="width: 100%;height:50px;transform: rotateY(180deg);" />
        </div>
      </div>

      <!-- 第二行 -->
      <div class="module_box" style="height: 60vh;">
        <!-- flex布局 一行四个 各占25% -->
        <!-- 左 -->
        <div style="flex: 0 1 25%;">
          <dv-border-box-13 style="width: 100%;height: 33.33%;">
            <dv-capsule-chart :config="config1" style="width:95%;height:95%" />
          </dv-border-box-13>
          <dv-border-box-1 style="width: 100%;height: 33.33%;">
            <dv-water-level-pond :config="config3" style="width:90%;height:86%" />
          </dv-border-box-1>
          <dv-border-box-2 style="width: 100%;height: 33.33%;">
            <dv-conical-column-chart :config="config5" style="width:90%;height:90%;" />
          </dv-border-box-2>
        </div>
        <!-- 中 -->
        <div style="flex: 0 1 50%;">
          <dv-border-box-12 style="width: 100%;height: 100%">
            <dv-flyline-chart-enhanced :config="config4" style="width:95%;height:95%" />
          </dv-border-box-12>
        </div>
        <!-- 右 -->
        <div style="flex: 0 1 25%;">
          <dv-border-box-1 style="width: 100%;height: 33.33%">
            <dv-scroll-board :config="config6" style="width:90%;height:80%" />
          </dv-border-box-1>
          <dv-border-box-8 style="width: 100%;height: 66.66%">
            <dv-capsule-chart :config="config2" style="width:100%;height:90%" />
          </dv-border-box-8>
        </div>
      </div>

      <!-- 第三行 -->
      <div class="module_box" style="height: 30vh;">
        <!-- flex布局 一行四个 各占25% -->
        <!-- 左 -->
        <div style="flex: 0 1 50%;">
          <dv-border-box-8 style="width: 100%;height: 200px;">
            <dv-scroll-ranking-board :config="config7" style="width:90%;height:100%" />
          </dv-border-box-8>
        </div>
        <!-- 中 -->
        <div style="flex: 0 1 25%;">
          <dv-border-box-13 style="width: 100%;height: 200px;">
            <dv-active-ring-chart :config="config8" style="width:100%;height:100%" />
          </dv-border-box-13>
        </div>
        <!-- 右 -->
        <div style="flex: 0 1 25%;">
          <dv-border-box-8 style="width: 100%;height: 200px;">
            <dv-charts :option="option" />
          </dv-border-box-8>
        </div>
      </div>
    </dv-full-screen-container>
  </div>
</template>

<script>

export default {
  name: 'HomeView',
  data() {
    return {
      config1: {
        data: [
          {
            name: '南阳',
            value: 167
          },
          {
            name: '周口',
            value: 67
          },
          {
            name: '漯河',
            value: 123
          },
          {
            name: '郑州',
            value: 55
          },
          {
            name: '西峡',
            value: 98
          },
        ],
      },
      config2: {
        data: [
          {
            name: '南阳',
            value: 167
          },
          {
            name: '周口',
            value: 123
          },
          {
            name: '漯河',
            value: 98
          },
          {
            name: '郑州',
            value: 75
          },
          {
            name: '西峡',
            value: 66
          },
        ],
        colors: ['#e062ae', '#fb7293', '#e690d1', '#32c5e9', '#96bfff'],
        unit: '单位',
        showValue: true
      },
      config3: {
        data: [66, 45],
        shape: 'roundRect'
      },
      config4: {
        points: [
          {
            name: '郑州',
            coordinate: [0.48, 0.35],
            halo: {
              show: true,
            },
            icon: {
              src: 'http://datav.jiaminghi.com/img/flylineChart/mapCenterPoint.png',
              width: 30,
              height: 30
            },
            text: {
              show: false
            }
          },
          {
            name: '新乡',
            coordinate: [0.52, 0.23]
          },
          {
            name: '焦作',
            coordinate: [0.43, 0.29]
          },
          {
            name: '开封',
            coordinate: [0.59, 0.35]
          },
          {
            name: '许昌',
            coordinate: [0.53, 0.47]
          },
          {
            name: '平顶山',
            coordinate: [0.45, 0.54]
          },
          {
            name: '洛阳',
            coordinate: [0.36, 0.38]
          },
          {
            name: '周口',
            coordinate: [0.62, 0.55],
            halo: {
              show: true,
              color: '#8378ea'
            }
          },
          {
            name: '漯河',
            coordinate: [0.56, 0.56]
          },
          {
            name: '南阳',
            coordinate: [0.37, 0.66],
            halo: {
              show: true,
              color: '#37a2da'
            }
          },
          {
            name: '信阳',
            coordinate: [0.55, 0.81]
          },
          {
            name: '驻马店',
            coordinate: [0.55, 0.67]
          },
          {
            name: '济源',
            coordinate: [0.37, 0.29]
          },
          {
            name: '三门峡',
            coordinate: [0.20, 0.36]
          },
          {
            name: '商丘',
            coordinate: [0.76, 0.41]
          },
          {
            name: '鹤壁',
            coordinate: [0.59, 0.18]
          },
          {
            name: '濮阳',
            coordinate: [0.68, 0.17]
          },
          {
            name: '安阳',
            coordinate: [0.59, 0.10]
          }
        ],
        lines: [
          {
            source: '新乡',
            target: '郑州'
          },
          {
            source: '焦作',
            target: '郑州'
          },
          {
            source: '开封',
            target: '郑州'
          },
          {
            source: '周口',
            target: '郑州',
            color: '#fb7293',
            width: 2
          },
          {
            source: '南阳',
            target: '郑州',
            color: '#fb7293',
            width: 2
          },
          {
            source: '济源',
            target: '郑州'
          },
          {
            source: '三门峡',
            target: '郑州'
          },
          {
            source: '商丘',
            target: '郑州'
          },
          {
            source: '鹤壁',
            target: '郑州'
          },
          {
            source: '濮阳',
            target: '郑州'
          },
          {
            source: '安阳',
            target: '郑州'
          },
          {
            source: '许昌',
            target: '南阳',
            color: '#37a2da'
          },
          {
            source: '平顶山',
            target: '南阳',
            color: '#37a2da'
          },
          {
            source: '洛阳',
            target: '南阳',
            color: '#37a2da'
          },
          {
            source: '驻马店',
            target: '周口',
            color: '#8378ea'
          },
          {
            source: '信阳',
            target: '周口',
            color: '#8378ea'
          },
          {
            source: '漯河',
            target: '周口',
            color: '#8378ea'
          }
        ],
        icon: {
          show: true,
          src: 'http://datav.jiaminghi.com/img/flylineChart/mapPoint.png'
        },
        text: {
          show: true,
        },
        k: 0.5,
        bgImgSrc: 'http://datav.jiaminghi.com/img/flylineChart/map.jpg'
      },
      config5: {
        data: [
          {
            name: '周口',
            value: 55
          },
          {
            name: '南阳',
            value: 120
          },
          {
            name: '西峡',
            value: 71
          },
          {
            name: '驻马店',
            value: 66
          },
          {
            name: '新乡',
            value: 80
          },
          {
            name: '信阳',
            value: 35
          },
          {
            name: '漯河',
            value: 15
          }
        ],
        img: [
          'http://datav.jiaminghi.com/img/conicalColumnChart/1st.png',
          'http://datav.jiaminghi.com/img/conicalColumnChart/2st.png',
          'http://datav.jiaminghi.com/img/conicalColumnChart/3st.png',
          'http://datav.jiaminghi.com/img/conicalColumnChart/4st.png',
          'http://datav.jiaminghi.com/img/conicalColumnChart/5st.png',
          'http://datav.jiaminghi.com/img/conicalColumnChart/6st.png',
          'http://datav.jiaminghi.com/img/conicalColumnChart/7st.png'
        ],
        showValue: true
      },
      config6: {
        header: ['列1', '列2', '列3'],
        data: [
          ['<span style="color:#37a2da;">行1列1</span>', '行1列2', '行1列3'],
          ['行2列1', '<span style="color:#32c5e9;">行2列2</span>', '行2列3'],
          ['行3列1', '行3列2', '<span style="color:#67e0e3;">行3列3</span>'],
          ['行4列1', '<span style="color:#9fe6b8;">行4列2</span>', '行4列3'],
          ['<span style="color:#ffdb5c;">行5列1</span>', '行5列2', '行5列3'],
          ['行6列1', '<span style="color:#ff9f7f;">行6列2</span>', '行6列3'],
          ['行7列1', '行7列2', '<span style="color:#fb7293;">行7列3</span>'],
          ['行8列1', '<span style="color:#e062ae;">行8列2</span>', '行8列3'],
          ['<span style="color:#e690d1;">行9列1</span>', '行9列2', '行9列3'],
          ['行10列1', '<span style="color:#e7bcf3;">行10列2</span>', '行10列3']
        ],
        index: true,
        columnWidth: [50],
        align: ['center']
      },
      config7: {
        data: [
          {
            name: '周口',
            value: 55123
          },
          {
            name: '南阳',
            value: 12022
          },
          {
            name: '西峡',
            value: 78932
          },
          {
            name: '驻马店',
            value: 63411
          },
          {
            name: '新乡',
            value: 44231
          }
        ],
        unit: '单位',
        valueFormatter({ value }) {
          console.warn(arguments)
          const reverseNumber = (value + '').split('').reverse()
          let valueStr = ''

          while (reverseNumber.length) {
            const seg = reverseNumber.splice(0, 3).join('')
            valueStr += seg
            if (seg.length === 3) valueStr += ','
          }

          return valueStr.split('').reverse().join('')
        }
      },
      config8: {
        radius: '40%',
        activeRadius: '45%',
        data: [
          {
            name: '周口',
            value: 55
          },
          {
            name: '郑州',
            value: 120
          },
          {
            name: '濮阳',
            value: 78
          },
          {
            name: '商丘',
            value: 66
          },
          {
            name: '苏州',
            value: 80
          }
        ],
        digitalFlopStyle: {
          fontSize: 20
        },
        showOriginValue: true
      },
      option: {
        title: {
          text: '表盘',
          style: {
            fill: '#fff'
          }
        },
        series: [
          {
            type: 'gauge',
            data: [{ name: 'itemA', value: 55 }],
            center: ['50%', '55%'],
            axisLabel: {
              formatter: '{value}%',
              style: {
                fill: '#fff'
              }
            },
            axisTick: {
              style: {
                stroke: '#fff'
              }
            },
            animationCurve: 'easeInOutBack'
          }
        ]
      }
    }
  }
}
</script>

<style>
.container {
  width: 100vw;
  height: 100vh;
  box-sizing: border-box;
}

#dv-full-screen-container {
  height: 100vh !important;
}
</style>

六、效果展示

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

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

相关文章

postgis mvt矢量切片 django drf mapboxgl

postgis mvt矢量切片 django drf mapboxgl 0.前提 [1] 静态的矢量切片可以采用 tippecanoe 生成&#xff0c;nginx代理&#xff0c;这种数据是不更新的&#xff1b; [2] 动态的矢量切片&#xff0c;一般采用postgis生成。基本上矢量切片80%的厂商都采用postgis&#xff0c;确实…

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)七:工作台界面实现

一、本章内容 本章实现工作台界面相关内容,包括echart框架引入,mock框架引入等,实现工作台界面框架搭建,数据加载。 1. 详细课程地址: 待发布 2. 源码下载地址: 待发布 二、界面预览 三、开发视频 基于VUE3+Layui从头搭建通用后台管理系统合集-工作台界面布局实现 五、…

大麦订单生成器 大麦一键生成订单

后台一键生成链接&#xff0c;独立后台管理 教程&#xff1a;修改数据库config/Conn.php 不会可以看源码里有教程 下载源码程序&#xff1a;https://pan.baidu.com/s/16lN3gvRIZm7pqhvVMYYecQ?pwd6zw3

上榜 Gartner | 中国领先的实时数据管理厂商 DolphinDB

在 Gartner 近日发布的 Hype Cycle for Data, Analytics and AI in China, 2023 报告中&#xff0c;DolphinDB 位列实时数据管理代表厂商。这是自去年 DolphinDB 入选 Gartner《中国数据库管理系统供应商甄选》后&#xff0c;又一次凭借领先的产品能力获得国际权威第三方分析机…

Python(五十九)字典的实现原理

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

【css】css实现水平和垂直居中

通过 justify-content 和 align-items设置水平和垂直居中&#xff0c; justify-content 设置水平方向&#xff0c;align-items设置垂直方向。 代码&#xff1a; <style> .center {display: flex;justify-content: center;align-items: center;height: 200px;border: 3px…

DM开启慢日志监控并用DmLog工具分析数据

工具描述 DMLOG用于对达梦SQL日志进行统计分析&#xff0c;便于SQL优化人员进行查看捕获关键信息&#xff0c;不提供SQL优化建议。DMLOG用java语言编写&#xff0c;不受操作系统平台限制&#xff0c;大小不超过10M&#xff0c;在安装好Java环境后&#xff0c;可在各平台运行。 …

全面了解CPU Profiler:解读CPU性能分析工具的核心功能与用法

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、使用3.1 通过调用系统API3.2 通过Android Stu…

填补5G物联一张网,美格智能快速推进RedCap商用落地

自5G R17版本标准冻结以来&#xff0c;RedCap一直引人注目。2023年更是5G RedCap突破性发展的一年&#xff0c;从首款5G RedCap调制解调器及射频系统——骁龙X35发布&#xff0c;到国内四大运营商发布RedCap技术白皮书&#xff0c;芯片厂商、模组厂商、运营商及终端企业都在积极…

MySQL索引题分析

前言&#xff1a;该篇随笔通过一些案例&#xff0c;对索引相关的题进行分析。 0.准备 #1.创建test表&#xff08;测试表&#xff09;。 drop table if exists test; create table test( id int primary key auto_increment, c1 varchar(10), c2 varchar(10), c3 varchar(10), …

KCC@南京开源读书会-开源大咖云聚南京等你来

KCC&#xff0c;全称 KAIYUANSHE City Community&#xff08;中文&#xff1a;开源社城市社区&#xff09;是由开源社发起&#xff0c;旨在让开源社区在每个城市落地生根的地域性开源组织。自2023年2月份发起以来&#xff0c;我们已经在南京、上海、深圳、北京、硅谷、新加坡、…

用思维导图带你解读电子商务数据分析基本指标,产品、运营者必看

随着时代的发展&#xff0c;越来越多的人参与到电商之中。电商即电子商务&#xff0c;是依托现代信息网络技术&#xff0c;以商品交换为中心的新型商务贸易活动。电商可并不简单&#xff0c;做好电商又有哪些关键呢&#xff1f;别急&#xff0c;再此之前&#xff0c;需要先了解…

SunnyUI美化winform

SunnyUI美化winform 一.效果展示二.SunnyUI是什么&#xff1f;三.如何使用SunnyUI?3.1 将文件夹放入Debug目录下3.2 在项目文件中添加SunnyUI库3.3 添加SunnyUI.dll文件 四.使用SunnyUI库美化4.1 打开Demo程序copy 五.结语 一.效果展示 二.SunnyUI是什么&#xff1f; Sunny其…

【雕爷学编程】Arduino动手做(181)---Maixduino AI开发板8

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

Vue [Day1]

学习视频&#xff1a; 【2023新版Vue2Vue3基础入门到实战项目全套教程&#xff0c;自学前端vue就选黑马程序员&#xff0c;一套全通关&#xff01;】 初识VUE Vue2官网 https://v2.cn.vuejs.org Vue3官网 https://cn.vuejs.org <!DOCTYPE html> <html lang"en&…

遥感、GIS、GPS在土壤空间数据分析、适应性评价、制图、土壤普查中怎样应用?

摸清我国当前土壤质量与完善土壤类型&#xff0c;可以为守住耕地红线、保护生态环境、优化农业生产布局、推进农业高质量发展奠定坚实基础&#xff0c;为此&#xff0c;2022年初国务院印发了《关于开展第三次全国土壤普查的通知》&#xff0c;决定自2022年起开展第三次全国土壤…

无涯教程-Lua - Modules(模块)

模块就像可以使用 require 加载的库&#xff0c;并且具有包含Table的单个全局名称&#xff0c;该模块可以包含许多函数和变量。 Lua 模块 其中一些模块示例如下。 -- Assuming we have a module printFormatter -- Also printFormatter has a funtion simpleFormat(arg) -- …

js 获取指定时间+时间戳展示时分秒

开发中遇见了一个客户比较扯淡的需求 明明有可以选择时分秒的操作非不要就要懒省事&#xff0c;必须是一个时间显示成选中的年月日&#xff0c;但是时间格式要给后端传待时分秒的格式&#xff0c;列表展示也要带时分秒。 所以就处理了 let DATE: any new Date(); // 当前日期l…

ctfshow----php特性(89-104)

目录 web89 preg_match函数 、数组 web90 intval()函数、强比较 web91 正则修饰符 web92 intval()函数、弱比较 web93 八进制、小数点 web94 strpos() 函数、小数点 web95 小数点 web96 highlight_file() 下的目录路径 web97 数组 web98 三目运算符 web9…

SFP和1×9光模块的区别对比

随着网络技术的不断发展&#xff0c;光纤通信作为一种高速、高带宽的传输方式&#xff0c;得到了广泛应用。SFP和19光模块是两种常见的低速光模块&#xff0c;它们在性能和应用方面也存在着一些区别。本文易天光通信将对SFP和19光模块进行对比&#xff0c;探讨它们的特点、优势…