修复:全员清屏改用 Echo 直接监听(不依赖编译产物)
- 从 CustomEvent 中转改为 window.Echo.join().listen() 直接监听 - Blade 模板同步即生效,无需 npm run build
This commit is contained in:
@@ -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 =
|
||||
`<span style="color: #dc2626; font-weight: bold;">🧹 管理员 <b>${operator}</b> 已执行全员清屏</span><span class="msg-time">(${timeStr})</span>`;
|
||||
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 =
|
||||
`<span style="color: #dc2626; font-weight: bold;">🧹 管理员 <b>${operator}</b> 已执行全员清屏</span><span class="msg-time">(${timeStr})</span>`;
|
||||
if (say1) {
|
||||
say1.appendChild(sysDiv);
|
||||
say1.scrollTop = say1.scrollHeight;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// ── 发送消息(Enter 发送) ───────────────────────
|
||||
document.getElementById('content').addEventListener('keydown', function(e) {
|
||||
|
||||
Reference in New Issue
Block a user