From 0e82c3fff01e7d7a4e914395455c77ae0b6588ee Mon Sep 17 00:00:00 2001 From: lkddi Date: Thu, 26 Feb 2026 23:20:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E5=85=A8=E5=91=98?= =?UTF-8?q?=E6=B8=85=E5=B1=8F=E6=94=B9=E7=94=A8=20Echo=20=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E7=9B=91=E5=90=AC=EF=BC=88=E4=B8=8D=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E7=BC=96=E8=AF=91=E4=BA=A7=E7=89=A9=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 从 CustomEvent 中转改为 window.Echo.join().listen() 直接监听 - Blade 模板同步即生效,无需 npm run build --- .../views/chat/partials/scripts.blade.php | 63 ++++++++++--------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/resources/views/chat/partials/scripts.blade.php b/resources/views/chat/partials/scripts.blade.php index 7242b1c..27cf6c6 100644 --- a/resources/views/chat/partials/scripts.blade.php +++ b/resources/views/chat/partials/scripts.blade.php @@ -507,40 +507,43 @@ document.getElementById('room-title-display').innerText = e.detail.title; }); - // ── 管理员全员清屏事件 ─────────────────────── - window.addEventListener('chat:screen-cleared', (e) => { - const operator = e.detail.operator; + // ── 管理员全员清屏事件(直接用 Echo 监听,不依赖编译产物) ─────── + if (window.Echo) { + window.Echo.join(`room.${window.chatContext.roomId}`) + .listen('ScreenCleared', (e) => { + const operator = e.operator; - // 清除公聊窗口(say1)所有消息 - const say1 = document.getElementById('say'); - if (say1) say1.innerHTML = ''; + // 清除公聊窗口(say1)所有消息 + const say1 = document.getElementById('say'); + if (say1) say1.innerHTML = ''; - // 清除包厢窗口(say2)中非悄悄话的消息 - const say2 = document.getElementById('say2'); - if (say2) { - const items = say2.querySelectorAll('.msg-line'); - items.forEach(item => { - // 保留悄悄话消息(含 msg-secret 类) - if (!item.querySelector('.msg-secret')) { - item.remove(); + // 清除包厢窗口(say2)中非悄悄话的消息 + const say2 = document.getElementById('say2'); + if (say2) { + const items = say2.querySelectorAll('.msg-line'); + items.forEach(item => { + // 保留悄悄话消息(含 msg-secret 类) + if (!item.querySelector('.msg-secret')) { + item.remove(); + } + }); + } + + // 显示清屏提示 + const sysDiv = document.createElement('div'); + sysDiv.className = 'msg-line'; + const now = new Date(); + const timeStr = now.getHours().toString().padStart(2, '0') + ':' + + now.getMinutes().toString().padStart(2, '0') + ':' + + now.getSeconds().toString().padStart(2, '0'); + sysDiv.innerHTML = + `🧹 管理员 ${operator} 已执行全员清屏(${timeStr})`; + if (say1) { + say1.appendChild(sysDiv); + say1.scrollTop = say1.scrollHeight; } }); - } - - // 显示清屏提示 - const sysDiv = document.createElement('div'); - sysDiv.className = 'msg-line'; - const now = new Date(); - const timeStr = now.getHours().toString().padStart(2, '0') + ':' + - now.getMinutes().toString().padStart(2, '0') + ':' + - now.getSeconds().toString().padStart(2, '0'); - sysDiv.innerHTML = - `🧹 管理员 ${operator} 已执行全员清屏(${timeStr})`; - if (say1) { - say1.appendChild(sysDiv); - say1.scrollTop = say1.scrollHeight; - } - }); + } // ── 发送消息(Enter 发送) ─────────────────────── document.getElementById('content').addEventListener('keydown', function(e) {