配置项如下
let imgSrc = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAMAAABHPGVmAAAAllBMVEUAAAAY258A1JYY258X2p4l2Zkd3qMY258Y3KAY258Y258X3J8V2p0Y2Z8Y26AW3Z0Y258Y2p4X258Y258X258Y258Y258Y3J8Y3J8Y258T2Z0Y258Y3J8Z26AY26AY258Y258X258X3J8Y3KAX3J8X3J8a36UY3J8Y26AX258X258Y258Y258Y258Y26AX3J8Y3J8Y258TXRF7AAAAMXRSTlMA3QSHmQYR62bM1iwiH0oWdxuv9OW1kTs0qA372SfSx1XvbU9BoQm8lVqMf1/3wplypN/JAQAAA+pJREFUaN7t2dl6ojAYBuAPFNxFcANRUXGry7S5/5ub+UNtaIk1iXAwT/ueeNDAR1ZCih/L3yWnGarltBljAaoVMlJxVfqM9JD3G/Ib8jND7E10nt0JGa6vd0L8SfQCda+MsbYnjbdpbbEh0Wkwxt6gasbI3IeOxYgusqBqH+unUAZdA2V1RqjFVFFbkQ2UOQHTqwvVg7xCgzOW1aXTnIxbljVvBbVLT1aPCWCU8jGSt7sGy7OOnY96GGWIFqshMx2zovH0vWwk2sqgLmdwYYvJjbNWsyNRD+2UI8i+FrPM+jBprlYvm3oyZJnhxuYpB8owSjnzG/SW7wnHMDfzt9H1vTK819wBnhFmo3N02UPI7rtmZOnjWVPeMNeabL30dll+F8/pNvhtQsj1eWXaLp7hzekmiXd/qvMCfxw84UC3OHx3C8+iIieY2/COdRUadGveWNTiDf/R8IupW2wYOrJ/Hr9Ra1SsCTP+leaa4k7fMux7esJYZQ6k7J8VTNgj1U8Re05j0Gyuq4+aDdXZNW0tC0pmMR8hBhLGWF2j7KtJl1zp6TRq3YKCXjS3blygq7Pp7dP7iyamddM+zmRPvmSCDWyzXzUdKuzRrxBJywlrACtaUpTnLV21AHpMiG1ZOYEG1UVn0+nQVSHtogXpEx6LIW3lUcJDKExoynuvdjN4b66R1ndAF3BqN+ep8oDR6hMP2jo65xvTwlDUaIEp1Fx4RxoYabyKJqZnRwGfUGqWfN9s4I1mpQMVXZO9hLgyhYoBzT0bJlq0bYOCPXXfDkaaqo2wEQNRm0MPuHzcCl5DVNms69kAj0RUrP/U0Wk8VWnVAMamfMlefF8mpkWuB3M1vvD73y1xa7GXNWQfHuzre/xj74inuNlHzv7bj6TAhqlOKB41gNQ+oT8m/BFSzySjYbnZ7/2BHIkvxsWw7RlkUDN8fP/GHRSlYljsl3Tao50hTlb68Z1Fv02Dlw9wOxBnSloZYkE60c0c+Qv6IiYkpRhkTHLbhGJ7rcQC74z1U5Yig6MJ15cubQkgUrQWfFdkiNCm9MUe4XPKSH2eN0QGx4++pJuAE3Ipeiv+6kojS9iJzJzDbf6I87tGCHV+ukDOq/RDKvl6RBv2XZibFLpU9FRpzrKDDZdWgrTkf2gcNs28Nz7OfZTGtphcgBJtYybT6KFM/QYrandQrtkmSFp5f3YvNv5P6ameV5uifDX21QvKZg8LIa3/MwSnQsgF5Vsd63mnLaqwd/McVGCRsE/iwEXpWuyrHcrmsII5StcuhEQoXWixzxIfFfC7eR6qMR0IC1Rky27oS7QqqXVbtkJUxw7T1WqVLvBT/QXZze13haQUPgAAAABJRU5ErkJggg==';
var data =
[
{name: "智能碾压", value: 20, type: 0},
{name: "border", value: 1},
{name: "隧道管理", value: 20, type: 0},
{name: "border", value: 1},
{name: "梁场管理", value: 20, type: 0},
{name: "border", value: 1}
];
var colors = ['#00ffff',
'#ffe000','#00a6ff','#ff5b00','#ff3000'];
var dataPie = [];
for (var i = 0; i < data.length; i++) {
if(data[i].type == 0){
dataPie.push({
value: data[i].value,
name: data[i].name,
itemStyle: {
normal: {
borderWidth: 5,
shadowBlur: 20,
borderColor:colors[i/2],
shadowColor: colors[i/2]
}
}
});
}else{
dataPie.push({name: "border", value: 1});
}
}
var dataText = data.map(function (item) {
if(item.type == 0){
return item.name;
}
})
option = {
title: {
text: '快捷入口',
textStyle: {
color: '#cccccc99',
fontSize: 40,
align: 'center'
},
x: 'center',
top: "50%",
},
graphic: {
elements: [{
type: "image",
z: 3,
style: {
image: imgSrc,
width: 90,
height: 90
},
left: 'center',
top: "36%",
position: [100, 100]
}]
},
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b}: {c} ({d}%)",
},
legend: false,
series: [
{
animation: false,
type:'pie',
radius: ['42%', '51%'],
data:[1],
color: ["rgb(200,200,200, 0.2)"],
itemStyle : {
normal : {
label : {
show : false
},
labelLine : {
show : false
}
},
},
},
{
name:'访问来源',
type:'pie',
radius: ['58%', '80%'],
hoverAnimation: false,
label: {
normal: {
formatter: function(item){
return item.name;
},
padding: [0, -80],
height: 60,
fontSize:30,
rich:{
c: {
lineHeight: 50,
},
}
},
},
data: dataPie,
itemStyle:{
normal:{
color: function(params){
var colorList = colors;
return (params.dataIndex % 2)? 'rgba(0,0,0,0)' : colorList[params.dataIndex/2];
},
labelLine:{
length: 80,
length2: 120,
},
shadowBlur: 40,
shadowColor: "#22ff33"
},
}
},
{
animation: false,
type:'pie',
radius: ['35%', '37%'],
data:data,
itemStyle : {
normal : {
color: function(params){
var colorList = colors;
return (params.dataIndex % 2)? 'rgba(0,0,0,0)' : "rgb(126,190,255, 0.2)";
},
label : {
show : false
},
labelLine : {
show : false
}
},
},
},
{
animation: false,
type:'pie',
radius: ['39%', '41%'],
data:data,
itemStyle : {
normal : {
color: function(params){
var colorList = colors;
return (params.dataIndex % 2)? 'rgba(0,0,0,0)' : "rgba(0,0,0,0.1)";
},
label : {
show : false
},
labelLine : {
show : false
}
},
},
},
{
type: 'pie',
zlevel: 4,
silent: true,
radius: ['86%', '87%'],
label: {
normal: {
show: false
},
},
labelLine: {
normal: {
show: false
}
},
data: _pie3()
}
]
};
function _pie3() {
let dataArr = [];
for (var i = 0; i < 15; i++) {
if (i % 2 === 0) {
dataArr.push({
name: (i + 1).toString(),
value: 25,
itemStyle: {
normal: {
color: "rgb(126,190,255, 0.4)",
borderWidth: 0,
borderColor: "rgba(0,0,0,0)"
}
}
})
} else {
dataArr.push({
name: (i + 1).toString(),
value: 10,
itemStyle: {
normal: {
color: "rgba(0,0,0,0)",
borderWidth: 0,
borderColor: "rgba(0,0,0,0)"
}
}
})
}
}
return dataArr
}
var timer;
function doing() {
let option = myChart.getOption();
option.series[2].startAngle = option.series[2].startAngle + 1;
option.series[4].startAngle = option.series[4].startAngle - 1;
myChart.setOption(option);
}
function startTimer() {
timer = setInterval(doing, 100);
}
setTimeout(startTimer, 500);