From 5b47038f7f4855b3c940aaa7b8c3e689e71b81b3 Mon Sep 17 00:00:00 2001 From: skie1997 Date: Thu, 18 Apr 2024 11:57:29 +0800 Subject: [PATCH] fix(datazoom): when drag start and end handler outside, min and max span not work. fix#2559 --- .../@visactor/vchart/develop_2024-04-18-03-55.json | 10 ++++++++++ .../component/data-zoom/data-filter-base-component.ts | 10 ++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 common/changes/@visactor/vchart/develop_2024-04-18-03-55.json diff --git a/common/changes/@visactor/vchart/develop_2024-04-18-03-55.json b/common/changes/@visactor/vchart/develop_2024-04-18-03-55.json new file mode 100644 index 0000000000..c9bac10a3c --- /dev/null +++ b/common/changes/@visactor/vchart/develop_2024-04-18-03-55.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@visactor/vchart", + "comment": "fix(datazoom): when drag start and end handler outside, min and max span not work. fix#2559", + "type": "none" + } + ], + "packageName": "@visactor/vchart" +} \ No newline at end of file diff --git a/packages/vchart/src/component/data-zoom/data-filter-base-component.ts b/packages/vchart/src/component/data-zoom/data-filter-base-component.ts index d892104a26..16266f8908 100644 --- a/packages/vchart/src/component/data-zoom/data-filter-base-component.ts +++ b/packages/vchart/src/component/data-zoom/data-filter-base-component.ts @@ -169,12 +169,18 @@ export abstract class DataFilterBaseComponent this._maxSpan))) { + if ( + zoomLock || + // 拖拽两端的handler, 而非拖拽中间handler + (end - start !== this._spanCache && + // 拖拽后超出限制范围 + (end - start < this._minSpan || end - start > this._maxSpan)) + ) { this._shouldChange = false; } else { this._shouldChange = true; + this._spanCache = end - start; } - this._spanCache = end - start; } protected _isReverse() {