千呼万唤始出来,终于将原先的 Vue2 升级到了 Vue3,并且使用了 Ts,部分界面使用了 Tsx 的写法,欢迎大家来点个星星~

项目地址:Vue3 可视化大屏展示,点颗星星吧~
界面展示(这个是动态的后面会换成 gif 图):

一、项目描述

  • 这里一个基于 Vue3、TypeScript、DataV、ECharts 框架的 " 数据大屏项目 ",使用 ‘.vue’ 和 ‘.tsx’ 文件实现界面,采用新版动态屏幕适配方案,支持数据动态刷新渲染、内部DataV、ECharts图表都支持自由替换。组件详情请点击下方 ECharts 和 DataV 文档。

  • Vue2 版本请点击这里查看,地图支持自动轮播哦~

  • React 版本请点击这里查看,全新界面超级好看!!!(o ゚ v ゚)ノ

  • 项目按照 1920*1080 比例设计,支持任何尺寸的同比例缩放。

  • 项目封装的 ECharts 区域使用了全部引入的方式,增加了打包体积,在实际运用中请使用 按需引入

  • 拉取项目之后,建议按照自己的功能区域重命名文件,现以简单的位置进行区分。

  • 项目环境:@vue/cli-4.5.13、DataV-2.10、Echarts-5.1.1、Npm-6.14.6、Node-v14.16。

  • 请拉取 master 分支的代码,其余分支是开发分支。

友情链接:

  1. Vue3 官方文档
  2. DataV 官方文档
  3. echarts 实例,echarts API 文档
  4. 项目 gitee 地址

二、主要文件介绍

文件 作用/功能
main.ts 主目录文件,引入注册 自定义组件、DataV 、样式等数据
views/* 界面各个区域组件按照位置来命名,index 是项目主结构
constant/* 静态数据项,所有的标题和图标都配置在这里
utils/* 全局公共函数(包含屏幕适配函数)
assets/* 静态资源目录,放置图片与全局样式(index 文件样式单独放在这里)
components/echart 封装的全局图表渲染函数
components/componentInstall 全局组件注册位置
common/* 通用数据配置项(放置 echart 样式与地图数据)
router/* 路由配置区域
store/* Vuex 相关区域
src/ *.d.ts 全局类型声明文件

三、使用介绍

启动项目

需要提前安装好 nodejsyarn,下载项目后在项目主目录下运行 yarn 拉取依赖包。安装完依赖包之后然后使用 vue-cli 或者直接使用命令npm run serve,就可以启动项目,启动项目后最好是手动全屏查看(按 F11)。如果编译项目的时候提示没有 DataV 框架的依赖,输入 npm install @jiaminghi/data-view 或者 yarn add @jiaminghi/data-view 进行手动安装。

如果安装完依赖 @jiaminghi 报错 <template v-for> key should be placed on the <template> tag 类似的bug,作者已经做了修复,大家把此工程目录下的 other_modules/@jiaminghi.rar 解压并替换掉 node_modules 里面的同名文件,我已经给作者提了 Issues 希望大家拉取的时候没有这个错误

封装组件渲染图表

所有的 ECharts 图表渲染都是基于 components/echart/index.tsx 封装组件创建的,已经对数据动进行了深度监听,能够动态渲染图表数据。如果项目传入的数据量巨大,深度监听将会影响到项目性能,此时建议手动触发初始化函数 initChart。如果遇到动态赋值图表无法监听到的时候,也可以调用这个函数进行手动更新。

封装的渲染图表组件支持传入以下参数,可根据业务需求自行添加/删除。

参数名称 类型 作用/功能
id String 唯一 id(非必填,项目使用 ref 指定节点)
className String class样式名称(非必填)
options Object ECharts 配置(非必填),可通过初始化参数打入
height String 图表高度(必填)
width String 图表宽度(必填)

TSX与封装组件的使用

项目引入了 babel-plugin-jsx 依赖,可以直接使用 tsx 编写代码。 src/views/chart 下的文件使用了此方式编码,这里的文件专门处理数据内容,不涉及到任何的样式,并且返回的结构较为简单。

项目全局注册了 echart 组件,使用的时候大体方式如下:

setup(props) {// ....此处省略n行代码return () => {const height = "xxx"const width = "xxx"return <div><echart ref={chartRef} height={height} width={width} /></div>}
}

复用图表组件

复用图表组件案例为中间部分的 任务通过率与任务达标率 模块,两个图表类似,区别在于颜色和主要渲染数据。只需要传入对应样式,然后在复用的组件 views/center/chart/draw.tsx 里进行接收并在对应位置赋值即可。

如:在调用处 views/center.vue 里去定义好数据并传入组件

//组件调用
<span>今日任务通过率</span>
<chart :tips="rate[0].tips" :colorObj="rate[0].colorData" /><span>今日任务达标率</span>
<chart :tips="rate[1].tips" :colorObj="rate[1].colorData" />...
import Chart from '../center/chart/draw'
components: {Chart
}
setup() {// ...const rate = reactive([ {id: "centerRate1",tips: 60,...},{id: "centerRate2",tips: 40,colorData: {...}}])return {rate, ....}
}

更换边框和图表

边框是使用了 DataV 自带的组件,只需要去 views 目录下去寻找对应的位置去查找并替换就可以,具体的种类请去 DavaV 官网查看
如:

<dv-border-box-1></dv-border-box-1>
<dv-border-box-2></dv-border-box-2>
<dv-border-box-3></dv-border-box-3>

图表的话去各个 src/views/*/chart/draw.tsx 修改 ECharts 的配置文件即可,如果觉得官网的案例不够好看可以去社区逛:ECharts 社区地址。

