当循环调用多个接口获取data时,echarts饼状图的颜色也是随机的,并不固定,所以我们现在来通过name值固定颜色展示。
一:
首先在.draw()里面固定写好每个name值你要对应的颜色,如name值为 ‘Cancelled’ 时,颜色为 ‘#546FC6’ 。
const colorMap = {
'Cancelled': '#546FC6',
'Succeed': '#73C0DF',
'Inited': '#FAC858',
'Running': '#91CD76',
'Failed': '#ED6462',
}
二:在draw里面循环需要的状态参数并传值,获取每种状态的数值value,可以通过设置series中的itemStyle属性来指定每个饼图项(slice)的颜色,下面展示如何根据每个饼图项的name来设置不同的颜色。
const statusType = ['Cancelled', 'Succeed', 'Inited', 'Running', 'Failed']
const statusList = [] //最终的需要的data
// 获取每种状态下的数值
statusType.forEach(element => {
axios.get( `http://${window.location.host}/di/v1/experimentRuns`,{params:{
page: 1,
size: 10,
username: storage.get("baseInfo", "local").username,
status: element //element就是传入的状态
}} ).then(res => {
//在已经赋值好的空数组填入我们需要的值name,value,itemStyle
statusList.push({name:element, value:res.data.result.total, itemStyle: {color: colorMap[element]} })
this.taskChart.setOption({
series: [{
data: statusList
}]