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], + }) + } } }