探索前端可视化大屏:创造令人惊叹的数据可视化体验

介绍

🔥🔥Vue3 + TS + Echarts + Pinia 优秀可视化数据大屏解决方案,包括移动端与 PC 端的响应式适配处理,实现移动端和PC端不同布局和兼容。欢迎大家提出Issues

项目地址

http://124.221.177.11/#/login

gitee开源地址gitee.com/yuanjinwei/...

github开源地址github.com/williamyuan...

项目展示

  • 登录页
#left
  • PC 端首页
#left
  • 小于 576px 设备效果
#left

操作文档

登录项目之后,在首页以关注度图表为例

  1. 图表可支持左右滑动,图表内长按鼠标左滑或者右滑进行不同月份的展示
  2. 右上角从左到右图标的功能分别为:切换至折线图、切换至柱状图、详情弹窗
  3. 打开详情弹窗后可以通过下拉搜索框进行输入搜索选择要添加至图表的项目,也可进行删除
#left
#left

项目中间部分的雷达图和虚拟列表可以进行交互,点击列表的项目可以添加至雷达图,点击雷达图某个项目可以展示详情,点击 remove 可以移除

#left
#left

项目亮点

  • 实现对不同大小的屏幕/设备的良好适配 以及针对小屏幕设备有不同的布局以及兼容
  • 不定高无限滚动加载虚拟列表 的实现,控制列表渲染数据量的同时实现列表无限滚动
参数/事件 说明 类型 默认值
dataSource 传入的数组 Array 必传
loading 分页加载loading状态 Boolean 必传
estimatedHeight 每一项的初始高度,用于传入渲染后再通过计算得到不定高列表的真实高度 Number 必传
@scrollEnd 列表滚动到底部触发的方法 Function -
ini 复制代码
<virtual-list
	:data-source="github.dataSource"
	:loading="github.loading"
	:estimated-height="30"
	@scroll-end="github.addData"
	class="virtual-list"
>
	<template #item="{ item }">
		<a-tooltip placement="top" color="rgba(73, 146, 255, 0.8)">
			<template #title>
				<span>项目名:{{ item.name }}</span>
			</template>
			<div class="virtual-list-item" @click="radarFirst.chart.addRadarData(item.name)">
				<span class="virtual-list-item-col">{{ item.name }}</span>
				<span class="virtual-list-item-col">{{ item.influence }}</span>
				<span class="virtual-list-item-col">{{ item.trend }}</span>
				<span class="virtual-list-item-col">{{ item.response }}</span>
				<span class="virtual-list-item-col">{{ item.activity }}</span>
				<span class="virtual-list-item-col">{{ item.github }}</span>
			</div>
		</a-tooltip>
	</template>
</virtual-list>
  • Echarts 图表相关 hooks 的封装,提高如折柱混合图、图表详情弹窗的代码复用性
  • 实现下拉搜索选择框、列表与图表之间的增删交互 ,根据文档解决 雷达图等图表增删时的异常问题
  • 使用 transition 标签以及图片预加载 来优化图片未加载完全等导致的用户视觉体验问题
  • 实现 Echarts 等组件的按需加载。在打包过程中对项目大体积模块进行分块打包以及优化项目字体文件大小
相关推荐
码界奇点11 分钟前
基于Spring Boot与Vue的教务管理系统设计与实现
vue.js·spring boot·后端·java-ee·毕业设计·源代码管理
1314lay_100719 分钟前
axios的Post方法和Delete方法的参数个数和位置不同,导致415错误
前端·javascript·vue.js·elementui
编程小风筝37 分钟前
就业信息推荐系统 Python+Django+Vue.js
vue.js·python·django
耗子君QAQ1 小时前
🔧 Rattail | 面向 Vite+ 和 AI Agent 的前端工具链
前端·javascript·vue.js
一只蝉nahc11 小时前
vue使用iframe内嵌unity模型,并且向模型传递信息,接受信息
前端·vue.js·unity
MXN_小南学前端13 小时前
前端开发中 try...catch 到底怎么用?使用场景和最佳实践
javascript·vue.js
Z_Wonderful14 小时前
基于 Vite 的 React+Vue 混部完整模板(含目录结构、依赖清单、启动脚本)
前端·vue.js·react.js
束尘15 小时前
Vue3 项目集成 OnlyOffice 在线编辑 + 自定义插件开发(二):插入功能全实现
数据库·vue.js·mysql
誰在花里胡哨15 小时前
Vue<前端页面装修组件>
前端·vue.js
前端那点事16 小时前
Vue组件通信全场景详解(Vue2+Vue3适配)| 实战必备,新手也能看懂
vue.js