先看效果
一、data中初始化函数名
data() {
return {
rotateIntervalCircle:null
}
},
二、series中出初始化开始旋转角度
startAngle:0,
三、编写定时器
this.rotateIntervalCircle = setInterval(() => {
let currentAngle = (option.series[0].startAngle || 0) + 30;
option.series[0].startAngle = currentAngle % 360;
myChart.setOption(option);
}, 3000);
四、离开页面时销毁函数
beforeDestroy() {
if (this.rotateIntervalCircle) {
clearInterval(this.rotateIntervalCircle);
}
}
五、饼图函数
getCircle() {
getUserType().then(res => {
let chartDom = document.getElementById('circle')
let myChart = echarts.init(chartDom)
let option
option = {
title: {
text: '广告活动体企业类型分布图',
subtext: '',
left: 'center'
},
tooltip: {
trigger: 'item'
},
legend: {
orient: 'vertical',
left: 'left',
formatter: function (name) {
let targetValue = 0;
for (let i = 0; i < res.data.length; i++) {
if (res.data[i].name === name) {
targetValue = res.data[i].value;
break;
}
}
return `${name} (${targetValue})`;
}
},
series: [
{
center: ["50%", "50%"],
radius: ["40%", "60%"],
name: 'Access From',
type: 'pie',
startAngle:0,
data: res.data,
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
},
label: {
normal: {
formatter: '{b}: {c} ({d}%)',
}
},
}
]
}
option && myChart.setOption(option)
this.rotateIntervalCircle = setInterval(() => {
let currentAngle = (option.series[0].startAngle || 0) + 30;
option.series[0].startAngle = currentAngle % 360;
myChart.setOption(option);
}, 3000);
})
},