MCPcopy Create free account
hub / github.com/dataease/SQLBot / checkIsPercent

Function checkIsPercent

frontend/src/views/chat/component/charts/utils.ts:110–161  ·  view source on GitHub ↗
(valueAxes: Array<ChartAxis>, data: Array<ChartData>)

Source from the content-addressed store, hash-verified

108}
109
110export function checkIsPercent(valueAxes: Array<ChartAxis>, data: Array<ChartData>): CheckedData {
111 const result: CheckedData = {
112 isPercent: false,
113 data: [],
114 }
115
116 // 深拷贝原始数据
117 for (let i = 0; i < data.length; i++) {
118 result.data.push({ ...data[i] })
119 }
120
121 // 检查是否有任何一个轴包含百分比数据
122 for (const valueAxis of valueAxes) {
123 const notEmptyData = filter(
124 data,
125 (d) =>
126 d &&
127 d[valueAxis.value] !== null &&
128 d[valueAxis.value] !== undefined &&
129 d[valueAxis.value] !== '' &&
130 d[valueAxis.value] !== 0 &&
131 d[valueAxis.value] !== '0'
132 )
133
134 if (notEmptyData.length > 0) {
135 const v = notEmptyData[0][valueAxis.value] + ''
136 if (endsWith(v.trim(), '%')) {
137 result.isPercent = true
138 break // 找到一个百分比轴就结束检查
139 }
140 }
141 }
142
143 // 如果发现任何百分比轴,处理所有轴的所有百分比数据
144 if (result.isPercent) {
145 for (let i = 0; i < data.length; i++) {
146 for (const valueAxis of valueAxes) {
147 const value = data[i][valueAxis.value]
148 if (value !== null && value !== undefined && value !== '') {
149 const strValue = String(value).trim()
150 if (endsWith(strValue, '%')) {
151 const formatValue = replace(strValue, '%', '')
152 const numValue = Number(formatValue)
153 result.data[i][valueAxis.value] = isNaN(numValue) ? 0 : numValue
154 }
155 }
156 }
157 }
158 }
159
160 return result
161}

Callers 4

initMethod · 0.90
initMethod · 0.90
initMethod · 0.90
initMethod · 0.90

Calls 3

filterFunction · 0.85
replaceFunction · 0.85
pushMethod · 0.45

Tested by

no test coverage detected