diff --git a/apps/jingrow/frontend/src/views/HomePage.vue b/apps/jingrow/frontend/src/views/HomePage.vue index 622cd44..68d9a7c 100644 --- a/apps/jingrow/frontend/src/views/HomePage.vue +++ b/apps/jingrow/frontend/src/views/HomePage.vue @@ -331,48 +331,43 @@ const singleImageWrapperRef = ref(null) const singleImageRef = ref(null) const isDraggingSplitLine = ref(false) -const handleDragEnter = (e: DragEvent) => { - e.preventDefault() - e.stopPropagation() - if (e.dataTransfer?.types.includes('Files')) { - dragCounter.value++ - isDragging.value = true +const hasFiles = (event: DragEvent) => { + const types = event.dataTransfer?.types + if (!types) return false + return Array.from(types).includes('Files') +} + +const handleDragEnter = (event: DragEvent) => { + if (!hasFiles(event)) return + dragCounter.value += 1 + isDragging.value = true +} + +const handleDragOver = (event: DragEvent) => { + if (!hasFiles(event)) return + event.dataTransfer!.dropEffect = 'copy' + isDragging.value = true +} + +const handleDragLeave = (event: DragEvent) => { + if (!hasFiles(event)) return + dragCounter.value = Math.max(0, dragCounter.value - 1) + if (dragCounter.value === 0) { + isDragging.value = false } } -const handleDragOver = (e: DragEvent) => { - e.preventDefault() - e.stopPropagation() - if (e.dataTransfer?.types.includes('Files')) { - e.dataTransfer.dropEffect = 'copy' - isDragging.value = true - } -} - -const handleDragLeave = (e: DragEvent) => { - e.preventDefault() - e.stopPropagation() - if (e.dataTransfer?.types.includes('Files')) { - dragCounter.value = Math.max(0, dragCounter.value - 1) - if (dragCounter.value === 0) { - isDragging.value = false - } - } -} - -const handleDrop = (e: DragEvent) => { - e.preventDefault() - e.stopPropagation() +const handleDrop = (event: DragEvent) => { + if (!hasFiles(event)) return + event.preventDefault() dragCounter.value = 0 isDragging.value = false - - const file = e.dataTransfer?.files[0] + const file = event.dataTransfer?.files[0] if (file && file.type.startsWith('image/')) { processFile(file) } else { - message.warning('请上传图片文件') + message.warning(t('Please upload an image file')) } - return false } const triggerFileInput = () => { @@ -946,7 +941,7 @@ onUnmounted(() => {