新增:聊天室留言板模态弹窗(仿商店样式)
点击工具栏「留言」按钮弹出留言板弹窗,不再跳转新页面。 新建文件: - guestbook-modal.blade.php — 蓝白渐变标题栏、三Tab切换、留言卡片列表、内嵌写留言表单 - guestbook.js — 完整的AJAX加载/提交/删除逻辑,绑定所有事件 修改文件: - toolbar.blade.php — 留言按钮 data-toolbar-url → data-toolbar-action - toolbar.js — 添加 guestbook 动作 - chat-room.js — 静态导入 guestbook 模块 - frame.blade.php — 引入留言弹窗 - routes/web.php — 新增 guestbook.data JSON 路由 - GuestbookController.php — 新增 data() 方法
This commit is contained in:
@@ -221,6 +221,9 @@ import { bindAppointmentAnnouncementControls, showAppointmentBanner } from "./ch
|
||||
import { bindChatBanner } from "./chat-room/banner.js";
|
||||
import { bindChatBotControls, clearChatBotContext, sendToChatBot } from "./chat-room/chat-bot.js";
|
||||
|
||||
// ─── 留言板模态弹窗 ──────────────────────
|
||||
import { openGuestbookModal, closeGuestbookModal, loadGuestbookMessages, bindGuestbookControls } from "./chat-room/guestbook.js";
|
||||
|
||||
// ─── 轻量核心模块(保持静态导入)────────────────────
|
||||
import { escapeHtml, escapeHtmlWithLineBreaks, normalizeSafeChatUrl } from "./chat-room/html.js";
|
||||
import { bindGlobalDialogControls } from "./chat-room/dialog.js";
|
||||
@@ -666,6 +669,9 @@ if (typeof window !== "undefined") {
|
||||
window.showRedPacketModal = showRedPacketModal;
|
||||
window.updateRedPacketClaimsUI = updateRedPacketClaimsUI;
|
||||
window.applyFontSize = applyFontSize;
|
||||
window.openGuestbookModal = openGuestbookModal;
|
||||
window.closeGuestbookModal = closeGuestbookModal;
|
||||
window.loadGuestbookMessages = loadGuestbookMessages;
|
||||
|
||||
// ── Alpine 组件(静态导入,Blade 中 x-data 引用时同步可用) ──
|
||||
window.userCardComponent = userCardComponent;
|
||||
@@ -751,4 +757,5 @@ if (typeof window !== "undefined") {
|
||||
bindAppointmentAnnouncementControls();
|
||||
bindChatBanner();
|
||||
bindChatBotControls();
|
||||
bindGuestbookControls();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user