实现效果:
<template>
<div class="Distribution">
<div id="DistributionChart" style="flex: 1; height: 288px; margin-top: -20px; padding: 0 20px 0 0"></div>
</div>
</template>
<script>
import { getProposedInvestments } from '@/api/government';
const colors = [
'rgb(1,231,225)',
'rgb(229,88,234)',
'rgb(160,81,235)',
'rgb(42,178,116)',
'rgb(233,156,187)',
'rgb(241,213,100)',
'rgb(116,216,243)',
'rgb(55,182,255)',
'rgb(1,231,225)',
'rgb(229,88,234)',
'rgb(160,81,235)',
'rgb(42,178,116)',
'rgb(233,156,187)',
'rgb(241,213,100)',
'rgb(116,216,243)',
'rgb(55,182,255)',
'rgb(1,231,225)',
'rgb(229,88,234)',
'rgb(160,81,235)',
'rgb(42,178,116)',
'rgb(233,156,187)',
'rgb(241,213,100)',
'rgb(116,216,243)',
'rgb(55,182,255)',
'rgb(1,231,225)',
'rgb(229,88,234)',
'rgb(160,81,235)',
'rgb(42,178,116)',
'rgb(233,156,187)',
'rgb(241,213,100)',
'rgb(116,216,243)',
'rgb(55,182,255)',
'rgb(1,231,225)',
'rgb(229,88,234)',
'rgb(160,81,235)',
'rgb(42,178,116)',
'rgb(233,156,187)',
'rgb(241,213,100)',
'rgb(116,216,243)',
'rgb(55,182,255)',
];
export default {
data() {
return {
investmentsCateRateData: [],
};
},
mounted() {
this.getProposedInvestments();
},
methods: {
initMap() {
var myChart = this.$echarts.init(document.getElementById('DistributionChart'));
const option = {
tooltip: {
show: true,
trigger: 'item',
},
color: colors,
series: [
{
type: 'pie',
radius: ['30%', '55%'],
label: {
show: true,
fontFamily: 'TencentSans',
},
emphasis: {
label: {
show: true,
fontSize: 14,
fontWeight: 'bold',
},
},
data: this.investmentsCateRateData,
},
],
};
myChart.setOption(option);
},
getProposedInvestments() {
getProposedInvestments().then((res) => {
const { status, data } = res;
const { proposedInvestmentsCateRate } = JSON.parse(data);
if (status === 200) {
// this.investmentsCateRateData=[{label: {color: "rgb(1,231,225)"}
// name: "农业:7.66%"
// value: "7.66"}]
this.investmentsCateRateData = proposedInvestmentsCateRate.map((item, index) => {
let cateData = {
name: item.category + ':' + item.rate,
value: item.rate.slice(0, item.rate.length - 1),
label: { color: colors[index] },
};
return cateData;
});
this.initMap();
}
});
},
},
};
</script>
over