Add File
This commit is contained in:
41
frontend/src/views/chat/component/charts/utils.ts
Normal file
41
frontend/src/views/chat/component/charts/utils.ts
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
import type { ChartAxis, ChartData } from '@/views/chat/component/BaseChart.ts'
|
||||||
|
import { endsWith, filter, replace } from 'lodash-es'
|
||||||
|
|
||||||
|
interface CheckedData {
|
||||||
|
isPercent: boolean
|
||||||
|
data: Array<ChartData>
|
||||||
|
}
|
||||||
|
|
||||||
|
export function checkIsPercent(valueAxis: ChartAxis, data: Array<ChartData>): CheckedData {
|
||||||
|
const result: CheckedData = {
|
||||||
|
isPercent: false,
|
||||||
|
data: [],
|
||||||
|
}
|
||||||
|
|
||||||
|
const notEmptyData = filter(
|
||||||
|
data,
|
||||||
|
(d) =>
|
||||||
|
d &&
|
||||||
|
d[valueAxis.value] !== null &&
|
||||||
|
d[valueAxis.value] !== undefined &&
|
||||||
|
d[valueAxis.value] !== 0 &&
|
||||||
|
d[valueAxis.value] !== '0'
|
||||||
|
)
|
||||||
|
if (notEmptyData.length > 0) {
|
||||||
|
const v = notEmptyData[0][valueAxis.value] + ''
|
||||||
|
if (endsWith(v.trim(), '%')) {
|
||||||
|
result.isPercent = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (let i = 0; i < data.length; i++) {
|
||||||
|
const v = data[i]
|
||||||
|
const _v = { ...v } as ChartData
|
||||||
|
if (result.isPercent) {
|
||||||
|
const formatValue = replace(v[valueAxis.value], '%', '')
|
||||||
|
_v[valueAxis.value] = Number(formatValue)
|
||||||
|
}
|
||||||
|
result.data.push(_v)
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user