Skip to content

Commit 86e7cbc

Browse files
committed
fix(column): 修复百分比柱状图 总和为零时的 bug
1 parent 052b505 commit 86e7cbc

File tree

2 files changed

+48
-2
lines changed

2 files changed

+48
-2
lines changed

__tests__/bugs/issue-3085-spec.ts

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import { Column } from '../../src';
2+
import { createDiv } from '../utils/dom';
3+
4+
describe('#3085', () => {
5+
it('Column sum', () => {
6+
const data = [
7+
{
8+
country: 'Asia',
9+
year: '1750',
10+
value: 502,
11+
},
12+
{
13+
country: 'Ar',
14+
year: '1750',
15+
value: -502,
16+
},
17+
];
18+
19+
const column = new Column(createDiv(), {
20+
data,
21+
xField: 'year',
22+
yField: 'value',
23+
seriesField: 'country',
24+
isPercent: true,
25+
isStack: true,
26+
});
27+
28+
column.render();
29+
column.update(column.options);
30+
31+
expect(column.chart.getOptions().data).toEqual([
32+
{
33+
country: 'Asia',
34+
year: '1750',
35+
value: 0,
36+
},
37+
{
38+
country: 'Ar',
39+
year: '1750',
40+
value: 0,
41+
},
42+
]);
43+
44+
column.destroy();
45+
});
46+
});

src/utils/transform/percent.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export function percent(data: Data, measure: string, groupField: string, as: str
3131
return map(data, (datum: Datum) => {
3232
const v = datum[measure];
3333
const groupValue = datum[groupField];
34-
const percentage = isRealNumber(v) ? v / sumMap.get(groupValue) : 0;
34+
const percentage = isRealNumber(v) && sumMap.get(groupValue) !== 0 ? v / sumMap.get(groupValue) : 0;
3535

3636
return {
3737
...datum,
@@ -72,7 +72,7 @@ export function getDeepPercent(data: Record<string, any>[], measure: string, fie
7272
// 获取分组得到的枚举key值
7373
const groupValue = reduce(fields, (value, field) => `${value}${datum[field]}`, '');
7474

75-
const percentage = isRealNumber(v) ? v / sumMap.get(groupValue) : 0;
75+
const percentage = isRealNumber(v) && sumMap.get(groupValue) !== 0 ? v / sumMap.get(groupValue) : 0;
7676

7777
return {
7878
...datum,

0 commit comments

Comments
 (0)