Skip to content

Commit 2013ddd

Browse files
committed
fix: update comparison value calculation in KpiCardWidget and fix series label formatting in StackedBarChart
1 parent e226eb9 commit 2013ddd

2 files changed

Lines changed: 9 additions & 5 deletions

File tree

custom/widgets/KpiCardWidget.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,9 @@ const label = computed(() => kpiConfig.value?.subtitle?.field
124124
.join(': ')
125125
: kpiConfig.value?.subtitle?.text ?? kpiConfig.value?.title ?? props.widget.label)
126126
const formattedValue = computed(() => `${kpiConfig.value?.value.prefix ?? ''}${formatValue(value.value, kpiConfig.value?.value.format)}${kpiConfig.value?.value.suffix ?? ''}`)
127-
const comparisonValue = computed(() => toFiniteNumber(kpiConfig.value?.comparison?.field
128-
? firstRow.value[kpiConfig.value.comparison.field]
129-
: undefined))
127+
const comparisonValue = computed(() => kpiConfig.value?.comparison?.field
128+
? value.value - toFiniteNumber(firstRow.value[kpiConfig.value.comparison.field])
129+
: 0)
130130
const comparison = computed(() => {
131131
const config = kpiConfig.value?.comparison
132132

custom/widgets/chart/StackedBarChart.vue

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ const { el: rootEl, width: rootWidth } = useElementSize<HTMLDivElement>()
120120
const { el: svgEl, width: svgWidth, height: svgHeight } = useElementSize<HTMLDivElement>()
121121
122122
const barGap = 10
123-
const seriesNames = computed(() => Array.from(new Set(props.rows.map((row) => formatChartLabel(row[props.seriesField])))))
123+
const seriesNames = computed(() => Array.from(new Set(props.rows.map((row) => formatSeriesLabel(row[props.seriesField])))))
124124
const normalizedSeries = computed(() => seriesNames.value.map((name, index) => ({
125125
name,
126126
color: props.colors?.[index] || CHART_COLORS[index % CHART_COLORS.length],
@@ -141,7 +141,7 @@ const groupedRows = computed(() => {
141141
for (const row of props.rows) {
142142
const label = formatChartLabel(row[props.xField])
143143
const item = grouped.get(label) ?? { [props.xField]: label }
144-
const seriesName = formatChartLabel(row[props.seriesField])
144+
const seriesName = formatSeriesLabel(row[props.seriesField])
145145
146146
item[seriesName] = toFiniteNumber(item[seriesName]) + toFiniteNumber(row[props.yField])
147147
@@ -240,4 +240,8 @@ function getBarTooltip(bar: { label: string, total: number, segments: Array<{ na
240240
...segmentLines,
241241
].join('\n')
242242
}
243+
244+
function formatSeriesLabel(value: unknown) {
245+
return typeof value === 'string' ? value : String(value)
246+
}
243247
</script>

0 commit comments

Comments
 (0)