From e0924b14ef687d04382fdfbdc945e1926f3a48d6 Mon Sep 17 00:00:00 2001 From: yinkang Date: Fri, 11 Jul 2025 15:39:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=A4=A7=E5=B0=8F=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/message/inner/panel/PanelFooter.vue | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/views/message/inner/panel/PanelFooter.vue b/src/views/message/inner/panel/PanelFooter.vue index adf33fe..3940b06 100644 --- a/src/views/message/inner/panel/PanelFooter.vue +++ b/src/views/message/inner/panel/PanelFooter.vue @@ -164,9 +164,18 @@ const onSendVideoEvent = async ({ data }) => { const onSendCodeEvent = ({ data, callBack }) => { onSendMessage({ type: 'code', code: data.code, lang: data.lang }, callBack) } - // 发送文件消息 const onSendFileEvent = ({ data }) => { + const fn = (e) => { + const confirmationMessage = '文件上传中请勿离开'; + e.returnValue = confirmationMessage; // 兼容旧版本浏览器 + return confirmationMessage; // 现代浏览器 + } + window.addEventListener('beforeunload', fn); + + if (data.size / (1024 * 1024) > 100) { + return window['$message'].warning('只能上传100MB以内的文件!') + } const clientUploadId = `file-${Date.now()}-${Math.floor(Math.random() * 1000)}` const tempMessage = { msg_id: clientUploadId, @@ -205,6 +214,7 @@ const onSendFileEvent = ({ data }) => { async () => { // 上传完成后,上传任务已经被removeUploadTask方法移除 // 不需要再次从records中删除 + window.removeEventListener('beforeunload', fn); } ) }