news 2026/6/10 0:26:11

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/4 12:58:41

SmoothDiscreteMarchingCubes 多边形网格数据的平滑

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

作者头像 李华
网站建设 2026/6/9 5:22:21

【KMP算法】KMP算法揭秘:高效字符串匹配的艺术

系列文章目录 文章目录系列文章目录一、KMP算法简介&#xff08;1&#xff09;KMP算法的核心思想&#xff08;2&#xff09;KMP算法的步骤&#xff08;3&#xff09;KMP 算法的应用场景二、例题一、找出字符串中第一个匹配项的下标二、最短回文串三、总结一、KMP算法简介 KMP&…

作者头像 李华
网站建设 2026/6/9 23:36:34

YOLOv11 改进 - C2PSA | C2PSA融合DML动态混合层(Dynamic Mixing Layer)轻量级设计优化局部细节捕获与通道适应性,提升超分辨率重建质量

前言 本文介绍了动态混合层(DML),并将相关改进模块集成进YOLOv11。DML是SRConvNet核心组件,用于解决轻量级图像超分辨率任务中特征捕捉和通道适应性问题。它通过通道扩展拆分、多尺度动态深度卷积、通道洗牌与融合等步骤,实现多尺度局部信息聚合和通道自适应增强。DML的动…

作者头像 李华
网站建设 2026/6/9 19:45:12

【区块链技术(06)】为什么分布式系统会存在数据一致性问题?本文带你理解:CAP和FLP定理、拜占庭将军问题;Paxos和Raft两种分布式算法

分布式系统一致性 一致性问题 在分布式环境中&#xff0c;由于各个节点之间的通信存在延迟和不确定性&#xff0c;如何保证数据的一致性称为一个挑战 一致性是指分布式系统中所有节点对于某个操作或数据状态达成的共识。 当多个节点参与某个操作时&#xff0c;它们需要遵循…

作者头像 李华
网站建设 2026/6/9 19:44:43

CSS Padding图解指南:小白也能懂的间距魔法

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 制作一个交互式CSS padding学习沙盒&#xff0c;左侧可拖拽调整盒模型参数&#xff0c;右侧实时显示代码和视觉效果。包含10个渐进式练习任务&#xff0c;从基础单边padding到复杂嵌…

作者头像 李华
网站建设 2026/6/9 20:11:09

基于大数据的小微企业信贷风险评估研究开题报告​

一、选题背景与研究意义​&#xff08;一&#xff09;选题背景​小微企业作为国民经济的重要组成部分&#xff0c;在促进就业、推动创新、稳定经济增长等方面发挥着不可替代的作用。然而&#xff0c;融资难、融资贵一直是制约小微企业发展的核心瓶颈。传统信贷风险评估模式依赖…

作者头像 李华