feat: add thousands separator settings

This commit is contained in:
ulleo
2026-06-24 18:58:19 +08:00
parent 65366d0a41
commit 582893ab65
4 changed files with 40 additions and 12 deletions
@@ -7,6 +7,7 @@ import {
getAxesWithFilter,
processMultiQuotaData,
} from '@/views/chat/component/charts/utils.ts'
import { some } from 'lodash-es'
export class Bar extends BaseG2Chart {
constructor(id: string) {
@@ -106,7 +107,7 @@ export class Bar extends BaseG2Chart {
labelAutoWrap: true,
labelAutoEllipsis: true,
labelFormatter: (value: any) => {
const formatted = axes.y[0].formatNumber ? formatNumber(value) : value
const formatted = some(axes.y, 'formatNumber') ? formatNumber(value) : value
return String(formatted)
},
},
@@ -125,7 +126,11 @@ export class Bar extends BaseG2Chart {
tooltip: { series: series.length > 0, shared: true },
},
tooltip: (data: any) => {
const v = y[0].formatNumber ? formatNumber(data[y[0].value]) : data[y[0].value]
let isFormat = y[0].formatNumber
if (axes.multiQuota.length > 0) {
isFormat = data['sqlbot_axis_format']
}
const v = isFormat ? formatNumber(data[y[0].value]) : data[y[0].value]
if (series.length > 0) {
const s = series[0].formatNumber
? formatNumber(data[series[0].value])
@@ -146,10 +151,14 @@ export class Bar extends BaseG2Chart {
{
text: (data: any) => {
const value = data[y[0].value]
let isFormat = y[0].formatNumber
if (axes.multiQuota.length > 0) {
isFormat = data['sqlbot_axis_format']
}
if (value === undefined || value === null) {
return ''
}
const v = y[0].formatNumber ? formatNumber(value) : value
const v = isFormat ? formatNumber(value) : value
return `${v}${_data.isPercent ? '%' : ''}`
},
position: (data: any) => {
@@ -7,6 +7,7 @@ import {
getAxesWithFilter,
processMultiQuotaData,
} from '@/views/chat/component/charts/utils.ts'
import { some } from 'lodash-es'
export class Column extends BaseG2Chart {
constructor(id: string) {
@@ -97,7 +98,7 @@ export class Column extends BaseG2Chart {
y: {
title: false, // y[0].name,
labelFormatter: (value: any) => {
const formatted = axes.y[0].formatNumber ? formatNumber(value) : value
const formatted = some(axes.y, 'formatNumber') ? formatNumber(value) : value
return String(formatted)
},
},
@@ -116,7 +117,11 @@ export class Column extends BaseG2Chart {
tooltip: { series: series.length > 0, shared: true },
},
tooltip: (data: any) => {
const v = y[0].formatNumber ? formatNumber(data[y[0].value]) : data[y[0].value]
let isFormat = y[0].formatNumber
if (axes.multiQuota.length > 0) {
isFormat = data['sqlbot_axis_format']
}
const v = isFormat ? formatNumber(data[y[0].value]) : data[y[0].value]
if (series.length > 0) {
const s = series[0].formatNumber
? formatNumber(data[series[0].value])
@@ -137,10 +142,14 @@ export class Column extends BaseG2Chart {
{
text: (data: any) => {
const value = data[y[0].value]
let isFormat = y[0].formatNumber
if (axes.multiQuota.length > 0) {
isFormat = data['sqlbot_axis_format']
}
if (value === undefined || value === null) {
return ''
}
const v = y[0].formatNumber ? formatNumber(value) : value
const v = isFormat ? formatNumber(value) : value
return `${v}${_data.isPercent ? '%' : ''}`
},
position: (data: any) => {
@@ -7,6 +7,7 @@ import {
getAxesWithFilter,
processMultiQuotaData,
} from '@/views/chat/component/charts/utils.ts'
import { some } from 'lodash-es'
export class Line extends BaseG2Chart {
constructor(id: string) {
@@ -71,7 +72,7 @@ export class Line extends BaseG2Chart {
y: {
title: false, // y[0].name,
labelFormatter: (value: any) => {
const formatted = axes.y[0].formatNumber ? formatNumber(value) : value
const formatted = some(axes.y, 'formatNumber') ? formatNumber(value) : value
return String(formatted)
},
},
@@ -96,10 +97,14 @@ export class Line extends BaseG2Chart {
{
text: (data: any) => {
const value = data[y[0].value]
let isFormat = y[0].formatNumber
if (axes.multiQuota.length > 0) {
isFormat = data['sqlbot_axis_format']
}
if (value === undefined || value === null) {
return ''
}
const v = y[0].formatNumber ? formatNumber(value) : value
const v = isFormat ? formatNumber(value) : value
return `${v}${_data.isPercent ? '%' : ''}`
},
style: {
@@ -115,7 +120,11 @@ export class Line extends BaseG2Chart {
]
: [],
tooltip: (data: any) => {
const v = y[0].formatNumber ? formatNumber(data[y[0].value]) : data[y[0].value]
let isFormat = y[0].formatNumber
if (axes.multiQuota.length > 0) {
isFormat = data['sqlbot_axis_format']
}
const v = isFormat ? formatNumber(data[y[0].value]) : data[y[0].value]
if (series.length > 0) {
const s = series[0].formatNumber
? formatNumber(data[series[0].value])
@@ -84,9 +84,9 @@ export function processMultiQuotaData(
data: Array<ChartData>
) {
const _list: Array<ChartData> = []
const _map: { [propName: string]: string } = {}
const _map: { [propName: string]: ChartAxis } = {}
y.forEach((axis) => {
_map[axis.value] = axis.name
_map[axis.value] = axis
})
for (const datum of data) {
multiQuota.forEach((quota) => {
@@ -95,7 +95,8 @@ export function processMultiQuotaData(
_data[xAxis.value] = datum[xAxis.value]
}
_data['sqlbot_auto_quota'] = datum[quota]
_data['sqlbot_auto_series'] = _map[quota]
_data['sqlbot_auto_series'] = _map[quota].name
_data['sqlbot_axis_format'] = _map[quota].formatNumber
_list.push(_data)
})
}