屏幕适配

屏幕适配方案放弃了 Vue2 版本的 rem 方案,使用更流程通用的 css3:scale 缩放方案,项目的基准尺寸是 1920px*1080px,所以支持用比例屏幕 100% 填充,如果非同比例则会自动计算比例居中填充,不足的部分则留白。实现代码在 src/utils/userDraw.ts 中,通过 ref 指向 views/index ,如果觉得 Vue2 版本的适配方案不能试图您的场景,则可以参考此方案进行代替。

优化方向

  • 部分图表选择展示的内容会报错,怀疑是配置问题。
  • 地图组件由于 Vue3 无法直接通过 ref 取到 ECharts 组件内部函数,暂时无法实现自动轮播。

五、其余

这个项目是个人的作品,难免会有问题和 BUG,如果有问题请进行评论,我也会尽力去更新,自己也在前端学习的路上,欢迎交流,非常感谢!

Vue大数据可视化(大屏展示)方案升级,发布全新Vue3版本相关推荐

  1. (下)Vue+Echarts构建大数据可视化酷屏展示公司品牌实战项目分享(附源码)

    回顾 作者用心写作,请动动你可爱的小手点亮大拇指.你的鼓励是作者继续创作的动力- 前端的学习,不能仅仅依靠知识点的学习,实战项目的操作可以帮助我们整理知识点以及提高编程能力,更有助于学习和实践,最重要 ...

  2. echarts学习——(下)Vue+Echarts构建大数据可视化酷屏展示公司品牌实战项目分享(附源码)

    一个基于Vue前端框架和第三方图表库Echarts构建的可视化大数据平台,通过vue项目构建.指令的灵活运用.组件封装.组件之间通信,使内部图表组件库可实现自由替换和组合.以及一些功能模块的设计及代码 ...

  3. Qt制作大数据可视化大屏展示电子看板

    Qt制作大数据可视化大屏展示电子看板 解决当前最火的大数据可视化大屏展示,整个项目通过Qt开发,集成了QML/QChart/ECharts及自定义控件等模块,所有的可视化控件都可以集成到其中.可以随意 ...

  4. 大数据可视化大屏设计经验,教给你!

     前言    大数据产业正在用一个超乎我们想象的速度蓬勃发展,大数据时代的来临,越来越多的公司开始意识到数据资源的管理和运用,大数据可视化大屏展示被更多的企业青睐,身为UI设计师的我们,也要紧跟时代的 ...

  5. 大数据可视化大屏图表设计经验,教给你

     前言   自从跟大家分享第一篇<大数据可视化大屏设计经验,教给你!>,很多小伙伴都会问我一些相关的问题,看了小伙伴给我发的视觉稿,整体都还不错,但是发现图表的设计都有一些问题,大家可能对 ...

  6. 【博主推荐】大数据可视化大屏(源码下载)

    可视化大屏交流学习 提示:本文推荐好的大数据可视化源码,用于学习,用于项目,欢迎大家积极交流.持续更新贴-- 资源目录 可视化大屏交流学习 一. 某公司大数据展示模版2 二.大数据可视化通用素材 三. ...

  7. 大数据可视化大屏设计经验及案例分享

    今天要跟大家分享我一年多设计大数据可视化大屏的经验和观点,下面从UI设计.交互设计.动效设计三个方面来分享.    UI设计       设计大屏一样要谨记要以展示数据为核心,在任何炫酷屌炸天表现都要 ...

  8. 大数据可视化大屏设计经验分享

    前言 大数据产业正在用一个超乎我们想象的速度蓬勃发展,大数据时代的来临,越来越多的公司开始意识到数据资源的管理和运用,大数据可视化大屏展示被更多的企业青睐,身为UI设计师的我们,也要紧跟时代的步伐学习 ...

  9. 74套大数据可视化大屏模板源码下载

    锦鲤已测|74套大数据可视化大屏模板源码下载,直接下载,使用浏览器访问静态页面即可. 最近在做一个市政的项目,用到了大数据可视化界面(装逼,无其他用途) 顺手分享一下给大家吧,有需要可以下载试试.

  10. 基于vue+echarts 数据可视化大屏展示[附源码]

    获取 ECharts 的路径有以下几种,请根据您的情况进行选择: 1) 最直接的方法是在 ECharts 的官方网站中挑选适合您的版本进行下载,不同的打包下载应用于不同的开发者功能与体积的需求,或者您 ...

