From d20224a47c910f588e21a27abf3897f1ae4167a6 Mon Sep 17 00:00:00 2001 From: neverland Date: Sat, 23 Jan 2021 16:21:36 +0800 Subject: [PATCH] feat(ImagePreview): reset scale after swiping (#7974) * feat(ImagePreview): reset scale after swiping * fix: should not emit scale event * fix(Calendar): watch type and reset --- src/calendar/index.js | 5 ++++- src/image-preview/ImagePreviewItem.js | 16 +++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/calendar/index.js b/src/calendar/index.js index 17e456078..b6c915128 100644 --- a/src/calendar/index.js +++ b/src/calendar/index.js @@ -151,9 +151,12 @@ export default createComponent({ }, watch: { - type: 'reset', value: 'init', + type() { + this.reset(); + }, + defaultDate(val) { this.currentDate = val; this.scrollIntoView(); diff --git a/src/image-preview/ImagePreviewItem.js b/src/image-preview/ImagePreviewItem.js index 14a7f1848..8b19436ca 100644 --- a/src/image-preview/ImagePreviewItem.js +++ b/src/image-preview/ImagePreviewItem.js @@ -92,6 +92,8 @@ export default { }, watch: { + active: 'resetScale', + show(val) { if (!val) { this.resetScale(); @@ -111,11 +113,15 @@ export default { }, setScale(scale) { - this.scale = range(scale, +this.minZoom, +this.maxZoom); - this.$emit('scale', { - scale: this.scale, - index: this.active, - }); + scale = range(scale, +this.minZoom, +this.maxZoom); + + if (scale !== this.scale) { + this.scale = scale; + this.$emit('scale', { + scale: this.scale, + index: this.active, + }); + } }, toggleScale() {