实现全局拖拽文件自动触发附件功能

This commit is contained in:
shuaiplus committed 2025-05-30 22:36:52 +08:00
1 parent 7bf66d02a4
commit 742e2fd66d
2 files changed
+48

No files matched your search

+45
View File
@@ -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;
});
+3
View File
@@ -97,6 +97,9 @@ function hideUploadModal() {
uploadModal = null;
selectedFiles.clear();
onSendCallback = null;
// 通知主模块重置拖拽标志位
window.dispatchEvent(new CustomEvent('fileUploadModalClosed'));
}, 300);
}