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() {