news 2026/6/15 16:46:08

Vue + Echarts 实现科技感数据大屏

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Vue + Echarts 实现科技感数据大屏

一、布局实现

1. flex进行“左中右”布局

<div class="data-container"> <div class="left"> </div> <div class="right"> </div> <div class="middle"> </div> </div> //css部分 .data-container { background: linear-gradient(#0056b1, #248fd8); position: flex; display: flex; /* padding: 0px 10px 10px 10px; */ height: 100%; width: 100%; } .left { width: 280px; background:rgb(147, 144, 238); padding: 20px 10px 20px 20px; display: flex; flex-direction: column; justify-content: space-between; } .right{ width:250px; padding: 20px 20px 20px 10px; background:lightgreen; display: flex; flex-direction: column; justify-content: space-between; } .middle { flex: 1; background:rgb(238, 219, 144); padding: 20px 10px 20px 10px; display: flex; flex-direction: column; }

2. div划分模块,设计科技感配色

<div class="data-container"> <!-- 数据面板 --> <div class="left"> <div class="card"> </div> <!-- --> <div class="card "> </div> </div> <div class="middle"> <!-- 地图 --> <div class="map-chart"> </div> <!-- --> <div class="grid" > <div class="grid-content grid-con-1 card"> </div> <div class="grid-content grid-con-2 card"> </div> <div class="grid-content grid-con-3 card"> </div> </div> </div> <div class="right"> <div class="card right-top"> </div> <div class="card right-mid"> </div> <div class="card right-bottom"> </div> </div> </div> // css .card { border-width: 1px; border-color: rgba(25,25,112,0.4); background-color: rgba(25,25,112,0.2); box-shadow: 0 2px 12px 0 rgba(18, 45, 136, 0.7); padding: 10px; border-radius: 5px; justify-content: center; align-items: center; /* margin-top: 10px; */ }

二、echarts中的图表展示

1. 地图:

https://blog.csdn.net/qq_44846654/article/details/147929138?spm=1011.2415.3001.5331

2. 统一管理图表

<!-- components/EchartsMap.vue --> <template> <div ref="chartDom" :style="{'width':width, 'height': height}"></div> </template> <script> // eslint-disable-next-line standard/object-curly-even-spacing import { ref, onMounted, onBeforeUnmount, watch} from 'vue' import {BAROPTION, MAPOPTION, RADAROPTION, GAUGEOPTIO} from './defaultOption' import echarts from '../../plugins/echarts' export default { name: 'MapEchart', props: { region: {type: String, default: 'china'}, mapData: { type: Array, default: () => [] }, // 地图数据(如省份值) option: { type: Object, default: () => ({}) }, // 自定义配置覆盖 echartsType: {type: String, default: 'map'}, // such as: map, bar, line... width: {type: String}, height: {type: String} }, setup (props) { const chartDom = ref(null) let chartInstance = null // 初始化图表 const initChart = () => { console.log(props.echartsType) if (!chartInstance) { chartInstance = echarts.init(chartDom.value) } let baseOption = null if (props.echartsType === 'map') { const geoJson = require(`../../mapJson/${props.region}.json`) echarts.registerMap(props.region, geoJson) baseOption = MAPOPTION } else if (props.echartsType === 'bar') { baseOption = BAROPTION } else if (props.echartsType === 'radar') { baseOption = RADAROPTION } else if (props.echartsType === 'gauge') { baseOption = GAUGEOPTIO } // 合并外部配置 chartInstance.setOption(baseOption) console.log(baseOption) } // 响应窗口变化 const resizeChart = () => { if (chartDom.value) { chartInstance.resize() } } // 监听数据变化 watch(() => props.mapData, (newVal) => { // chartInstance.setOption({ series: [{ data: newVal }] }); }) onMounted(() => { initChart() window.addEventListener('resize', resizeChart) }) onBeforeUnmount(() => { window.removeEventListener('resize', resizeChart) // if(chartDom.value){ // chartInstance.dispose(); // } }) return { chartDom } } } </script>

3. 可滚动的排行榜

https://blog.csdn.net/qq_44846654/article/details/148044424

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

AlignTwoPolyDatas 基于ICP算法的配准和相机视角切换

一&#xff1a;主要的知识点 1、说明 本文只是教程内容的一小段&#xff0c;因博客字数限制&#xff0c;故进行拆分。主教程链接&#xff1a;vtk教程——逐行解析官网所有Python示例-CSDN博客 2、知识点纪要 本段代码主要涉及的有①ICP模型配准&#xff0c;②配准结果的检测…

作者头像 李华
网站建设 2026/6/15 14:33:55

YOLOv11 改进 - C2PSA | C2PSA融合EDFFN高效判别频域前馈网络(CVPR 2025):频域筛选机制增强细节感知,优化复杂场景目标检测

前言 本文介绍了高效判别频域前馈网络(EDFFN),并将其集成到YOLOv11中。EDFFN是为解决图像复原中局部信息表征不足和频域计算成本过高问题而提出的。传统方法存在SSM全局信息偏向性和频域FFN高计算成本的问题,EDFFN通过将频域操作位置从FFN中间层迁移到末端,降低了计算成本…

作者头像 李华
网站建设 2026/6/16 14:53:21

YOLOv11改进 - C3k2融合 | C3k2融DBlock解码器块( CVPR 2025 ) Decoder Block:解码器块,去模糊和提升图像清晰度

前言 本文介绍了用于多任务低光图像恢复的DarkIR模型中的DBlock,并将其集成到YOLOv11。DBlock部署在模型解码器阶段,负责图像去模糊、提升细节锐度及上采样。它遵循Metaformer架构,由扩张空间注意力模块(Di - SpAM)和门控前馈网络(GatedFFN)构成。Di - SpAM通过多尺度扩…

作者头像 李华
网站建设 2026/6/11 22:01:14

企业级应用部署中共享库问题的5个真实案例

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个共享库问题案例库应用&#xff0c;包含以下功能&#xff1a;1. 分类展示不同场景下的共享库错误案例&#xff08;Docker/物理机/交叉编译等&#xff09;2. 每种案例提供环境…

作者头像 李华
网站建设 2026/6/14 4:10:54

FP8:AI加速计算的新利器,如何用快马平台快速实现?

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 使用快马平台开发一个基于FP8格式的简单神经网络模型&#xff0c;用于图像分类任务。要求&#xff1a;1. 使用Kimi-K2模型生成FP8量化代码&#xff1b;2. 包含FP8数据格式转换功能&…

作者头像 李华
网站建设 2026/6/15 10:22:17

tar -czvf vs 其他压缩工具:效率对比

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个性能测试工具&#xff0c;对比tar -czvf、zip和rar在相同数据集下的压缩速度、压缩率和CPU占用率。工具应生成详细的对比报告&#xff0c;帮助用户选择最适合的压缩方式。点…

作者头像 李华