最新文章

  1. c语言英汉互译编程,用C语言编辑简单英汉互译词典.doc
  2. Hadoop核心机制详细解析
  3. 用 TS + Vue 写了一个在 Chrome 中运行 Prettier 格式化的扩展程序
  4. Python基础:获取迭代器下一项目的常见操作
  5. 【Java基础篇】你真的了解构造器吗?
  6. neo4j python_Python 操作 Neo4j 数据库!
  7. 网友质疑特斯拉电动汽车电池不利于回收 马斯克回怼!
  8. 第一个IOS APP总结
  9. jvm系列(五):tomcat性能调优和性能监控(visualvm)
  10. apache netbeans ide为什么安装不了_Eclipse安装及常见的基于Eclipse的嵌入式集成开发环境...
  11. 算法精解----快速排序2
  12. 汽车零部件智能工厂MES生产进度管理系统
  13. Foxmail不显示图片的处理方法
  14. html中onblur属性,html中的onfocus和onblur是什么属性?怎么使用?
  15. 一个IT从业者的课外读物___养生锻炼篇
  16. Oracle数据库上机练习2
  17. 消失的中国互联网元老陈天桥:为神经科学捐助10亿,不担心机器人崛起
  18. 操作系统 --cpu与指令集
  19. [Serializable]在C#中的作用-NET 中的对象序列化
  20. 第二次作业--分析微博

热门文章

  1. Buffon投针问题
  2. windows 环境下,编译android 版opencv-4.5.5,并添加opencv_contrib-4.5.5 扩展模块
  3. Asp.Net Core 鉴权授权
  4. 计算机键盘鼠标价格,价格相差5倍 看普通鼠标和游戏鼠标有何不同
  5. Spring Boot 解决同名类导致的bean名冲突bean name conflicts
  6. 点击按钮没有反应,onclick函数点击无反应的原因
  7. python2的lambda函数的基础学习
  8. YOLOV3 网络结构学习笔记
  9. 图的可视化问题、havel-hakimi算法、Erdős–Gallai定理
  10. 九九乘法表c语言枚举法,小学枚举法教案