
const options = computed(() => {
let series = [];
if (
props.linechartData?.series &&
Array.isArray(props.linechartData?.series)
) {
series = props.linechartData?.series?.map((item) => ({
name: item.name,
barMaxWidth: 60,
label: {
show: true,
formatter(params) {
if (params.value === 0) {
return '';
}
return params.value;
},
},
type: 'bar',
stack: 'stack',
data: item.data,
}));
series.push({
name: 'Total',
type: 'bar',
stack: 'stack',
label: {
show: true,
position: 'right',
},
data: new Array(props.linechartData?.series[0].data.length).fill(0),
});
function getSum(params) {
let dataValue = 0;
for (let i = 0; i < series.length; i++) {
dataValue += series[i].data[params.dataIndex];
}
return dataValue;
}
series[series.length - 1].label.formatter = getSum;
}
return {
title: {
text: '核查案件涉及产品及诉点分布情況',
},
tooltip: {
trigger: 'item',
formatter(params) {
console.log('-----------', params);
if (params.seriesName === 'Total') {
return '';
}
return `${params.seriesName} <br />${params.marker}${params.name}: ${params.value}`;
},
},
legend: {
data: props.linechartData?.series?.map((item) => item.name) || [],
orient: 'horizontal',
top: 'bottom',
},
color: props.linechartData?.series?.map((item) => item.color) || [],
xAxis: {
type: 'value',
},
yAxis: {
type: 'category',
data: props.linechartData?.categories || [],
inverse: true,
},
series,
};
});