配置项如下
var salvProName = ['专任教师', '管理职员', '教辅人员', '工勤人员', '附校人员'];
var salvProValue = [63, 50, 41, 51, 32];
var salvProMax; //最大值
var percent = [];
var percentArr = [];
var num = 0;
for (var i = 0; i < salvProValue.length; i++) {
num = num + salvProValue[i];
}
salvProMax = num;
for (var i = 0; i < salvProValue.length; i++) {
percent.push((salvProValue[i] / salvProMax) * 100);
}
option = {
grid: {
left: '2%',
right: '20%',
bottom: '50%',
top: '2%',
containLabel: true,
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'none',
},
formatter: function (params) {
return params[0].name + ' : ' + params[0].value;
},
},
xAxis: {
show: false,
type: 'value',
max: salvProMax,
},
yAxis: [
{
type: 'category',
inverse: true,
axisLabel: {
show: true,
textStyle: {
color: '#000',
},
},
splitLine: {
show: false,
},
axisTick: {
show: false,
},
axisLine: {
show: false,
},
data: salvProName,
},
{
type: 'category',
inverse: true,
axisTick: 'none',
axisLine: 'none',
show: true, // 显示右侧的文字
axisLabel: {
formatter: '{value}人',
textStyle: {
color: '#818181',
fontSize: '12',
},
},
data: salvProValue,
},
],
series: [
{
name: '蓝色进度条',
type: 'bar',
hoverAnimation: false,
zlevel: 1,
itemStyle: {
normal: {
barBorderRadius: 5,
color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
{
offset: 0,
color: '#3f9bee',
},
{
offset: 1,
color: '#4da4f3',
},
]),
},
},
barWidth: 20,
data: salvProValue,
label: {
normal: {
show: true,
formatter:params =>{
return (params['data'] / salvProMax * 100).toFixed(2) + '%'
},
// formatter: '{@salvProValue}%', // 直接显示人数
// formatter:function(e) {
// var total=0
// for(var i=0; i<salvProValue.length; i++) {
// total+=salvProValue[i]
// }
// for(i=0; i<salvProValue.length; i++) {
// var ePercent=(salvProValue[i]/total*100).toFixed(2) + '%'
// if(salvProValue[i].name===e) {
// return e + ' ' + salvProValue[i] + ' ' + ePercent
// }
// }
// },
// formatter: function (value) {
// console.log(value);
// return [ value.value + '%'].join('');
// },
// formatter: function (value) {
// salvProValue.map((item) => {
// return salvProMax;
// });
// },
// formatter: function (params) {
// return (
// '<span style="color: #fff;">' +
// params[0].name +
// '件数:' +
// params[0].value.toString().replace(/(\d)(?=(?:\d{3}[+]?)+$)/g, '$1,') +
// '件</span>'
// );
// },
// formatter: function () {
// for(var i=0; i<percent.length; i++){
// percentArr.push(percent[i] + '%');
// console.log(percentArr)
// }
// return parseInt(percentArr) + '%';
// },
// formatter: function (parmas) {
// console.log(parmas);
// for (var i = 0; i < salvProValue.length; i++) {
// if (salvProValue[i].name == name) {
// return salvProValue[i].value + '%';
// }
// }
// },
position: 'right',
textStyle: {
color: '#4b78a9',
fontSize: '16',
},
},
},
},
{
name: '背景',
type: 'bar',
hoverAnimation: false,
barWidth: 20,
barGap: '-100%',
data: salvProValue.map((item) => {
return salvProMax;
}),
itemStyle: {
normal: {
color: '#cae4fb',
barBorderRadius: 5,
},
},
// label:{
// distance: 10,
// }
},
],
};