Skip to content

Commit

Permalink
merge aggregated data items
Browse files Browse the repository at this point in the history
  • Loading branch information
mayswind committed Dec 3, 2024
1 parent 21c86c9 commit b444de5
Showing 1 changed file with 23 additions and 12 deletions.
35 changes: 23 additions & 12 deletions src/components/mobile/TrendsBarChart.vue
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@
<template #inner-end>
<div class="statistics-item-end">
<div class="statistics-percent-line statistics-multi-percent-line display-flex">
<div class="display-inline-flex" :style="{ 'width': (item.percent * data.totalAmount / item.totalAmount) + '%' }"
<div class="display-inline-flex" :style="{ 'width': (item.percent * data.totalAmount / item.totalPositiveAmount) + '%' }"
:key="dataIdx"
v-for="(data, dataIdx) in item.items"
v-show="data.totalAmount > 0">
Expand Down Expand Up @@ -139,7 +139,7 @@ export default {
return getAllDateRanges(this.items, this.startYearMonth, this.endYearMonth, this.dateAggregationType);
},
allDisplayDataItems: function () {
const dateRangeItemsMap = {};
const allDateRangeItemsMap = {};
const legends = [];
for (let i = 0; i < this.items.length; i++) {
Expand All @@ -164,6 +164,8 @@ export default {
continue;
}
const dateRangeItemMap = {};
for (let j = 0; j < item.items.length; j++) {
const dataItem = item.items[j];
let dateRangeKey = '';
Expand All @@ -176,13 +178,18 @@ export default {
dateRangeKey = `${dataItem.year}-${dataItem.month}`;
}
const dataItems = dateRangeItemsMap[dateRangeKey] || [];
dataItems.push(Object.assign({}, legend, {
totalAmount: (this.valueField && isNumber(dataItem[this.valueField])) ? dataItem[this.valueField] : 0
}));
dateRangeItemsMap[dateRangeKey] = dataItems;
if (dateRangeItemMap[dateRangeKey]) {
dateRangeItemMap[dateRangeKey].totalAmount += (this.valueField && isNumber(dataItem[this.valueField])) ? dataItem[this.valueField] : 0;
} else {
const allDataItems = allDateRangeItemsMap[dateRangeKey] || [];
const finalDataItem = Object.assign({}, legend, {
totalAmount: (this.valueField && isNumber(dataItem[this.valueField])) ? dataItem[this.valueField] : 0
});
allDataItems.push(finalDataItem);
dateRangeItemMap[dateRangeKey] = finalDataItem;
allDateRangeItemsMap[dateRangeKey] = allDataItems;
}
}
}
Expand Down Expand Up @@ -211,15 +218,18 @@ export default {
displayDateRange = this.$locale.formatUnixTimeToShortYearMonth(this.userStore, dateRange.minUnixTime);
}
const dataItems = dateRangeItemsMap[dateRangeKey] || [];
const dataItems = allDateRangeItemsMap[dateRangeKey] || [];
let totalAmount = 0;
let totalPositiveAmount = 0;
sortStatisticsItems(dataItems, this.sortingType);
for (let j = 0; j < dataItems.length; j++) {
if (dataItems[j].totalAmount > 0) {
totalAmount += dataItems[j].totalAmount;
totalPositiveAmount += dataItems[j].totalAmount;
}
totalAmount += dataItems[j].totalAmount;
}
if (totalAmount > maxTotalAmount) {
Expand All @@ -230,7 +240,8 @@ export default {
dateRange: dateRange,
displayDateRange: displayDateRange,
items: dataItems,
totalAmount: totalAmount
totalAmount: totalAmount,
totalPositiveAmount: totalPositiveAmount
});
}
Expand Down

0 comments on commit b444de5

Please sign in to comment.