重构:聊天室所有 alert() 改为 window.chatDialog.alert()

scripts.blade.php 全部 21 处原生 alert() 替换:
- 成功类 → chatDialog.alert(..., '提示', '#16a34a')
- 失败/错误类 → chatDialog.alert(..., '操作失败', '#cc4444')
- 网络异常类 → chatDialog.alert(..., '网络异常', '#cc4444')
- 连接断开/踢出 → chatDialog.alert(..., '连接警告', '#b45309')
- 一般提示 → chatDialog.alert(..., '提示', '#336699')

DEVELOPMENT.md 新增 §7.9 window.chatBanner 使用文档
This commit is contained in:
2026-03-01 01:32:20 +08:00
parent 5c53b8cf2f
commit f951ec428d
2 changed files with 189 additions and 21 deletions

View File

@@ -498,7 +498,7 @@
window.addEventListener('chat:kicked', (e) => {
if (e.detail.username === window.chatContext.username) {
alert("您已被管理员踢出房间!" + (e.detail.reason ? "\n原因:" + e.detail.reason : ""));
window.chatDialog.alert('您已被管理员踢出房间!' + (e.detail.reason ? ' 原因:' + e.detail.reason : ''), '系统通知', '#cc4444');
window.location.href = "{{ route('rooms.index') }}";
}
});
@@ -1107,7 +1107,7 @@
type
}),
}).then(r => r.json()).then(data => {
if (data.status !== 'success') alert(data.message);
if (data.status !== 'success') window.chatDialog.alert(data.message, '操作失败', '#cc4444');
}).catch(err => console.error('特效触发失败:', err));
}
window.triggerEffect = triggerEffect;
@@ -1238,10 +1238,10 @@
contentInput.value = '';
contentInput.focus();
} else {
alert('发送失败: ' + (data.message || JSON.stringify(data.errors)));
window.chatDialog.alert('发送失败: ' + (data.message || JSON.stringify(data.errors)), '操作失败', '#cc4444');
}
} catch (error) {
alert('网络连接错误,消息发送失败!');
window.chatDialog.alert('网络连接错误,消息发送失败!', '网络错误', '#cc4444');
console.error(error);
} finally {
submitBtn.disabled = false;
@@ -1273,12 +1273,12 @@
if (data.status === 'success') {
const marquee = document.getElementById('announcement-text');
if (marquee) marquee.textContent = newText.trim();
alert('公告已更新!');
window.chatDialog.alert('公告已更新!', '提示', '#16a34a');
} else {
alert(data.message || '更新失败');
window.chatDialog.alert(data.message || '更新失败', '操作失败', '#cc4444');
}
} catch (e) {
alert('设置公告失败:' + e.message);
window.chatDialog.alert('设置公告失败:' + e.message, '操作失败', '#cc4444');
}
}
@@ -1303,10 +1303,10 @@
});
const data = await res.json();
if (!res.ok || data.status !== 'success') {
alert(data.message || '发送失败');
window.chatDialog.alert(data.message || '发送失败', '操作失败', '#cc4444');
}
} catch (e) {
alert('发送失败:' + e.message);
window.chatDialog.alert('发送失败:' + e.message, '操作失败', '#cc4444');
}
}
@@ -1329,10 +1329,10 @@
});
const data = await res.json();
if (!res.ok || data.status !== 'success') {
alert(data.message || '清屏失败');
window.chatDialog.alert(data.message || '清屏失败', '操作失败', '#cc4444');
}
} catch (e) {
alert('清屏失败:' + e.message);
window.chatDialog.alert('清屏失败:' + e.message, '操作失败', '#cc4444');
}
}
@@ -1454,7 +1454,7 @@
// 检测登录态失效
if (response.status === 401 || response.status === 419) {
alert('⚠️ 您的登录已失效(可能超时或在其他设备登录),请重新登录。');
window.chatDialog.alert('⚠️ 您的登录已失效(可能超时或在其他设备登录),请重新登录。', '连接警告', '#b45309');
window.location.href = '/';
return;
}
@@ -1510,7 +1510,7 @@
heartbeatFailCount++;
if (heartbeatFailCount >= MAX_HEARTBEAT_FAILS) {
alert('⚠️ 与服务器的连接已断开,请检查网络后重新登录。');
window.chatDialog.alert('⚠️ 与服务器的连接已断开,请检查网络后重新登录。', '连接警告', '#b45309');
window.location.href = '/';
return;
}
@@ -1617,7 +1617,7 @@
const data = await res.json();
if (data.status === 'success') {
alert('头像修改成功!');
window.chatDialog.alert('头像修改成功!', '提示', '#16a34a');
const myName = window.chatContext.username;
if (onlineUsers[myName]) {
onlineUsers[myName].headface = data.headface;
@@ -1625,10 +1625,10 @@
renderUserList();
closeAvatarPicker();
} else {
alert(data.message || '修改失败');
window.chatDialog.alert(data.message || '修改失败', '操作失败', '#cc4444');
}
} catch (e) {
alert('网络错误');
window.chatDialog.alert('网络错误', '网络异常', '#cc4444');
}
btn.disabled = false;
@@ -1656,7 +1656,7 @@
const data = await res.json();
if (!res.ok || data.status !== 'success') {
alert(data.message || '钓鱼失败');
window.chatDialog.alert(data.message || '钓鱼失败', '操作失败', '#cc4444');
btn.disabled = false;
return;
}
@@ -1704,7 +1704,7 @@
}, data.wait_time * 1000);
} catch (e) {
alert('网络错误:' + e.message);
window.chatDialog.alert('网络错误:' + e.message, '网络异常', '#cc4444');
btn.disabled = false;
}
}
@@ -1757,7 +1757,7 @@
}
if (autoScroll) container2.scrollTop = container2.scrollHeight;
} catch (e) {
alert('网络错误:' + e.message);
window.chatDialog.alert('网络错误:' + e.message, '网络异常', '#cc4444');
}
resetFishingBtn();
@@ -1784,7 +1784,7 @@
*/
async function sendToChatBot(content) {
if (chatBotSending) {
alert('AI 正在思考中,请稍候...');
window.chatDialog.alert('AI 正在思考中,请稍候...', '提示', '#336699');
return;
}
chatBotSending = true;
@@ -1859,7 +1859,7 @@
container2.appendChild(sysDiv);
if (autoScroll) container2.scrollTop = container2.scrollHeight;
} catch (e) {
alert('清除失败:' + e.message);
window.chatDialog.alert('清除失败:' + e.message, '操作失败', '#cc4444');
}
}