明霞山资源网 Design By www.htccd.com
html中:
<div class="charts1"/> <div class="charts2"/> <div class="charts3"/> <div class="charts4"/> <div class="charts5"/> <div class="charts6"/> <div class="charts7"/>
数据处理就不用提了。嗯,直接画图:
// 画 折线图
drawLine() {
// 数据处理的方法
this.dealEchartsData()
var myChartsArr = []
for (var i = 1; i <= 7; i++) {
this.myCharts = this.$echarts.init(document.getElementsByClassName('charts' + i)[0])
myChartsArr.push(this.myCharts)
var option = this.commonOption(this.myCharts, this.adnormalTypeSummery[i - 1], this.destArrAll[i - 1])
// 为echarts对象加载数据 true 防止echarts数据叠加!!!
this.myCharts.setOption(option, true)
}
window.onresize = function() { // 自适应
for (var j = 0; j < myChartsArr.length; j++) {
if (myChartsArr[j].resize()) {
myChartsArr[j].resize()
}
}
}
},
公用部分:
// option 主体
commonOption(myCharts, titleText, destData) {
var option = {
title: {
text: titleText
},
tooltip: {
trigger: 'axis',
confine: true
},
legend: {
type: 'scroll',
width: '90%',
top: '13%'
},
grid: {
left: '3%',
right: '4%',
bottom: '2%',
containLabel: true
},
toolbox: {
right: '20',
feature: {
saveAsImage: {}
}
},
xAxis: {
type: 'category',
boundaryGap: false,
data: this.monthName
},
yAxis: {
type: 'value'
},
series: destData
}
return option
}
离开该页面时候摧毁:
destroyed() {
if (this.myCharts) {
this.myCharts.clear()
this.myCharts.dispose()
window.onresize = null
}
补充知识:Vue + Echarts 图表展示 及 动态渲染
准备工作
安装echarts依赖
npm install echarts --save-dev
引入
(main.js) import echarts from 'echarts' Vue.prototype.$echarts = echarts;
开始撸代码
<template>
<div class="peopleWrap">
<h3>
<i class="el-icon-position"></i>
出入人员总数{{peopleSumTotal}}
</h3>
<div id="peopleSum" style="width: 180px;height: 270px"></div>
</div>
</template>
<script>
export default {
// 接受父组件传来的参数【父传子props】
props: ["peopleSumTotal"],
data() {
return {
peopleSumTotalArr: []
};
},
watch: {
// 监听参数变化
peopleSumTotal: {
handler(newVal, oldVal) {
if (newVal != 0) {
console.log(newVal);
this.peopleSum(newVal);
}
}
}
},
methods: {
peopleSum(newVal) {
// 引入 echarts
var echarts = require("echarts");
let peopleSum = echarts.init(document.getElementById("peopleSum"));
//echsrts点击事件
peopleSum.on("click", function(param) {
console.log(param);
console.log(param.data.name);
console.log(param.data.value);
console.log(param.data.userDefined);
//$emit的第一个为传的参的名字,第二个为传的值 【子传父 this.$emit】
_this.$emit("peopleSumtoparent", param.data);
});
//接受动态数据时需要在 this.$nextTick(()=>{})展示
this.$nextTick(() => {
let obj = {};
obj.value = newVal;
obj.name = newVal;
this.peopleSumTotalArr.push(obj);
let option = {
legend: {
orient: "vertical",
left: 10,
data: [""]
},
series: [
{
type: "pie",
radius: ["50%", "70%"],
avoidLabelOverlap: false,
itemStyle: {
// 普通样式。
normal: {
// 点的颜色。
color: "#6998f7"
},
// 高亮样式。
emphasis: {
// 高亮时点的颜色。
color: "#6998f7"
}
},
label: {
normal: {
show: true,
position: "center",
textStyle: {
fontSize: "20"
}
}
},
labelLine: {
normal: {
show: false
}
},
data: this.peopleSumTotalArr //动态图表展示
}
]
};
console.log("option", option);
peopleSum.setOption(option);
});
}
},
mounted() {}
};
</script>
<style lang="scss" scoped>
</style>
以上这篇浅谈vue单页面中有多个echarts图表时的公用代码写法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
明霞山资源网 Design By www.htccd.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
明霞山资源网 Design By www.htccd.com
暂无评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。