From e28b6f1fe6f05905696d4d35f8a5588855e363ad Mon Sep 17 00:00:00 2001 From: eleliauk <2831336720@qq.com> Date: Tue, 6 May 2025 15:35:40 +0800 Subject: [PATCH 1/2] fix(word-cloud): improve animation config handling and add max font size limit --- packages/vchart/src/series/word-cloud/base.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/vchart/src/series/word-cloud/base.ts b/packages/vchart/src/series/word-cloud/base.ts index 934b6bcb12..8c87337eaf 100644 --- a/packages/vchart/src/series/word-cloud/base.ts +++ b/packages/vchart/src/series/word-cloud/base.ts @@ -237,7 +237,10 @@ export class BaseWordCloudSeries)?.preset; const params = { - animationConfig: () => mark.getAnimationConfig()?.appear?.[0] + animationConfig: () => { + const config = mark.getAnimationConfig()?.appear; + return Array.isArray(config) ? config[0] : config; + } }; mark.setAnimationConfig( animationConfig( @@ -420,6 +423,7 @@ export class BaseWordCloudSeries Date: Fri, 9 May 2025 17:57:01 +0800 Subject: [PATCH 2/2] feat(mark-area): add dx and dy properties for label offset with function support --- docs/assets/option/zh/component/mark-area.md | 18 ++++++++++++++++++ .../vchart/src/component/marker/interface.ts | 8 ++++---- .../marker/mark-area/base-mark-area.ts | 4 +++- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/docs/assets/option/zh/component/mark-area.md b/docs/assets/option/zh/component/mark-area.md index 0e59ae94f9..4a0b7f4413 100644 --- a/docs/assets/option/zh/component/mark-area.md +++ b/docs/assets/option/zh/component/mark-area.md @@ -179,6 +179,24 @@ y 轴上的标注区域边界,与 markArea.y 共同构造标注区域。可以 - `'arcOuterMiddle'`: 弧线中点外侧 - `'center'`: 弧线中心 +#### dx(number|function) + +标签在x方向的偏移量,可以是具体的像素值或返回偏移量的函数。当为函数时,其参数为: +```ts +(data: any[], seriesData: any[]) => number +``` +- `data`: 当前标注区域的数据 +- `seriesData`: 关联的系列数据 + +#### dy(number|function) + +标签在y方向的偏移量,可以是具体的像素值或返回偏移量的函数。当为函数时,其参数为: +```ts +(data: any[], seriesData: any[]) => number +``` +- `data`: 当前标注区域的数据 +- `seriesData`: 关联的系列数据 + {{ use: component-marker-label( prefix = '###', noMarkerRef = true diff --git a/packages/vchart/src/component/marker/interface.ts b/packages/vchart/src/component/marker/interface.ts index 28fb3d169c..9cea6e3eb5 100644 --- a/packages/vchart/src/component/marker/interface.ts +++ b/packages/vchart/src/component/marker/interface.ts @@ -241,13 +241,13 @@ export type IMarkerLabelWithoutRefSpec = { */ confine?: boolean; /** - * 水平方向的偏移 + * 水平方向的偏移,可以是具体的像素值或返回偏移量的函数 */ - dx?: number; + dx?: number | ((data: any[], seriesData: any[]) => number); /** - * 垂直方向的偏移 + * 垂直方向的偏移,可以是具体的像素值或返回偏移量的函数 */ - dy?: number; + dy?: number | ((data: any[], seriesData: any[]) => number); } & Partial>>; // label文本 - 文本样式 export type IMarkerLabelSpec = IMarkerLabelWithoutRefSpec & IMarkerRef; diff --git a/packages/vchart/src/component/marker/mark-area/base-mark-area.ts b/packages/vchart/src/component/marker/mark-area/base-mark-area.ts index 44a9a4ae7b..8196122b10 100644 --- a/packages/vchart/src/component/marker/mark-area/base-mark-area.ts +++ b/packages/vchart/src/component/marker/mark-area/base-mark-area.ts @@ -128,7 +128,9 @@ export abstract class BaseMarkArea extends BaseMarker implements text: specLabel.formatMethod ? // type error here will be fixed in components (specLabel.formatMethod(dataPoints, seriesData) as any) - : prevLabel?.text + : prevLabel?.text, + dx: typeof specLabel.dx === 'function' ? specLabel.dx(dataPoints, seriesData) : specLabel.dx, + dy: typeof specLabel.dy === 'function' ? specLabel.dy(dataPoints, seriesData) : specLabel.dy }; }), limitRect,