From 0d1face17584310b949091b25b3574790ea8c948 Mon Sep 17 00:00:00 2001 From: kkxxkk2019 Date: Fri, 28 Mar 2025 10:53:43 +0800 Subject: [PATCH 1/3] feat: add `alwayCalculateTotal` for total label --- packages/vchart/src/chart/stack.ts | 4 ++++ packages/vchart/src/component/label/interface.ts | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/packages/vchart/src/chart/stack.ts b/packages/vchart/src/chart/stack.ts index 471db1a144..45a7a0b36f 100644 --- a/packages/vchart/src/chart/stack.ts +++ b/packages/vchart/src/chart/stack.ts @@ -56,6 +56,10 @@ export class Stack { } // total label need percent const hasTotalLabel = series.some(s => { + // 如果设置了alwayCalculateTotal,那么一定需要计算total + if (s.getSpec()?.totalLabel?.alwayCalculateTotal) { + return true; + } return s.getSpec()?.totalLabel?.visible; }); const hasPercent = hasTotalLabel || series.some(s => s.getPercent()); diff --git a/packages/vchart/src/component/label/interface.ts b/packages/vchart/src/component/label/interface.ts index f43f7636c5..ac64f695bb 100644 --- a/packages/vchart/src/component/label/interface.ts +++ b/packages/vchart/src/component/label/interface.ts @@ -152,6 +152,11 @@ export type ITotalLabelSpec = Pick< * @default 'top' */ position?: 'top' | 'bottom'; + /** + * 不管总计标签是否展示,内部都默认计算总计值 + * @default false + */ + alwayCalculateTotal?: boolean; }; export interface ITotalLabelTheme From e2a24954cdf62937e90748cdac6fbf61ad324870 Mon Sep 17 00:00:00 2001 From: kkxxkk2019 Date: Fri, 28 Mar 2025 11:03:41 +0800 Subject: [PATCH 2/3] chore: update rush change log --- .../feat-calculate-top-default_2025-03-28-03-03.json | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 common/changes/@visactor/vchart/feat-calculate-top-default_2025-03-28-03-03.json diff --git a/common/changes/@visactor/vchart/feat-calculate-top-default_2025-03-28-03-03.json b/common/changes/@visactor/vchart/feat-calculate-top-default_2025-03-28-03-03.json new file mode 100644 index 0000000000..a460e5bcb3 --- /dev/null +++ b/common/changes/@visactor/vchart/feat-calculate-top-default_2025-03-28-03-03.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@visactor/vchart", + "comment": "feat: add \\`alwayCalculateTotal\\` for total label", + "type": "none" + } + ], + "packageName": "@visactor/vchart" +} \ No newline at end of file From eb5387671d6284351edc40028d9b58b00adcc91e Mon Sep 17 00:00:00 2001 From: kkxxkk2019 Date: Fri, 28 Mar 2025 16:12:01 +0800 Subject: [PATCH 3/3] fix: fix the type error --- packages/vchart/src/event/event.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/vchart/src/event/event.ts b/packages/vchart/src/event/event.ts index c06a8d7362..a7a61c6606 100644 --- a/packages/vchart/src/event/event.ts +++ b/packages/vchart/src/event/event.ts @@ -111,7 +111,13 @@ export class Event implements IEvent { return this; } - prevent(eType: Evt, except?: EventCallback) { + prevent( + eType: Evt, + except?: { + handler: EventCallback; + level: EventBubbleLevel; + } + ): this { this._eventDispatcher.prevent(eType, except); return this; }