diff --git a/common/changes/@visactor/vchart/fix-circle-pack-field_2025-06-04-11-02.json b/common/changes/@visactor/vchart/fix-circle-pack-field_2025-06-04-11-02.json new file mode 100644 index 0000000000..b1fdcb8a95 --- /dev/null +++ b/common/changes/@visactor/vchart/fix-circle-pack-field_2025-06-04-11-02.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@visactor/vchart", + "comment": "fix: solve ciclePacking valueField field not work", + "type": "none" + } + ], + "packageName": "@visactor/vchart" +} \ No newline at end of file diff --git a/packages/vchart/src/series/circle-packing/circle-packing.ts b/packages/vchart/src/series/circle-packing/circle-packing.ts index 7ad17e82d4..9c12b97f84 100644 --- a/packages/vchart/src/series/circle-packing/circle-packing.ts +++ b/packages/vchart/src/series/circle-packing/circle-packing.ts @@ -84,6 +84,18 @@ export class CirclePackingSeries< return [this._valueField]; } + _updateValueField = (data: Array) => { + if (this._spec.valueField) { + return data.map(item => { + return { + ...item, + value: item[this._spec.valueField] + }; + }); + } + return data; + }; + setAttrFromSpec(): void { super.setAttrFromSpec(); @@ -119,11 +131,18 @@ export class CirclePackingSeries< (this as unknown as IDrillable).initDrillableData(this._dataSet); } + // 注册映射 value 为指定字段 + registerDataSetInstanceTransform(this._dataSet, 'updateValueField', this._updateValueField); // 注册布局算法 registerDataSetInstanceTransform(this._dataSet, 'circlePackingLayout', circlePackingLayout); // 注册扁平化算法 registerDataSetInstanceTransform(this._dataSet, 'flatten', flatten); + // 映射 value 为指定字段 + rawData.transform({ + type: 'updateValueField' + }); + // 布局算法 rawData.transform({ type: 'circlePackingLayout',