fix(data-vi): association fields transform bug (#3737)

* fix(data-vi): association fields transform bug

* fix: bug
This commit is contained in:
YANG QIA 2024-03-17 15:16:06 +08:00 committed by GitHub
parent 4cf560b177
commit 3be6b7c0c6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 8 additions and 33 deletions

View File

@ -76,8 +76,7 @@ export class DualAxes extends G2PlotChart {
yField,
colorField: () => {
const props = fieldProps[yField];
const transformer = props?.transformer;
return props?.label || (transformer ? transformer(yField) : yField);
return props?.label || yField;
},
axis: {
y: {

View File

@ -1,4 +1,3 @@
import { transform } from 'lodash';
import { Chart, ChartProps, ChartType, RenderProps } from '../chart';
import configs from './configs';
@ -25,31 +24,17 @@ export class G2PlotChart extends Chart {
};
getProps({ data, general, advanced, fieldProps }: RenderProps) {
const meta = {};
// Some charts render wrong when the field name contains a dot in G2Plot
const replace = (key: string) => key.replace(/\./g, '_');
general = Object.entries(general).reduce((obj, [key, value]) => {
obj[key] = value;
if (key.includes('Field')) {
if (Array.isArray(value)) {
obj[key] = value.map((v) => (v?.includes('.') ? replace(v) : v));
} else if (typeof value === 'string' && value.includes('.')) {
obj[key] = replace(value);
}
}
return obj;
}, {});
const config = {
legend: {
color: {
itemLabelText: (datnum) => {
const props = fieldProps[datnum.label];
itemLabelText: (datnum: { label: string }) => {
const props = fieldProps[general.seriesField];
const transformer = props?.transformer;
return props?.label || (transformer ? transformer(datnum.label) : datnum.label);
return transformer ? transformer(datnum.label) : datnum.label;
},
},
},
tooltip: (d, index, data, column) => {
tooltip: (d, index: number, data, column: any) => {
const field = column.y.field;
const props = fieldProps[field];
const name = props?.label || field;
@ -59,30 +44,21 @@ export class G2PlotChart extends Chart {
},
axis: {
x: {
labelFormatter: (datnum) => {
labelFormatter: (datnum: any) => {
const props = fieldProps[general.xField];
const transformer = props?.transformer;
return transformer ? transformer(datnum) : datnum;
},
},
y: {
labelFormatter: (datnum) => {
labelFormatter: (datnum: any) => {
const props = fieldProps[general.yField];
const transformer = props?.transformer;
return transformer ? transformer(datnum) : datnum;
},
},
},
data: data.map((item) => {
const obj = {};
Object.entries(item).forEach(([key, value]) => {
if (key.includes('.')) {
key = replace(key);
}
obj[key] = value;
});
return obj;
}),
data,
theme: 'classic',
animate: {
enter: {