DDR爱好者之家 Design By 杰米
组件只做了简单的传值处理,记录开发思路及echarts简单使用。
这里默认所有图表样式一致,都为柱状图,如需其他类型,可查阅echarts官网文档,再动态传值即可。
vue 使用组件 ------在外层用v-for 循环,传不同值进charts 即可
<!-- 传入对应的数据给子组件 --> <charts :options="item.select" :id='"charts" +index' :index="index" style="width: 900px;height:400px;" ></charts> <!-- 传入对应的数据给子组件 end -->
vue创建子组件-----初始化空模板
<!-- 图表组件 --> <template> <div></div> </template> <!-- 图表组件 end -->
主要部分 ------ 初始化echarts.js
Vue.component('charts', { template: '#charts', // 传入对应的数值与动态index props: ['options', 'index'], methods: { initOption() { var that = this var arr1 = [] // x轴刻度 var arr2 = [] // y轴数据值 // 取出需要的数据 this.options.forEach(element => { arr1.push(element.selectedTopic) arr2.push(element.peopleNum) }) // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init( document.getElementById('charts' + this.index) ) // 指定图表的配置项和数据 var option = { color: ['#3582F8'], tooltip: { trigger: 'axis', axisPointer: { // 坐标轴指示器,坐标轴触发有效 type: 'shadow' // 默认为直线,可选为:'line' | 'shadow' } }, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, xAxis: [ { type: 'category', data: arr1, // X轴的刻度 axisTick: { alignWithLabel: true } } ], yAxis: [ // y轴的刻度值自动调整 { type: 'value' } ], series: { name: 'y轴数值', type: 'bar', barWidth: '60%', data: arr2 // 具体选择数值 } } // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option) } }, mounted() { this.initOption() }, created() {} })
补充知识:vue根据获取的数据动态循环渲染多个echart(多个dom节点,多个ID)
//在dom节点加载之后调用渲染echart仪表盘方法,this.$nextTick(function(){ }
<div class="chart"> <div class="geo" v-for="(dataval, index) in dataVal" :key="index" :id="forId(index)"></div> </div>
methods: { forId:function(index){ return "geo_" +index }, mapTree() { this.$nextTick(function(){ for(var i=0;i<this.dataVal.length;i++){ //获取id放入数组中,以便下面渲染echart仪表盘使用 this.getId.push(this.$echarts.init(document.getElementById('geo_'+i))); this.getId[i].setOption({ title: { text: this.dataVal[i].name+'栋', textStyle: { color: '#00f2f1', fontSize: 14 }, left: 'center', top: 5 }, tooltip: { formatter: '{a} <br/>{c}' }, series:[ { name: '工作电表数', type: 'gauge', radius: '80%', min: 0, max: Number(this.dataVal[i].sum), splitNumber: 10, axisLine: { // 坐标轴线 lineStyle: { // 属性lineStyle控制线条样式 color: [[0.30, '#ff4500'], [0.80, '#1e90ff'], [1, 'lime']], width: 1, shadowColor: '#fff', //默认透明 } }, axisLabel: { // 坐标轴小标记 color: '#fff', shadowColor: '#fff', //默认透明 shadowBlur: 10 }, axisTick: { // 坐标轴小标记 length: 4, // 属性length控制线长 lineStyle: { // 属性lineStyle控制线条样式 color: 'auto', shadowColor: '#fff', //默认透明 shadowBlur: 10 } }, splitLine: { // 分隔线 length: 7, // 属性length控制线长 lineStyle: { // 属性lineStyle(详见lineStyle)控制线条样式 width: 2, color: '#fff', shadowColor: '#fff', //默认透明 shadowBlur: 10 } }, pointer: { // 分隔线 width:4,//指针的宽度 length:"70%", //指针长度,按照半圆半径的百分比 shadowColor: '#fff', //默认透明 shadowBlur: 5 }, title: { textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLE fontWeight: 'bolder', fontSize: 10, fontStyle: 'italic', color: '#fff', shadowColor: '#fff', //默认透明 shadowBlur: 10 } }, detail: { fontSize: 12, }, data: [{value: this.dataVal[i].normalSum, name: ''}] }] }); } }) } }
以上这篇echarts.js 动态生成多个图表 使用vue封装组件操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
2024年12月26日
2024年12月26日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]