From 96e811d502a3f30eadaff79acb2dea2a1d931c24 Mon Sep 17 00:00:00 2001 From: pipipi-pikachu <1171051090@qq.com> Date: Thu, 21 Jan 2021 19:57:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=87=E5=AD=97=E9=AB=98?= =?UTF-8?q?=E5=BA=A6=E5=90=8C=E6=AD=A5=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Editor/Canvas/hooks/useScaleElement.ts | 7 ++++--- .../components/element/TextElement/index.vue | 21 ++++++++++++++++--- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/views/Editor/Canvas/hooks/useScaleElement.ts b/src/views/Editor/Canvas/hooks/useScaleElement.ts index 8bfb5ab6..83686046 100644 --- a/src/views/Editor/Canvas/hooks/useScaleElement.ts +++ b/src/views/Editor/Canvas/hooks/useScaleElement.ts @@ -378,14 +378,15 @@ export default ( document.onmouseup = e => { isMouseDown = false - emitter.emit(EmitterEvents.SCALE_ELEMENT_STATE, false) document.onmousemove = null document.onmouseup = null alignmentLines.value = [] - + if(startPageX === e.pageX && startPageY === e.pageY) return - + store.commit(MutationTypes.UPDATE_SLIDE, { elements: elementList.value }) + emitter.emit(EmitterEvents.SCALE_ELEMENT_STATE, false) + addHistorySnapshot() } } diff --git a/src/views/components/element/TextElement/index.vue b/src/views/components/element/TextElement/index.vue index 601b5cdd..96befe8f 100644 --- a/src/views/components/element/TextElement/index.vue +++ b/src/views/components/element/TextElement/index.vue @@ -85,9 +85,23 @@ export default defineComponent({ const elementRef = ref(null) const isScaling = ref(false) + const realHeightCache = ref(-1) - emitter.on(EmitterEvents.SCALE_ELEMENT_STATE, state => { + const scaleElementStateListener = (state: boolean) => { isScaling.value = state + + if(!state && realHeightCache.value !== -1) { + store.commit(MutationTypes.UPDATE_ELEMENT, { + id: props.elementInfo.id, + props: { height: realHeightCache.value }, + }) + realHeightCache.value = -1 + } + } + + emitter.on(EmitterEvents.SCALE_ELEMENT_STATE, state => scaleElementStateListener(state)) + onUnmounted(() => { + emitter.off(EmitterEvents.SCALE_ELEMENT_STATE, state => scaleElementStateListener(state)) }) const updateTextElementHeight = (entries: ResizeObserverEntry[]) => { @@ -96,13 +110,14 @@ export default defineComponent({ const realHeight = contentRect.height - if(!isScaling.value) { - if(props.elementInfo.height !== realHeight) { + if(props.elementInfo.height !== realHeight) { + if(!isScaling.value) { store.commit(MutationTypes.UPDATE_ELEMENT, { id: props.elementInfo.id, props: { height: realHeight }, }) } + else realHeightCache.value = realHeight } } const resizeObserver = new ResizeObserver(updateTextElementHeight)