// 色值 var color = ['#2ca1ff', '#0adbfa', '#febe13', '#65e5dd', '#7b2cff', '#fd5151', '#f071ff', '#85f67a', '#0baefd', '#fdcd0b', '#0bfdab', '#ff5353', '#ff72cb', '#8488ff',] // lable let legendData = ['新增', '竣工', '结项', '终止'] let pieData = [90, 80, 100, 120] // 总和 var sumNum = eval(pieData.join("+")) // 前 var seriesData1 = [] // 后 var seriesData2 = [] pieData.forEach((v, inx) => { // 前 var qvalue = 0 if (inx > 0) { for (var j = 0; j < inx; j++) { qvalue += pieData[j] } } // 后 var hvalue = sumNum - v - qvalue if (inx > 2) { hvalue = 0 } seriesData1.push(qvalue) seriesData2.push(hvalue) }) // 图表option整理 let pieSeries = [] pieData.forEach((v, i) => { pieSeries.push({ type: 'pie', hoverAnimation: false, radius: [65 - i * 3 + '%', 60 - i * 3 + '%'], center: ["50%", "50%"], data: [ // 前 { value: (seriesData1[i] / sumNum) * 100, label: { show: false }, itemStyle: { opacity: 0, } }, // 值 { value: (v / sumNum) * 100, label: { formatter: function (param) { return v }, }, labelLine: { show: true, length: 100, lineStyle: { color: "#fff" } }, itemStyle: { normal: { color: color[i % 14], borderRadius: 50, }, } }, // 后 { value: (seriesData2[i] / sumNum) * 100, label: { show: false }, itemStyle: { opacity: 0, }, }, ] }); }) option = { backgroundColor: '#013A54', color: color, grid: { top: '0%', bottom: '4%', left: "0%", containLabel: false }, series: pieSeries };