From a3158d96f3353e02ce989147c1c75c61713de61b Mon Sep 17 00:00:00 2001 From: pipipi-pikachu Date: Wed, 3 Mar 2021 22:52:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=8F=92=E5=85=A5=E5=85=83=E7=B4=A0?= =?UTF-8?q?=E6=8B=96=E5=8A=A8=E8=8C=83=E5=9B=B4=E4=B8=8D=E8=B6=B3=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E6=8C=89=E9=BB=98=E8=AE=A4=E5=B0=BA=E5=AF=B8=E5=88=9B?= =?UTF-8?q?=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 11 +++------- .../Editor/Canvas/ElementCreateSelection.vue | 20 +++++++++++++++---- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/App.vue b/src/App.vue index e8d4cc9c..2d76021e 100644 --- a/src/App.vue +++ b/src/App.vue @@ -19,14 +19,9 @@ export default defineComponent({ setup() { const store = useStore() const screening = computed(() => store.state.screening) - window.onbeforeunload = function(e: Event) { - e = e || window.event - // 兼容IE8和Firefox 4之前的版本 - if (e) { - e.returnValue = false - } - // Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+ - return false + + if (process.env.NODE_ENV === 'production') { + window.onbeforeunload = () => false } onMounted(() => { diff --git a/src/views/Editor/Canvas/ElementCreateSelection.vue b/src/views/Editor/Canvas/ElementCreateSelection.vue index 2dcfc78c..2f9104da 100644 --- a/src/views/Editor/Canvas/ElementCreateSelection.vue +++ b/src/views/Editor/Canvas/ElementCreateSelection.vue @@ -38,8 +38,8 @@ export default defineComponent({ const ctrlOrShiftKeyActive = computed(() => store.getters.ctrlOrShiftKeyActive) const creatingElement = computed(() => store.state.creatingElement) - const start = ref<[number, number] | null>(null) - const end = ref<[number, number] | null>(null) + const start = ref<[number, number]>() + const end = ref<[number, number]>() const selectionRef = ref() const offset = reactive({ @@ -110,13 +110,25 @@ export default defineComponent({ const minSize = 30 - if (Math.abs(endPageX - startPageX) >= minSize || Math.abs(endPageY - startPageY) >= minSize) { + if (Math.abs(endPageX - startPageX) >= minSize && Math.abs(endPageY - startPageY) >= minSize) { emit('created', { start: start.value, end: end.value, }) } - else store.commit(MutationTypes.SET_CREATING_ELEMENT, null) + else { + const defaultSize = 100 + const minX = Math.min(endPageX, startPageX) + const minY = Math.min(endPageY, startPageY) + const maxX = Math.max(endPageX, startPageX) + const maxY = Math.max(endPageY, startPageY) + const offsetX = maxX - minX >= minSize ? maxX - minX : defaultSize + const offsetY = maxY - minY >= minSize ? maxY - minY : defaultSize + emit('created', { + start: [minX, minY], + end: [minX + offsetX, minY + offsetY], + }) + } } }