let bgColor = '#fff'; let title = '总量'; let color = ['#0E7CE2', '#FF8352', '#E271DE', '#F8456B', '#00FFFF', '#4AEAB0']; let echartData = [{ name: "142kW", value: "二级" }, { name: "694kW", value: "三级" }, { name: "380kW", value: "一级" } ]; let formatNumber = function (num) { let reg = /(?=(\B)(\d{3})+$)/g; return num.toString().replace(reg, ','); } let total = echartData.reduce((a, b) => { return a + b.value * 1 }, 0); option = { backgroundColor: bgColor, color: color, // tooltip: { // trigger: 'item' // }, title: [{ text: '{name|' + title + '}\n{val|' + formatNumber(total) + '}', top: 'center', left: 'center', textStyle: { rich: { name: { fontSize: 14, fontWeight: 'normal', color: '#666666', padding: [10, 0] }, val: { fontSize: 32, fontWeight: 'bold', color: '#333333', } } } }, { text: '单位:个', top: 20, left: 20, textStyle: { fontSize: 14, color: '#666666', fontWeight: 400 } }], // legend: { // orient: 'vertical', // icon: 'rect', // x: '80%', // y: 'center', // itemWidth: 12, // itemHeight: 12, // align: 'left', // textStyle: { // rich: { // name: { // fontSize: 12 // }, // value: { // fontSize: 16, // padding: [0, 5, 0, 15] // }, // unit: { // fontSize: 12 // } // } // }, // formatter: function(name) { // let res = echartData.filter(v => v.name === name); // res = res[0] || {}; // let unit = res.unit || ''; // return '{name|' + name + '} {value|' + res.value + '}{unit|' + unit + '}' // } // // data: legendName // }, series: [{ type: 'pie', radius: ['45%', '60%'], center: ['50%', '50%'], data: echartData, hoverAnimation: false, itemStyle: { normal: { borderColor: bgColor, borderWidth: 2 } }, labelLine: { normal: { length: 20, length2: 120, lineStyle: { color: '#e6e6e6' } } }, label: { normal: { formatter: params => { return ( '{icon|●}{name|' + params.name + '}{value|' + formatNumber(params.value) + '}' ); }, padding: [0, -100, 25, -100], rich: { icon: { fontSize: 16 }, name: { fontSize: 14, padding: [0, 10, 0, 4], color: '#666666' }, value: { fontSize: 18, fontWeight: 'bold', color: '#333333' } } } }, }] };