From 14511b6230aca8151686294efe3803058cfb10e0 Mon Sep 17 00:00:00 2001 From: lkddi Date: Sat, 25 Apr 2026 14:00:07 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=81=E7=A7=BB=E5=A5=96=E5=8A=B1=E9=87=91?= =?UTF-8?q?=E5=B8=81=E5=BC=B9=E7=AA=97=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/js/chat-room.js | 6 ++++ resources/js/chat-room/reward-modal.js | 29 +++++++++++++++++++ .../chat/partials/user-actions.blade.php | 15 +--------- 3 files changed, 36 insertions(+), 14 deletions(-) create mode 100644 resources/js/chat-room/reward-modal.js diff --git a/resources/js/chat-room.js b/resources/js/chat-room.js index e14d5d0..2c204c5 100644 --- a/resources/js/chat-room.js +++ b/resources/js/chat-room.js @@ -79,6 +79,7 @@ export { renderRoomsOnlineStatusToContainer, resolveRoomUrl, } from "./chat-room/rooms.js"; +export { bindRewardModalControls, openRewardModal } from "./chat-room/reward-modal.js"; export { createMessageQueue } from "./chat-room/message-queue.js"; import { escapeHtml, escapeHtmlWithLineBreaks } from "./chat-room/html.js"; @@ -159,6 +160,7 @@ import { renderRoomsOnlineStatusToContainer, resolveRoomUrl, } from "./chat-room/rooms.js"; +import { bindRewardModalControls, openRewardModal } from "./chat-room/reward-modal.js"; import { createMessageQueue } from "./chat-room/message-queue.js"; if (typeof window !== "undefined") { @@ -251,6 +253,8 @@ if (typeof window !== "undefined") { renderRoomsOnlineStatus, renderRoomsOnlineStatusToContainer, resolveRoomUrl, + bindRewardModalControls, + openRewardModal, createMessageQueue, }; @@ -265,6 +269,7 @@ if (typeof window !== "undefined") { window.loadMobileRoomList = loadMobileRoomList; window.openMobileDrawer = openMobileDrawer; window.openUserCard = openUserCard; + window.openRewardModal = openRewardModal; window.renderMobileRoomList = renderMobileRoomList; window.renderMobileUserList = renderMobileUserList; window.scheduleRenderMobileUserList = scheduleRenderMobileUserList; @@ -316,6 +321,7 @@ if (typeof window !== "undefined") { bindVipControls(); bindChatRightPanelControls(); bindRoomStatusControls(); + bindRewardModalControls(); bindMobileDrawerControls(); bindWelcomeMenuControls(); bindBlockMenuControls(); diff --git a/resources/js/chat-room/reward-modal.js b/resources/js/chat-room/reward-modal.js new file mode 100644 index 0000000..fe62bcf --- /dev/null +++ b/resources/js/chat-room/reward-modal.js @@ -0,0 +1,29 @@ +// 聊天室职务奖励金币弹窗入口,提供 openRewardModal 全局兼容函数。 + +/** + * 打开奖励金币独立弹窗。 + * + * @param {string} username + * @returns {void} + */ +export function openRewardModal(username) { + const container = document.getElementById("reward-modal-container"); + if (!window.Alpine || !container) { + return; + } + + window.Alpine.$data(container)?.open?.(username); +} + +/** + * 暴露奖励金币弹窗入口给存量按钮调用。 + * + * @returns {void} + */ +export function bindRewardModalControls() { + if (typeof window === "undefined") { + return; + } + + window.openRewardModal = openRewardModal; +} diff --git a/resources/views/chat/partials/user-actions.blade.php b/resources/views/chat/partials/user-actions.blade.php index fcf3393..3541c31 100644 --- a/resources/views/chat/partials/user-actions.blade.php +++ b/resources/views/chat/partials/user-actions.blade.php @@ -1358,20 +1358,7 @@ - +{{-- openRewardModal 已迁移到 resources/js/chat-room/reward-modal.js --}} {{-- ═══════════ 好友系统通知监听 ═══════════ --}} {{-- 监听好友 WebSocket 事件,与好友操作逻辑集中在同一文件维护 --}}