当前位置: 首页 > news >正文

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

http://www.gsyq.cn/news/94944.html

相关文章:

  • SmoothDiscreteMarchingCubes 多边形网格数据的平滑
  • YOLOv11 改进 - C2PSA | C2PSA融合Mona多认知视觉适配器(CVPR 2025):打破全参数微调的性能枷锁:即插即用的提点神器,引领视觉微调新突破
  • YOLOv11 改进 - SPPF模块 | 替代SPPF, Mona多认知视觉适配器(CVPR 2025):打破全参数微调的性能枷锁:即插即用的提点神器
  • 百度网盘直链解析:新手必学的3步全速下载方法
  • 【KMP算法】KMP算法揭秘:高效字符串匹配的艺术
  • CSS Padding图解指南:小白也能懂的间距魔法
  • KL按键映射文件修改
  • 智驾相关名词简介
  • 面向对象程序设计———数字电路模拟程序1、2与第一次课堂测验总结
  • 传统统计 “手忙脚乱” VS 虎贲等考 AI “一键洞察”:数据分析的革命性分水岭
  • document.querySelector在电商网站中的5个实战应用
  • SK海力士×NVIDIA联手,AI NAND性能狂飙30倍!
  • C 标准库 - <locale.h>
  • 单片机芯片] CH32V307 支持手机的虚拟U盘实现拖拽固件升级
  • 【规范驱动的开发方式】之【spec-kit】 的安装入门指南
  • 基于ipsec的医院网络规划设计与实现
  • 电商评论分析实战:Java + NLP 大模型,从 10 万条评论中自动提取“用户槽点”
  • ISCTF2025-病毒分析
  • [数据结构/Java] 数据结构之循环队列
  • 检索增强生成(RAG)技术原理深度解析:突破大模型知识边界的范式革命
  • 基于springboot的技术博客交流系统的设计与实现
  • 基于springboot的运动服服饰销售购买商城系统
  • 英语口语资源合集
  • 如何用DSPy优化RAG prompt示例
  • 鸿蒙PC UI控件库 - TextInput 文本输入框详解
  • 鸿蒙PC UI控件库 - PasswordInput 密码输入框详解
  • 【路径规划】基于RRT快速探索随机树算法在包含圆形障碍物的环境中寻找从起点到目标点的路径附matlab代码
  • 【国防科大硕士论文】V调频信号脉冲压缩+V-FM ISAR成像研究附Matlab代码
  • 夜莺监控设计思考(三)时序库、agent 的一些设计考量
  • Go Module构建