refactor(chart): 优化饼图数据处理和样式
- 改进饼图数据处理逻辑,提高数据准确性和可读性 - 调整饼图图例样式,增加矩形图标和统一字体大小
This commit is contained in:
@@ -13,19 +13,26 @@ const option = {
|
||||
trigger: 'item',
|
||||
formatter: (p) => {
|
||||
switch (p.data.questionItem.question_type) {
|
||||
case 1:
|
||||
case 2:
|
||||
return `${p.data.name}: ${p.data.value} ${p.data.answerRate ? '(' + p.data.answerRate + ')' : ''}`;
|
||||
case 10:
|
||||
case 9:
|
||||
return `${p.data.name}: ${p.data.value} ${p.data.answerRate ? '(' + p.data.answerRate + ')' : ''}`;
|
||||
case 5:
|
||||
case 106:
|
||||
return `${p.data.avg ? '平均值<br>' : ''} ${p.data.name}: ${p.data.value}`;
|
||||
case 1:
|
||||
case 2:
|
||||
return `${p.data.name}: ${p.data.value} ${p.data.answerRate ? `(${p.data.answerRate})` : ''}`;
|
||||
case 10:
|
||||
case 9:
|
||||
return `${p.data.name}: ${p.data.value} ${p.data.answerRate ? `(${p.data.answerRate})` : ''}`;
|
||||
case 5:
|
||||
case 106:
|
||||
return `${p.data.avg ? '平均值<br>' : ''} ${p.data.name}: ${p.data.value}`;
|
||||
}
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
icon: 'rect',
|
||||
itemWidth: 14,
|
||||
itemHeight: 14,
|
||||
// itemGap: 10,
|
||||
textStyle: {
|
||||
fontSize: 11
|
||||
},
|
||||
// orient: 'horizontal',
|
||||
bottom: 'top'
|
||||
},
|
||||
|
||||
@@ -36,13 +36,13 @@ export function formatData(data: any, index: number) {
|
||||
});
|
||||
}
|
||||
if (
|
||||
data.question_type === 5 ||
|
||||
data.question_type === 9 ||
|
||||
data.question_type === 106 ||
|
||||
data.question_type === 10
|
||||
data.question_type === 5
|
||||
|| data.question_type === 9
|
||||
|| data.question_type === 106
|
||||
|| data.question_type === 10
|
||||
) {
|
||||
const copyData = setDimensionData(data);
|
||||
_series.data = copyData[index ? index : 0]?.map((item) => {
|
||||
_series.data = copyData[index || 0]?.map((item) => {
|
||||
return {
|
||||
...item,
|
||||
questionItem: { ...data }
|
||||
@@ -55,7 +55,7 @@ export function formatData(data: any, index: number) {
|
||||
}
|
||||
|
||||
export function getTableData(data: any) {
|
||||
let analysis = JSON.parse(JSON.stringify(data));
|
||||
const analysis = JSON.parse(JSON.stringify(data));
|
||||
const rows = analysis.option || [];
|
||||
return rows.map((rowItem: any) => {
|
||||
const rowData = {
|
||||
@@ -75,12 +75,12 @@ export function getTableData(data: any) {
|
||||
});
|
||||
}
|
||||
|
||||
export function setDimensionData(data) {
|
||||
export function setDimensionData(data: any) {
|
||||
const { option } = data;
|
||||
return option.map((item: any) => {
|
||||
let array = [];
|
||||
for (let keys in item) {
|
||||
let obj = {};
|
||||
const array = [];
|
||||
for (const keys in item) {
|
||||
const obj = {};
|
||||
|
||||
if (keys !== 'option' && keys !== 'avg' && item[keys] != 0) {
|
||||
obj.name = data.head.find((head: any) => head.key === keys)?.title;
|
||||
|
||||
Reference in New Issue
Block a user