diff --git a/common/changes/@visactor/vchart/fix-extension-mark-update_2025-11-24-09-13.json b/common/changes/@visactor/vchart/fix-extension-mark-update_2025-11-24-09-13.json new file mode 100644 index 0000000000..08ed5d67e1 --- /dev/null +++ b/common/changes/@visactor/vchart/fix-extension-mark-update_2025-11-24-09-13.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "fix: extensionMark can remove animation\n\n", + "type": "none", + "packageName": "@visactor/vchart" + } + ], + "packageName": "@visactor/vchart", + "email": "dingling112@gmail.com" +} \ No newline at end of file diff --git a/packages/vchart/src/component/custom-mark/custom-mark.ts b/packages/vchart/src/component/custom-mark/custom-mark.ts index 011dc66c1e..21d62eed34 100644 --- a/packages/vchart/src/component/custom-mark/custom-mark.ts +++ b/packages/vchart/src/component/custom-mark/custom-mark.ts @@ -4,7 +4,8 @@ import { ComponentTypeEnum } from '../interface/type'; import { LayoutLevel, LayoutZIndex } from '../../constant/layout'; import { PREFIX } from '../../constant/base'; import type { EnableMarkType, ICustomMarkGroupSpec, ICustomMarkSpec, ILayoutRect } from '../../typings'; -import { IComponentMark, MarkTypeEnum, type IGroupMark } from '../../mark/interface'; +import type { IComponentMark } from '../../mark/interface'; +import { MarkTypeEnum, type IGroupMark } from '../../mark/interface'; // eslint-disable-next-line no-duplicate-imports import { Bounds, isEqual, isNil, isValid, isValidNumber } from '@visactor/vutils'; import { Factory } from '../../core/factory'; @@ -111,11 +112,12 @@ export class CustomMark extends BaseComponent> { if (isValid(spec.dataId) || isValidNumber(spec.dataIndex)) { const dataview = this.getChart().getSeriesData(spec.dataId, spec.dataIndex); + if (dataview) { + mark.setDataView(dataview); dataview.target.addListener('change', () => { mark.getData().updateData(); }); - mark.setDataView(dataview); } } } diff --git a/packages/vchart/src/series/base/base-series.ts b/packages/vchart/src/series/base/base-series.ts index d4c3fad7a7..a672590d62 100644 --- a/packages/vchart/src/series/base/base-series.ts +++ b/packages/vchart/src/series/base/base-series.ts @@ -725,7 +725,7 @@ export abstract class BaseSeries extends BaseModel imp mark.setUserId(spec.id); } - if (options.hasAnimation) { + if (options.hasAnimation && spec.animation !== false) { // 自定义图元默认不添加动画 const config = animationConfig({}, userAnimationConfig(spec.type, spec as any, this._markAttributeContext)); mark.setAnimationConfig(config); @@ -736,7 +736,9 @@ export abstract class BaseSeries extends BaseModel imp spec.children?.forEach((s, i) => { this._createExtensionMark(s as any, mark, namePrefix, i, options); }); - } else if (!parentMark && (!isNil(spec.dataId) || !isNil(spec.dataIndex))) { + } + + if (!isNil(spec.dataId) || !isNil(spec.dataIndex)) { const dataView = this._option.getSeriesData(spec.dataId, spec.dataIndex); if (dataView === this._rawData) {