news 2026/9/2 10:10:38

vue-vben-admin 仪表盘 3 步搭建:从第一张 ECharts 图表到动态刷新

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
vue-vben-admin 仪表盘 3 步搭建:从第一张 ECharts 图表到动态刷新

vue-vben-admin 仪表盘 3 步搭建:从第一张 ECharts 图表到动态刷新

【免费下载链接】vue-vben-adminA modern vue admin panel built with Vue3, Shadcn UI, Vite, TypeScript, and Monorepo. It's fast!项目地址: https://gitcode.com/GitHub_Trending/vu/vue-vben-admin

早上 9 点,业务方要一份经营数据汇报:用户量、访问量、下载量、销售占比,最好现场能点着看。你不想再导出 Excel、对着表格逐个念数字。vue-vben-admin(git clone https://link.gitcode.com/i/e61ab2102fc12c56539773f85d050910)内置了一个分析页,基于 ECharts 数据可视化能力搭成,你只需要改数据和配置,就能拿到一张能演示的经营仪表盘。

搭完是什么效果

打开apps/web-antd的分析页:顶部四张指标卡(用户量 / 访问量 / 下载量 / 使用量),中间是一个可切换选项卡的主图区(流量趋势、月访问量两个标签页),底部三张小卡片并排——访问数量、访问来源、商业占比。选项卡一点视图就切,鼠标悬停出数值提示,窗口拉大拉小图表跟着重绘。

第一步:找到动手的位置

改之前先知道东西在哪:

  • 仪表盘主页面:apps/web-antd/src/views/dashboard/analytics/index.vue,负责布局——指标卡、选项卡容器、底部三张小卡片,都在这一个文件里组装;
  • 各图表组件:同在apps/web-antd/src/views/dashboard/analytics/目录下,analytics-trends.vueanalytics-visits.vueanalytics-visits-sales.vue各管一张图;
  • ECharts 插件目录:packages/effects/plugins/src/echarts/,初始化、深浅色主题切换、窗口 resize 重绘,全收在use-echarts.ts里。

也就是说,改图只碰数据和配置,不用碰图表的生命周期。

第二步:第一个 ECharts 饼图怎么画

以"商业占比"玫瑰图为例,核心代码不长:

<script lang="ts" setup> import { onMounted, ref } from 'vue' import { EchartsUI, useEcharts } from '@vben/plugins/echarts' import type { EchartsUIType } from '@vben/plugins/echarts' const chartRef = ref<EchartsUIType>() const { renderEcharts } = useEcharts(chartRef) onMounted(() => { renderEcharts({ tooltip: { trigger: 'item' }, series: [{ type: 'pie', radius: '80%', roseType: 'radius', name: '商业占比', color: ['#5ab1ef', '#b6a2de', '#67e0e3', '#2ec7c9'], data: [ { name: '外包', value: 500 }, { name: '定制', value: 310 }, { name: '技术支持', value: 274 }, { name: '远程', value: 400 }, ].toSorted((a, b) => a.value - b.value), }], }) }) </script> <template> <EchartsUI ref="chartRef" /> </template>

roseType: 'radius'把饼图变成环形玫瑰图;数据先按值从小到大排序,从内到外递进,占比一眼分得清主次;color数组控制每个扇区配色,换成企业色卡就是定制主题。useEcharts是组合式 API(Vue 里管状态的函数,类似ref但更专一),它替你干了四件脏活:初始化 ECharts 实例、跟随深浅色主题、窗口缩放自动重绘、组件销毁时释放实例——你只管喂数据。

其余图表同一套路:趋势分析是折线图,月访问量是柱状图,访问来源是环形图,文件都躺在上面那个目录里,照着改数据即可。

第三步:图表数据定时刷新与选项卡切换怎么写

先说清楚"数据怎么进来、视图怎么切":

  • 顶部四张指标卡的数字,由主页面里的overviewItems数组驱动,换成接口返回值即可;
  • 主图区用AnalysisChartsTabs选项卡切"流量趋势 / 月访问量",chartTabs定义标签,每个 tab 对应一个插槽,里面放各自图表组件;
  • 接口数据回来后,调renderEchartsupdateData就能更新图表。

刷新逻辑用伪代码说就是:

const refresh = () => { const data = await fetch('/api/analytics') // 你的接口 updateData({ series: [{ data: data.list }] }) } refresh() setInterval(refresh, 60_000) // 每分钟一次

updateData是增量更新,默认合并旧配置并保留动画;lazyUpdate: true还能把短时间内的多次调用合并成一次重绘,适合轮询这种高频场景。视图切换不用你操心,选项卡一换,各图表组件自己管生命周期。

三个容易踩的坑

  1. 首屏被图表库拖慢。ECharts 体积不小,vue-vben-admin 数据可视化的页面走的是路由懒加载,路由里写成() => import(...),echarts 相关的 chunk 只在进仪表盘页面时才下载。别把图表库挪到main.ts全局 import,首屏白加载一大坨。
  2. 同一个图反复全量重绘。数据更新时别循环调用renderEcharts,它是"清空 + 重画",动画会一抖一抖;用updateData做增量更新,配合lazyUpdate攒一批再重画,省掉重复计算。
  3. 自己再挂一遍 resize 监听。窗口缩放自适应(200ms 防抖的resizeuse-echarts.ts里已经写了,你再window.addEventListener('resize', ...)等于一个事件触发两次重绘,白白多干一倍的活。

收尾

跑起来之后,建议直接翻 playground 里的现成示例,再对照 docs/src/guide 的指南,按自己的业务把数据和配色换掉就行。

【免费下载链接】vue-vben-adminA modern vue admin panel built with Vue3, Shadcn UI, Vite, TypeScript, and Monorepo. It's fast!项目地址: https://gitcode.com/GitHub_Trending/vu/vue-vben-admin

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 10:07:40

华为语音网关IPT_LMT从入门到实战:配置、呼叫跟踪与排障

简介&#xff1a;这是一份面向通信行业网络运维与UC语音网关调试人员的华为IPT_LMT工具资源包。IPT_LMT全称为IPT Line Maintenance Tool&#xff0c;是华为针对IP电话系统的诊断维护工具&#xff0c;适配eSpace U1900与SoftCo V200R003C20SPC300系列&#xff0c;用于话路状态检…

作者头像 李华
网站建设 2026/9/2 10:03:48

WorkBuddy+Hy4预览版:单次生成过山车视频的工作流实践

在 AI 视频生成这件事上&#xff0c;很多人的注意力只停留在“哪个模型跑得快”“哪个视频更真实”&#xff0c;却忽略了一个更实际的问题&#xff1a;当你想在项目里真正用起来&#xff0c;模型本身只是底线&#xff0c;能把你从“写提示词、调参数、反复抽卡、剪辑拼接”里解…

作者头像 李华
网站建设 2026/9/2 10:02:19

单片机毕业设计-基于 STM32 单片机的车载酒精监测与应急管控系统设计 基于 STM32 的酒精浓度检测与车辆模拟熄火报警系统设计(010206)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机&#xff0c;Java、小程序技术领域和毕业项目实战 ✌️…

作者头像 李华
网站建设 2026/9/2 10:01:14

Kronos 金融K线基础模型:从 400 根历史 K 线预测未来 120 步价格

Kronos 金融K线基础模型&#xff1a;从 400 根历史 K 线预测未来 120 步价格 【免费下载链接】Kronos Kronos: A Foundation Model for the Language of Financial Markets 项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos 做量化研究时&#xff0c;一个…

作者头像 李华
网站建设 2026/9/2 10:00:07

UDS 0x3E服务用例设计与testbuddy自动化测试落地

网络诊断 0x3E 服务用例设计&#xff1a;从需求拆解到 testbuddy 自动化落地做网络诊断和 UDS 测试的同学&#xff0c;对 0x3E 服务应该都不陌生。这个服务负责会话切换&#xff0c;是整个诊断流程里被调用次数最多的服务之一。很多刚入门的测试工程师会问&#xff1a;0x3E 服务…

作者头像 李华
网站建设 2026/9/2 10:00:05

PDF转图片技术全解析:主流依赖库选型与Java实战指南

简介&#xff1a;本资源是面向开发者与PDF处理需求者的Poppler-0.68.0_x86依赖库完整包&#xff0c;专为在Windows平台实现PDF转图片&#xff08;如PNG、JPEG&#xff09;提供底层支持&#xff0c;适用于网页嵌入、文档预览、批量截图等实际场景。压缩包共58个文件&#xff0c;…

作者头像 李华