抖音粉丝群1
『7x24小时有问必答』

AI浪潮下的计算机行业——从业者现状与未来展望

前言

数据可视化已成为企业决策、业务监控不可或缺的一环。一个直观、动态、可定制的数据大屏项目,能够极大地提升信息传递效率,帮助团队快速把握业务动态。
本文将推荐一个基于Vue、DataV、Echarts框架构建的数据大屏项目,该项目不仅支持数据动态刷新渲染,还提供图表自由替换、全局样式调整等强大功能,为开发提供一个高效、灵活的数据展示解决方案。

项目介绍

项目是一个集数据展示、图表渲染、动态更新于一体的数据大屏项目。它利用Vue3的响应式特性,结合DataV丰富的可视化组件库和Echarts强大的图表绘制能力,实现了数据的实时渲染与动态展示。
项目支持全屏展示,通过精心设计的布局和交互,确保用户能够在大屏上获得最佳的数据浏览体验。同时,项目提供详细的文档和示例,便于开发快速上手和定制开发。

项目功能

1、数据动态刷新

通过Vue的组件化开发,实现了数据的实时获取与动态渲染,确保大屏数据始终与业务数据保持同步。

2、图表自由替换

项目内部图表可自由替换,支持Echarts官方社区中的各类图表案例,满足不同场景下的数据展示需求。

3、全局样式调整

通过全局CSS文件,开发者可以轻松调整整个项目的样式,包括字体、颜色、布局等,实现快速定制。

4、组件复用

通过封装可复用的图表组件,减少了重复代码,提高了开发效率。例如,任务通过率与任务达标率模块即使用了同一图表组件,仅通过传入不同参数实现差异化展示。

5、响应式设计

项目采用scale缩放方案,支持不同分辨率屏幕的适配,确保在不同设备上都能获得良好的展示效果。

项目说明

主要文件

文件/目录
作用/功能
main.js
主目录文件,引入 ECharts/DataV 等依赖
utils
工具函数与 mixins 函数(如自适应适配逻辑)
views/index.vue
项目主结构文件
views/其余文件
界面各区域组件(按位置命名,如  
center.vue
assets
静态资源目录(Logo、背景图片等)
assets/style.scss
全局通用 CSS 文件
assets/index.scss
Index
  界面的专属 CSS 文件
components/echart
所有 ECharts 图表组件(按位置命名)
common/...
全局封装的 ECharts 和屏幕适配插件(如  
flexible
  替代方案)

项目使用

1、启动项目

依赖要求:Node.js + pnpm
步骤:
下载项目后,在主目录运行  
pnpm install
  拉取依赖。
启动命令:
npm run serve
(或通过  
vue-cli
  启动)。
手动全屏:按  
F11
问题处理:若编译提示缺少 DataV 依赖,手动安装:
npm install @jiaminghi/data-view   # 或 yarn add @jiaminghi/data-view

2、封装组件渲染图表

基础组件:所有图表基于  
common/echart/index.vue
  封装,支持:
动态数据监听(使用防抖函数优化性能)。
屏幕尺寸变动自适应。
默认样式:配置文件路径  
common/echart/theme.json
组件参数:
参数名
类型
作用
id
String
图表唯一标识(非必填,默认使用  
$el
className
String
自定义样式类名(非必填)
options
Object
ECharts 配置项(必填)
height
String
图表高度(建议填写)
width
String
图表宽度(建议填写)

3、动态渲染图表

案例路径:
components/echart/[图表名]/chart.vue
核心逻辑
<template>

    <div>

       <Echart  :options="options"  id="id"  :height="height"  :width="width"  />

    <!--div-->

<!--template-->

&lt;script&gt;

import  Echart  from'@/common/echart';

exportdefault  {

   data() {  return  {  options: {} } },

components: { Echart },

props: {

       cdata: {  type:  Object,  default:  ()  =&gt;  ({}) }

   },

watch: {

       cdata: {

         handler(newData) {

             this.options = {  /* ECharts 配置 */  };

         },

          immediate:  true,

          deep:  true

      }

   }

};

<!--script-->

4、复用图表组件

案例:中间部分的"任务通过率"与"任务达标率"模块
实现方式:
父组件传递参数(如  
views/center.vue
):
&lt;centerChart  :id="rate[0].id"  :tips="rate[0].tips"  :colorObj="rate[0].colorData"  /&gt;

&lt;centerChart  :id="rate[1].id"  :tips="rate[1].tips"  :colorObj="rate[1].colorData"  /&gt;

&lt;script&gt;

export  default  {

   data() {

       return  {

          rate: [

            {  id:  "centerRate1",  tips:  60,  /* 其他配置 */  },

            {  id:  "centerRate2",  tips:  40,  colorData: {  /* 颜色配置 */  } }

         ]

      };

   }

};

<!--script-->

子组件接收参数(如  
components/echart/center/centerChartRate.vue
):
<script>

export  default  {

    props: ['id',  'tips',  'colorObj'],

    // 根据参数动态渲染图表

};

</script>

5、更换边框

方法:使用 DataV 自带边框组件,替换  
views/[区域].vue
  中的对应标签:
<dv-border-box-1></dv-border-box-1>    <!-- 边框类型1 -->

<dv-border-box-2></dv-border-box-2>    <!-- 边框类型2 -->

更多边框:参考 DataV 官网文档。

6、更换图表

路径:直接修改  
components/echart/[图表名]
  下的文件。
参考资源:ECharts 官方示例库。

7、Mixins 解决自适应适配

文件:
utils/resizeMixins.js
应用:注入到  
common/echart/index.vue
,实现对  
this.chart
  的功能扩展(如窗口变化时重绘图表)。

8、屏幕适配方案

版本:1.5 版本弃用  
flexible
  +  
rem
,改用 CSS3  
scale
  缩放。
逻辑:
基准尺寸:
1920px * 1080px
同比例屏幕:100% 填充。
非同比例屏幕:自动计算比例居中填充,不足部分留白。
代码路径:
src/utils/userDraw.js

9、请求数据(建议)

工具:Axios
全局配置示例(
main.js
):
import  axios  from  'axios';

Vue.prototype.$http = axios.create({

    timeout:  20000,

    baseURL:  'http://172.0.0.1:8080'   

    // 后端接口地址

});

项目体验

体验地址:https://www.gaobug.com/bigscreen

项目效果

大数据可视化平台

1.gif

互联网设备可视化平台

2.png

分布式储能平台

3.png

项目源码

源码托管在代码仓库中,可以通过拉取master分支的代码获取最新版本。项目结构清晰,包含主目录文件、工具函数、界面组件、静态资源等多个目录和文件。
大家可以根据项目文档和示例代码,快速上手并定制开发。在开发过程中,建议按照功能区域重命名文件,以便于管理和维护。
Gitee:https://gitee.com/MTrun/big-screen-vue-datav

总结

一个基于Vue、DataV、Echarts框架构建的数据大屏项目,具有数据动态刷新、图表自由替换、全局样式调整等强大功能。
通过模块化设计和高度可定制的特性,项目满足了不同场景下的数据展示需求。同时,项目还提供了丰富的文档和示例代码,便于大家快速上手和定制开发。

关键词

作者:小码编匠
出处:gitee.com/smallcore/DotNetCore
声明:网络内容,仅供学习,尊重版权,侵权速删,歉意致谢!

END

4.jpeg
5.gif
备注【开源
方便大家交流、资源共享和共同成长
纯技术交流群、需要的小伙伴请扫码

有收获?不妨分享让更多人受益
关注「程序员开源栈」,共同提升技术实力

点分享
点收藏
点在看
点点赞
</script>

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码