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