前言
数据可视化已成为企业决策、业务监控不可或缺的一环。一个直观、动态、可定制的数据大屏项目,能够极大地提升信息传递效率,帮助团队快速把握业务动态。
本文将推荐一个基于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
启动)。 问题处理:若编译提示缺少 DataV 依赖,手动安装:
npm install @jiaminghi/data-view # 或 yarn add @jiaminghi/data-view
2、封装组件渲染图表
基础组件:所有图表基于 common/echart/index.vue
封装,支持: 动态数据监听(使用防抖函数优化性能)。
屏幕尺寸变动自适应。
默认样式:配置文件路径 common/echart/theme.json
。 组件参数:
参数名
类型
作用
id
String
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--><script>import Echart from'@/common/echart';exportdefault { data() { return { options: {} } },components: { Echart },props: { cdata: { type: Object, default: () => ({}) } },watch: { cdata: { handler(newData) { this.options = { /* ECharts 配置 */ }; }, immediate: true, deep: true } }};<!--script-->
4、复用图表组件
案例:中间部分的"任务通过率"与"任务达标率"模块
实现方式:
父组件传递参数(如 views/center.vue
): <centerChart :id="rate[0].id" :tips="rate[0].tips" :colorObj="rate[0].colorData" /><centerChart :id="rate[1].id" :tips="rate[1].tips" :colorObj="rate[1].colorData" /><script>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 解决自适应适配
应用:注入到 common/echart/index.vue
,实现对 this.chart
的功能扩展(如窗口变化时重绘图表)。 8、屏幕适配方案
版本:1.5 版本弃用 flexible
+ rem
,改用 CSS3 scale
缩放。 逻辑:
同比例屏幕:100% 填充。
非同比例屏幕:自动计算比例居中填充,不足部分留白。
代码路径:src/utils/userDraw.js
。 9、请求数据(建议)
工具:Axios
import axios from 'axios';Vue.prototype.$http = axios.create({ timeout: 20000, baseURL: 'http://172.0.0.1:8080' // 后端接口地址});
项目体验
体验地址:https://www.gaobug.com/bigscreen
项目效果
大数据可视化平台
互联网设备可视化平台
分布式储能平台
项目源码
源码托管在代码仓库中,可以通过拉取master分支的代码获取最新版本。项目结构清晰,包含主目录文件、工具函数、界面组件、静态资源等多个目录和文件。
大家可以根据项目文档和示例代码,快速上手并定制开发。在开发过程中,建议按照功能区域重命名文件,以便于管理和维护。
Gitee:https://gitee.com/MTrun/big-screen-vue-datav
总结
一个基于Vue、DataV、Echarts框架构建的数据大屏项目,具有数据动态刷新、图表自由替换、全局样式调整等强大功能。
通过模块化设计和高度可定制的特性,项目满足了不同场景下的数据展示需求。同时,项目还提供了丰富的文档和示例代码,便于大家快速上手和定制开发。
关键词
作者:小码编匠
出处:gitee.com/smallcore/DotNetCore
声明:网络内容,仅供学习,尊重版权,侵权速删,歉意致谢!
方便大家交流、资源共享和共同成长
纯技术交流群、需要的小伙伴请扫码