diff --git a/client/js/main.js b/client/js/main.js index ca7e412..56c3613 100644 --- a/client/js/main.js +++ b/client/js/main.js @@ -268,3 +268,48 @@ window.addEventListener('DOMContentLoaded', () => { }); } }); + +// 全局拖拽文件自动打开附件功能 +// Global drag file to auto trigger attach button +let dragCounter = 0; +let hasTriggeredAttach = false; + +// 监听文件上传模态框关闭事件,重置拖拽标志位 +window.addEventListener('fileUploadModalClosed', () => { + hasTriggeredAttach = false; +}); + +document.addEventListener('dragenter', (e) => { + dragCounter++; + if (!hasTriggeredAttach && e.dataTransfer.items.length > 0) { + // 检查是否有文件 + for (let item of e.dataTransfer.items) { + if (item.kind === 'file') { + // 自动点击附件按钮 + const attachBtn = document.querySelector('.chat-attach-btn'); + if (attachBtn) { + attachBtn.click(); + hasTriggeredAttach = true; + } + break; + } + } + } +}); + +document.addEventListener('dragleave', (e) => { + dragCounter--; + if (dragCounter === 0) { + hasTriggeredAttach = false; + } +}); + +document.addEventListener('dragover', (e) => { + e.preventDefault(); +}); + +document.addEventListener('drop', (e) => { + e.preventDefault(); + dragCounter = 0; + hasTriggeredAttach = false; +}); diff --git a/client/js/util.fileUpload.js b/client/js/util.fileUpload.js index c354d5e..a4cd3ce 100644 --- a/client/js/util.fileUpload.js +++ b/client/js/util.fileUpload.js @@ -97,6 +97,9 @@ function hideUploadModal() { uploadModal = null; selectedFiles.clear(); onSendCallback = null; + + // 通知主模块重置拖拽标志位 + window.dispatchEvent(new CustomEvent('fileUploadModalClosed')); }, 300); }