export statistics & analysis data in desktop version

This commit is contained in:
MaysWind
2025-06-15 21:50:31 +08:00
parent 8edc3640f5
commit 4336d1ed1a
14 changed files with 390 additions and 11 deletions
+32
View File
@@ -25,6 +25,9 @@ import {
isArray,
isNumber
} from '@/lib/common.ts';
import {
formatAmount
} from '@/lib/numeral.ts';
import {
getYearMonthFirstUnixTime,
getYearMonthLastUnixTime,
@@ -420,9 +423,38 @@ function clickItem(e: ECElementEvent): void {
});
}
function exportData(): { headers: string[], data: string[][] } {
const headers: string[] = [];
const data: string[][] = [];
headers.push(tt('Date'));
for (let i = 0; i < allSeries.value.length; i++) {
const id = allSeries.value[i].id;
const name = itemsMap.value[id] && props.nameField && itemsMap.value[id][props.nameField] ? getItemName(itemsMap.value[id][props.nameField] as string) : id;
headers.push(name);
}
for (let i = 0; i < allDisplayDateRanges.value.length; i++) {
const row: string[] = [];
row.push(allDisplayDateRanges.value[i]);
row.push(...allSeries.value.map(item => formatAmount(item.data[i], {})));
data.push(row);
}
return {
headers: headers,
data: data
};
}
function onLegendSelectChanged(e: { selected: Record<string, boolean> }): void {
selectedLegends.value = e.selected;
}
defineExpose({
exportData
})
</script>
<style scoped>