From dab392358348c993dd5473f1b7ce3d9ef8284857 Mon Sep 17 00:00:00 2001 From: xile611 Date: Tue, 25 Mar 2025 15:56:58 +0800 Subject: [PATCH 1/4] fix: data.fields can set domain of field --- packages/vchart/src/series/base/base-series.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vchart/src/series/base/base-series.ts b/packages/vchart/src/series/base/base-series.ts index 48245b28cd..7485c7c1f5 100644 --- a/packages/vchart/src/series/base/base-series.ts +++ b/packages/vchart/src/series/base/base-series.ts @@ -419,7 +419,7 @@ export abstract class BaseSeries extends BaseModel imp } else if (this._rawData) { // 如果有设置统计信息,应当与设置值保持一致 const fieldInfo = this._rawData.getFields()?.[field]; - if (fieldInfo && fieldInfo.lockStatisticsByDomain && fieldInfo.domain) { + if (fieldInfo && fieldInfo.domain) { this._rawStatisticsCache[field] = {}; if (isNumeric) { this._rawStatisticsCache[field].min = minInArray(fieldInfo.domain); From e87b885943472557ea3c12cb3b06bda7eaf65fea Mon Sep 17 00:00:00 2001 From: xile611 Date: Tue, 25 Mar 2025 15:57:22 +0800 Subject: [PATCH 2/4] docs: update changlog of rush --- .../fix-set-domain-of-field_2025-03-25-07-57.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 common/changes/@visactor/vchart/fix-set-domain-of-field_2025-03-25-07-57.json diff --git a/common/changes/@visactor/vchart/fix-set-domain-of-field_2025-03-25-07-57.json b/common/changes/@visactor/vchart/fix-set-domain-of-field_2025-03-25-07-57.json new file mode 100644 index 0000000000..568b294286 --- /dev/null +++ b/common/changes/@visactor/vchart/fix-set-domain-of-field_2025-03-25-07-57.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "fix: data.fields can set domain of field\n\n", + "type": "none", + "packageName": "@visactor/vchart" + } + ], + "packageName": "@visactor/vchart", + "email": "dingling112@gmail.com" +} \ No newline at end of file From adc0cc433d09a305ff0f05e30f7f1de28a94dd5a Mon Sep 17 00:00:00 2001 From: xile611 Date: Wed, 26 Mar 2025 10:11:42 +0800 Subject: [PATCH 3/4] feat: add options `full` to lockStatisticsByDomain --- .../src/data/transforms/dimension-statistics.ts | 2 +- packages/vchart/src/series/base/base-series.ts | 2 +- packages/vchart/src/typings/spec/common.ts | 12 +++++++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/vchart/src/data/transforms/dimension-statistics.ts b/packages/vchart/src/data/transforms/dimension-statistics.ts index 5f783f3190..1207633b00 100644 --- a/packages/vchart/src/data/transforms/dimension-statistics.ts +++ b/packages/vchart/src/data/transforms/dimension-statistics.ts @@ -143,7 +143,7 @@ export const dimensionStatisticsOfSimpleData = ( if (f.customize) { result[key][op] = f.customize; } else { - if (dataFieldInKey && dataFieldInKey.lockStatisticsByDomain && !isNil(dataFieldInKey.domain)) { + if (dataFieldInKey && dataFieldInKey.lockStatisticsByDomain === true && !isNil(dataFieldInKey.domain)) { if (op === 'values') { result[key][op] = dataFieldInKey.domain.slice(); return; diff --git a/packages/vchart/src/series/base/base-series.ts b/packages/vchart/src/series/base/base-series.ts index 7485c7c1f5..48245b28cd 100644 --- a/packages/vchart/src/series/base/base-series.ts +++ b/packages/vchart/src/series/base/base-series.ts @@ -419,7 +419,7 @@ export abstract class BaseSeries extends BaseModel imp } else if (this._rawData) { // 如果有设置统计信息,应当与设置值保持一致 const fieldInfo = this._rawData.getFields()?.[field]; - if (fieldInfo && fieldInfo.domain) { + if (fieldInfo && fieldInfo.lockStatisticsByDomain && fieldInfo.domain) { this._rawStatisticsCache[field] = {}; if (isNumeric) { this._rawStatisticsCache[field].min = minInArray(fieldInfo.domain); diff --git a/packages/vchart/src/typings/spec/common.ts b/packages/vchart/src/typings/spec/common.ts index 85fd53c156..8d98ac10e4 100644 --- a/packages/vchart/src/typings/spec/common.ts +++ b/packages/vchart/src/typings/spec/common.ts @@ -279,12 +279,18 @@ export type BuildInTransformOptions = export interface IFieldsMeta { /** TODO: 字段通用format, 暂时先不支持 */ // format?: (datum: Datum, index: number) => unknown; - /** 字段别名 */ + /** + * 字段别名 + */ alias?: string; /** 字段取值范围 */ domain?: StringOrNumber[]; - /** 是否使用 domain 锁定统计信息。默认为 false */ - lockStatisticsByDomain?: boolean; + /** + * 是否使用 domain 锁定统计信息。默认为 false + * true - 在图例交互场景,也固定domain + * 当设置为 `onlyFull` 时,仅在初始化的展示完整数据的场景锁定domain,在交互触发的筛选场景不锁定 + */ + lockStatisticsByDomain?: boolean | 'onlyFull'; /** 连续型 还是 离散型 */ type?: 'ordinal' | 'linear'; /** 排序顺序 不设置的话当前维度不进行排序 */ From 921676548e09648c4b72bef3a1625345e2e0978d Mon Sep 17 00:00:00 2001 From: xile611 Date: Wed, 26 Mar 2025 10:12:05 +0800 Subject: [PATCH 4/4] docs: update changlog of rush --- .../fix-set-domain-of-field_2025-03-26-02-12.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 common/changes/@visactor/vchart/fix-set-domain-of-field_2025-03-26-02-12.json diff --git a/common/changes/@visactor/vchart/fix-set-domain-of-field_2025-03-26-02-12.json b/common/changes/@visactor/vchart/fix-set-domain-of-field_2025-03-26-02-12.json new file mode 100644 index 0000000000..4f71f8e5a7 --- /dev/null +++ b/common/changes/@visactor/vchart/fix-set-domain-of-field_2025-03-26-02-12.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "feat: add options `full` to lockStatisticsByDomain\n\n", + "type": "none", + "packageName": "@visactor/vchart" + } + ], + "packageName": "@visactor/vchart", + "email": "dingling112@gmail.com" +} \ No newline at end of file