Files
chatroom/resources/js/chat-room.js
T

473 lines
21 KiB
JavaScript
Raw Normal View History

// 聊天室 Vite 入口,集中导出从 Blade 内联脚本迁移出的纯前端工具。
2026-04-25 14:16:13 +08:00
/**
* 模块引用说明:
* - html.js:提供聊天内容通用 HTML 转义工具。
* - appointment-announcement.js:处理任命/撤销公告的大卡片和系统消息。
* - banner.js:提供 window.chatBanner 居中大卡片通知。
* - chat-bot.js:处理 AI 小班长发送消息和清空上下文。
* - dialog.js:提供 window.chatDialog 全局弹窗。
* - daily-sign-in.js:处理每日签到弹窗与补签入口。
2026-04-25 14:25:07 +08:00
* - earn-panel.js:提供看视频赚钱 earnPanelData Alpine 组件和播放器加载入口。
2026-04-25 14:16:13 +08:00
* - font-size.js:处理聊天输入/消息字号设置。
* - image-upload.js:处理聊天图片上传入口。
* - composer.js:处理聊天输入框、发送按钮和快捷操作。
* - toast.js:提供 window.chatToast 右下角通知。
* - friend-panel.js:处理好友面板、搜索和好友快捷操作。
* - friend-notifications.js:监听好友通知和通用 BannerNotification。
* - lightbox.js:处理聊天图片预览灯箱。
2026-04-25 14:22:59 +08:00
* - lottery-panel.js:提供双色球彩票 lotteryPanel Alpine 组件和全局开关入口。
2026-04-25 14:16:13 +08:00
* - mobile-drawer.js:处理移动端抽屉、房间列表和在线名单。
* - marriage-status.js:处理婚姻状态展示与用户名片联动。
* - toolbar.js:处理工具栏按钮和功能快捷入口。
* - user-target-actions.js:处理点击用户名切换私聊目标和打开名片。
* - welcome-menu.js:处理欢迎菜单交互。
* - admin-menu.js:处理聊天室管理菜单交互。
* - baccarat-loss-cover-admin.js:处理百家乐买单活动管理弹层。
* - baccarat-loss-cover.js:处理百家乐买单活动前台弹窗。
* - game-hall.js:处理娱乐大厅弹窗和游戏入口卡片。
* - game-bootstrap.js:提供非关键游戏延迟初始化工具。
* - game-panels.js:处理通用游戏面板关闭事件。
* - holiday-modal.js:处理节日福利弹窗和系统消息入口。
* - initial-state.js:恢复首屏历史消息、欢迎消息、入场特效和挂起婚姻事件。
* - bank-modal.js:处理银行弹窗、转账、排行和标签切换。
2026-04-25 14:43:33 +08:00
* - fishing.js:处理钓鱼抛竿、收竿、浮漂和自动钓鱼循环。
2026-04-25 14:18:00 +08:00
* - fortune-panel.js:提供神秘占卜 fortunePanel Alpine 组件。
2026-04-25 14:16:13 +08:00
* - profile-controls.js:处理用户资料和资料相关按钮。
* - shop-controls.js:处理商店弹窗的基础按钮事件。
* - slot-machine.js:提供老虎机 slotPanel/slotFab Alpine 组件。
2026-04-25 14:40:54 +08:00
* - vip-controls.js:处理 VIP 中心弹窗、会员数据渲染、支付跳转和专属进退场设置。
2026-04-25 14:16:13 +08:00
* - preferences-status.js:处理聊天偏好、屏蔽系统播报和静音状态。
* - right-panel.js:处理右侧在线用户列表和用户名交互。
* - rooms.js:处理房间在线状态渲染和跳转 URL。
* - reward-modal.js:处理职务奖励金币弹窗入口。
* - message-queue.js:提供聊天消息分批渲染队列。
*/
2026-04-25 04:00:38 +08:00
// 统一转发各子模块导出,方便测试或后续模块继续复用同一组工具。
export { escapeHtml, escapeHtmlWithLineBreaks } from "./chat-room/html.js";
2026-04-25 13:55:47 +08:00
export { bindAppointmentAnnouncementControls, showAppointmentBanner } from "./chat-room/appointment-announcement.js";
2026-04-25 13:54:00 +08:00
export { bindChatBanner } from "./chat-room/banner.js";
2026-04-25 13:58:40 +08:00
export { bindChatBotControls, clearChatBotContext, sendToChatBot } from "./chat-room/chat-bot.js";
2026-04-25 03:54:23 +08:00
export { bindGlobalDialogControls } from "./chat-room/dialog.js";
2026-04-25 10:13:23 +08:00
export { bindDailySignInControls } from "./chat-room/daily-sign-in.js";
2026-04-25 14:25:07 +08:00
export { bindEarnPanelControls, createEarnPanelData } from "./chat-room/earn-panel.js";
2026-04-25 03:40:30 +08:00
export { applyFontSize, bindChatFontSizeControl, CHAT_FONT_SIZE_STORAGE_KEY, restoreChatFontSize } from "./chat-room/font-size.js";
2026-04-25 03:41:45 +08:00
export { bindChatImageUploadControl } from "./chat-room/image-upload.js";
2026-04-25 10:41:20 +08:00
export { bindChatComposerControls } from "./chat-room/composer.js";
2026-04-25 13:51:50 +08:00
export { bindChatToast } from "./chat-room/toast.js";
2026-04-25 10:20:21 +08:00
export { bindFriendPanelControls, closeFriendPanel, friendSearch, loadFriends, openFriendPanel, quickFriendAction } from "./chat-room/friend-panel.js";
2026-04-25 14:02:04 +08:00
export { bindFriendNotificationControls, setupBannerNotification, setupFriendNotification, showFriendBanner } from "./chat-room/friend-notifications.js";
2026-04-25 03:36:30 +08:00
export { closeChatImageLightbox, initChatImageLightboxEvents, openChatImageLightbox } from "./chat-room/lightbox.js";
2026-04-25 14:22:59 +08:00
export { bindLotteryPanelControls, closeLotteryPanel, lotteryPanel, openLotteryPanel, showLotteryMsg } from "./chat-room/lottery-panel.js";
2026-04-25 08:21:30 +08:00
export {
bindMobileDrawerControls,
closeMobileDrawer,
loadMobileRoomList,
openMobileDrawer,
renderMobileRoomList,
renderMobileUserList,
scheduleRenderMobileUserList,
switchMobileTab,
} from "./chat-room/mobile-drawer.js";
2026-04-25 08:10:23 +08:00
export { bindMarriageStatusControls } from "./chat-room/marriage-status.js";
2026-04-25 10:16:14 +08:00
export { bindToolbarControls, runFeatureShortcut, runToolbarAction } from "./chat-room/toolbar.js";
2026-04-25 13:57:12 +08:00
export { bindUserTargetActions, openUserCard, switchTarget } from "./chat-room/user-target-actions.js";
2026-04-25 03:49:13 +08:00
export { bindWelcomeMenuControls } from "./chat-room/welcome-menu.js";
export { bindAdminMenuControls } from "./chat-room/admin-menu.js";
2026-04-25 04:05:32 +08:00
export {
bindBaccaratLossCoverAdminControls,
closeAdminBaccaratLossCoverModal,
closeCurrentBaccaratLossCoverEvent,
loadAdminCurrentLossCoverEvent,
openAdminBaccaratLossCoverModal,
submitBaccaratLossCoverEvent,
} from "./chat-room/baccarat-loss-cover-admin.js";
2026-04-25 14:09:11 +08:00
export {
bindBaccaratLossCoverControls,
claimBaccaratLossCover,
closeBaccaratLossCoverModal,
openBaccaratLossCoverModal,
switchBaccaratLossCoverTab,
} from "./chat-room/baccarat-loss-cover.js";
2026-04-25 14:12:48 +08:00
export { bindGameHallControls, closeGameHall, openGameHall } from "./chat-room/game-hall.js";
2026-04-25 14:03:15 +08:00
export { bindGameBootstrapControls, deferChatGameBootstrap } from "./chat-room/game-bootstrap.js";
2026-04-25 10:50:35 +08:00
export { bindGamePanelControls } from "./chat-room/game-panels.js";
2026-04-25 11:06:31 +08:00
export { bindHolidayModalControls, openHolidayRunFromSystemMessage } from "./chat-room/holiday-modal.js";
2026-04-25 14:04:42 +08:00
export { bindChatInitialStateControls } from "./chat-room/initial-state.js";
2026-04-25 08:16:50 +08:00
export {
bankAction,
bankLoadInfo,
bankShowMsg,
bindBankControls,
closeBankModal,
fetchBankRanking,
openBankModal,
switchBankTab,
toggleBankRankSort,
} from "./chat-room/bank-modal.js";
2026-04-25 14:43:33 +08:00
export { bindFishingControls, checkAndAutoStartFishing, createBobber, reelFish, removeBobber, resetFishingBtn, startFishing, stopAutoFishing } from "./chat-room/fishing.js";
2026-04-25 14:18:00 +08:00
export { bindFortunePanelControls, fortunePanel } from "./chat-room/fortune-panel.js";
2026-04-25 08:04:22 +08:00
export { bindProfileControls } from "./chat-room/profile-controls.js";
2026-04-25 08:05:33 +08:00
export { bindShopControls } from "./chat-room/shop-controls.js";
2026-04-25 14:16:13 +08:00
export { bindSlotMachineControls, slotFab, slotPanel } from "./chat-room/slot-machine.js";
2026-04-25 14:40:54 +08:00
export { bindVipControls, buyVip, closeVipModal, openVipModal, saveVipPresenceSettings, switchVipTab } from "./chat-room/vip-controls.js";
export {
BLOCKABLE_SYSTEM_SENDERS,
BLOCKED_SYSTEM_SENDERS_STORAGE_KEY,
CHAT_SOUND_MUTED_STORAGE_KEY,
2026-04-25 03:45:30 +08:00
bindBlockMenuControls,
2026-04-25 03:39:31 +08:00
bindSoundMuteControl,
2026-04-25 03:38:27 +08:00
isSoundMuted,
loadBlockedSystemSenders,
normalizeChatPreferences,
normalizeDailyStatus,
parseDailyStatusExpiry,
2026-04-25 03:38:27 +08:00
persistBlockedSystemSenders,
setSoundMuted,
shouldMigrateLocalChatPreferences,
} from "./chat-room/preferences-status.js";
2026-04-25 03:42:54 +08:00
export { bindChatRightPanelControls } from "./chat-room/right-panel.js";
export {
2026-04-25 10:32:25 +08:00
bindRoomStatusControls,
normalizeRoomStatus,
renderRoomStatusRow,
renderRoomsOnlineStatus,
renderRoomsOnlineStatusToContainer,
resolveRoomUrl,
} from "./chat-room/rooms.js";
2026-04-25 14:00:07 +08:00
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";
2026-04-25 13:55:47 +08:00
import { bindAppointmentAnnouncementControls, showAppointmentBanner } from "./chat-room/appointment-announcement.js";
2026-04-25 13:54:00 +08:00
import { bindChatBanner } from "./chat-room/banner.js";
2026-04-25 13:58:40 +08:00
import { bindChatBotControls, clearChatBotContext, sendToChatBot } from "./chat-room/chat-bot.js";
2026-04-25 03:54:23 +08:00
import { bindGlobalDialogControls } from "./chat-room/dialog.js";
2026-04-25 10:13:23 +08:00
import { bindDailySignInControls } from "./chat-room/daily-sign-in.js";
2026-04-25 14:25:07 +08:00
import { bindEarnPanelControls, createEarnPanelData } from "./chat-room/earn-panel.js";
2026-04-25 03:40:30 +08:00
import { applyFontSize, bindChatFontSizeControl, CHAT_FONT_SIZE_STORAGE_KEY, restoreChatFontSize } from "./chat-room/font-size.js";
2026-04-25 03:41:45 +08:00
import { bindChatImageUploadControl } from "./chat-room/image-upload.js";
2026-04-25 10:41:20 +08:00
import { bindChatComposerControls } from "./chat-room/composer.js";
2026-04-25 13:51:50 +08:00
import { bindChatToast } from "./chat-room/toast.js";
2026-04-25 10:20:21 +08:00
import { bindFriendPanelControls, closeFriendPanel, friendSearch, loadFriends, openFriendPanel, quickFriendAction } from "./chat-room/friend-panel.js";
2026-04-25 14:02:04 +08:00
import { bindFriendNotificationControls, setupBannerNotification, setupFriendNotification, showFriendBanner } from "./chat-room/friend-notifications.js";
2026-04-25 03:36:30 +08:00
import { closeChatImageLightbox, initChatImageLightboxEvents, openChatImageLightbox } from "./chat-room/lightbox.js";
2026-04-25 14:22:59 +08:00
import { bindLotteryPanelControls, closeLotteryPanel, lotteryPanel, openLotteryPanel, showLotteryMsg } from "./chat-room/lottery-panel.js";
2026-04-25 08:21:30 +08:00
import {
bindMobileDrawerControls,
closeMobileDrawer,
loadMobileRoomList,
openMobileDrawer,
renderMobileRoomList,
renderMobileUserList,
scheduleRenderMobileUserList,
switchMobileTab,
} from "./chat-room/mobile-drawer.js";
2026-04-25 08:10:23 +08:00
import { bindMarriageStatusControls } from "./chat-room/marriage-status.js";
2026-04-25 10:16:14 +08:00
import { bindToolbarControls, runFeatureShortcut, runToolbarAction } from "./chat-room/toolbar.js";
2026-04-25 13:57:12 +08:00
import { bindUserTargetActions, openUserCard, switchTarget } from "./chat-room/user-target-actions.js";
2026-04-25 03:49:13 +08:00
import { bindWelcomeMenuControls } from "./chat-room/welcome-menu.js";
import { bindAdminMenuControls } from "./chat-room/admin-menu.js";
2026-04-25 04:05:32 +08:00
import {
bindBaccaratLossCoverAdminControls,
closeAdminBaccaratLossCoverModal,
closeCurrentBaccaratLossCoverEvent,
loadAdminCurrentLossCoverEvent,
openAdminBaccaratLossCoverModal,
submitBaccaratLossCoverEvent,
} from "./chat-room/baccarat-loss-cover-admin.js";
2026-04-25 14:09:11 +08:00
import {
bindBaccaratLossCoverControls,
claimBaccaratLossCover,
closeBaccaratLossCoverModal,
openBaccaratLossCoverModal,
switchBaccaratLossCoverTab,
} from "./chat-room/baccarat-loss-cover.js";
2026-04-25 14:12:48 +08:00
import { bindGameHallControls, closeGameHall, openGameHall } from "./chat-room/game-hall.js";
2026-04-25 14:03:15 +08:00
import { bindGameBootstrapControls, deferChatGameBootstrap } from "./chat-room/game-bootstrap.js";
2026-04-25 10:50:35 +08:00
import { bindGamePanelControls } from "./chat-room/game-panels.js";
2026-04-25 11:06:31 +08:00
import { bindHolidayModalControls, openHolidayRunFromSystemMessage } from "./chat-room/holiday-modal.js";
2026-04-25 14:04:42 +08:00
import { bindChatInitialStateControls } from "./chat-room/initial-state.js";
2026-04-25 08:16:50 +08:00
import {
bankAction,
bankLoadInfo,
bankShowMsg,
bindBankControls,
closeBankModal,
fetchBankRanking,
openBankModal,
switchBankTab,
toggleBankRankSort,
} from "./chat-room/bank-modal.js";
2026-04-25 14:43:33 +08:00
import { bindFishingControls, checkAndAutoStartFishing, createBobber, reelFish, removeBobber, resetFishingBtn, startFishing, stopAutoFishing } from "./chat-room/fishing.js";
2026-04-25 14:18:00 +08:00
import { bindFortunePanelControls, fortunePanel } from "./chat-room/fortune-panel.js";
2026-04-25 08:04:22 +08:00
import { bindProfileControls } from "./chat-room/profile-controls.js";
2026-04-25 08:05:33 +08:00
import { bindShopControls } from "./chat-room/shop-controls.js";
2026-04-25 14:16:13 +08:00
import { bindSlotMachineControls, slotFab, slotPanel } from "./chat-room/slot-machine.js";
2026-04-25 14:40:54 +08:00
import { bindVipControls, buyVip, closeVipModal, openVipModal, saveVipPresenceSettings, switchVipTab } from "./chat-room/vip-controls.js";
import {
BLOCKABLE_SYSTEM_SENDERS,
BLOCKED_SYSTEM_SENDERS_STORAGE_KEY,
CHAT_SOUND_MUTED_STORAGE_KEY,
2026-04-25 03:45:30 +08:00
bindBlockMenuControls,
2026-04-25 03:39:31 +08:00
bindSoundMuteControl,
2026-04-25 03:38:27 +08:00
isSoundMuted,
loadBlockedSystemSenders,
normalizeChatPreferences,
normalizeDailyStatus,
parseDailyStatusExpiry,
2026-04-25 03:38:27 +08:00
persistBlockedSystemSenders,
setSoundMuted,
shouldMigrateLocalChatPreferences,
} from "./chat-room/preferences-status.js";
2026-04-25 03:42:54 +08:00
import { bindChatRightPanelControls } from "./chat-room/right-panel.js";
import {
2026-04-25 10:32:25 +08:00
bindRoomStatusControls,
normalizeRoomStatus,
renderRoomStatusRow,
renderRoomsOnlineStatus,
renderRoomsOnlineStatusToContainer,
resolveRoomUrl,
} from "./chat-room/rooms.js";
2026-04-25 14:00:07 +08:00
import { bindRewardModalControls, openRewardModal } from "./chat-room/reward-modal.js";
import { createMessageQueue } from "./chat-room/message-queue.js";
if (typeof window !== "undefined") {
2026-04-25 08:16:50 +08:00
// 保留聚合入口,给新迁移模块、测试和仍在 Blade 内的存量脚本统一读取工具。
window.ChatRoomTools = {
escapeHtml,
escapeHtmlWithLineBreaks,
2026-04-25 13:55:47 +08:00
bindAppointmentAnnouncementControls,
showAppointmentBanner,
2026-04-25 13:54:00 +08:00
bindChatBanner,
2026-04-25 13:58:40 +08:00
bindChatBotControls,
clearChatBotContext,
sendToChatBot,
2026-04-25 03:54:23 +08:00
bindGlobalDialogControls,
2026-04-25 10:13:23 +08:00
bindDailySignInControls,
2026-04-25 14:25:07 +08:00
bindEarnPanelControls,
createEarnPanelData,
2026-04-25 14:22:59 +08:00
bindLotteryPanelControls,
closeLotteryPanel,
lotteryPanel,
openLotteryPanel,
showLotteryMsg,
applyFontSize,
2026-04-25 03:40:30 +08:00
bindChatFontSizeControl,
2026-04-25 03:41:45 +08:00
bindChatImageUploadControl,
2026-04-25 10:41:20 +08:00
bindChatComposerControls,
2026-04-25 13:51:50 +08:00
bindChatToast,
2026-04-25 03:58:26 +08:00
bindFriendPanelControls,
2026-04-25 14:02:04 +08:00
bindFriendNotificationControls,
2026-04-25 03:58:26 +08:00
closeFriendPanel,
friendSearch,
loadFriends,
openFriendPanel,
2026-04-25 10:20:21 +08:00
quickFriendAction,
2026-04-25 14:02:04 +08:00
setupBannerNotification,
setupFriendNotification,
showFriendBanner,
2026-04-25 03:44:04 +08:00
bindMobileDrawerControls,
2026-04-25 08:21:30 +08:00
closeMobileDrawer,
loadMobileRoomList,
openMobileDrawer,
renderMobileRoomList,
renderMobileUserList,
scheduleRenderMobileUserList,
switchMobileTab,
2026-04-25 03:59:53 +08:00
bindToolbarControls,
2026-04-25 10:16:14 +08:00
runFeatureShortcut,
runToolbarAction,
2026-04-25 13:57:12 +08:00
bindUserTargetActions,
openUserCard,
switchTarget,
2026-04-25 03:49:13 +08:00
bindWelcomeMenuControls,
bindAdminMenuControls,
2026-04-25 04:05:32 +08:00
bindBaccaratLossCoverAdminControls,
closeAdminBaccaratLossCoverModal,
closeCurrentBaccaratLossCoverEvent,
2026-04-25 10:44:46 +08:00
bindBaccaratLossCoverControls,
2026-04-25 14:09:11 +08:00
claimBaccaratLossCover,
closeBaccaratLossCoverModal,
openBaccaratLossCoverModal,
switchBaccaratLossCoverTab,
2026-04-25 10:46:36 +08:00
bindGameHallControls,
2026-04-25 14:12:48 +08:00
closeGameHall,
openGameHall,
2026-04-25 14:03:15 +08:00
bindGameBootstrapControls,
deferChatGameBootstrap,
2026-04-25 10:50:35 +08:00
bindGamePanelControls,
2026-04-25 11:06:31 +08:00
bindHolidayModalControls,
openHolidayRunFromSystemMessage,
2026-04-25 14:04:42 +08:00
bindChatInitialStateControls,
2026-04-25 04:05:32 +08:00
loadAdminCurrentLossCoverEvent,
openAdminBaccaratLossCoverModal,
submitBaccaratLossCoverEvent,
2026-04-25 08:16:50 +08:00
bankAction,
bankLoadInfo,
bankShowMsg,
2026-04-25 08:08:39 +08:00
bindBankControls,
2026-04-25 08:16:50 +08:00
closeBankModal,
fetchBankRanking,
openBankModal,
switchBankTab,
toggleBankRankSort,
bindFishingControls,
2026-04-25 14:43:33 +08:00
checkAndAutoStartFishing,
createBobber,
reelFish,
removeBobber,
resetFishingBtn,
startFishing,
stopAutoFishing,
2026-04-25 14:18:00 +08:00
bindFortunePanelControls,
fortunePanel,
2026-04-25 08:10:23 +08:00
bindMarriageStatusControls,
2026-04-25 08:04:22 +08:00
bindProfileControls,
2026-04-25 08:05:33 +08:00
bindShopControls,
2026-04-25 14:16:13 +08:00
bindSlotMachineControls,
slotFab,
slotPanel,
2026-04-25 08:07:28 +08:00
bindVipControls,
2026-04-25 14:40:54 +08:00
buyVip,
closeVipModal,
openVipModal,
saveVipPresenceSettings,
switchVipTab,
CHAT_FONT_SIZE_STORAGE_KEY,
restoreChatFontSize,
closeChatImageLightbox,
2026-04-25 03:36:30 +08:00
initChatImageLightboxEvents,
openChatImageLightbox,
BLOCKABLE_SYSTEM_SENDERS,
BLOCKED_SYSTEM_SENDERS_STORAGE_KEY,
CHAT_SOUND_MUTED_STORAGE_KEY,
2026-04-25 03:45:30 +08:00
bindBlockMenuControls,
2026-04-25 03:39:31 +08:00
bindSoundMuteControl,
2026-04-25 03:38:27 +08:00
isSoundMuted,
loadBlockedSystemSenders,
normalizeChatPreferences,
normalizeDailyStatus,
parseDailyStatusExpiry,
2026-04-25 03:38:27 +08:00
persistBlockedSystemSenders,
setSoundMuted,
shouldMigrateLocalChatPreferences,
2026-04-25 03:42:54 +08:00
bindChatRightPanelControls,
2026-04-25 10:32:25 +08:00
bindRoomStatusControls,
normalizeRoomStatus,
renderRoomStatusRow,
renderRoomsOnlineStatus,
renderRoomsOnlineStatusToContainer,
resolveRoomUrl,
2026-04-25 14:00:07 +08:00
bindRewardModalControls,
openRewardModal,
createMessageQueue,
};
2026-04-25 08:16:50 +08:00
// 直接挂载只服务暂未迁移的 Blade 调用点;新代码优先通过模块导入或 ChatRoomTools 复用。
window.closeChatImageLightbox = closeChatImageLightbox;
window.openChatImageLightbox = openChatImageLightbox;
2026-04-25 03:58:26 +08:00
window.closeFriendPanel = closeFriendPanel;
window.friendSearch = friendSearch;
window.openFriendPanel = openFriendPanel;
2026-04-25 10:20:21 +08:00
window.quickFriendAction = quickFriendAction;
2026-04-25 14:02:04 +08:00
window.setupBannerNotification = setupBannerNotification;
window.setupFriendNotification = setupFriendNotification;
window.showFriendBanner = showFriendBanner;
2026-04-25 08:21:30 +08:00
window.closeMobileDrawer = closeMobileDrawer;
window.loadMobileRoomList = loadMobileRoomList;
window.openMobileDrawer = openMobileDrawer;
2026-04-25 13:57:12 +08:00
window.openUserCard = openUserCard;
2026-04-25 14:00:07 +08:00
window.openRewardModal = openRewardModal;
2026-04-25 08:21:30 +08:00
window.renderMobileRoomList = renderMobileRoomList;
window.renderMobileUserList = renderMobileUserList;
window.scheduleRenderMobileUserList = scheduleRenderMobileUserList;
window.switchMobileTab = switchMobileTab;
2026-04-25 13:57:12 +08:00
window.switchTarget = switchTarget;
2026-04-25 13:58:40 +08:00
window.clearChatBotContext = clearChatBotContext;
window.sendToChatBot = sendToChatBot;
2026-04-25 14:16:13 +08:00
window.slotFab = slotFab;
window.slotPanel = slotPanel;
2026-04-25 10:16:14 +08:00
window.runFeatureShortcut = runFeatureShortcut;
window.runToolbarAction = runToolbarAction;
2026-04-25 11:06:31 +08:00
window.openHolidayRunFromSystemMessage = openHolidayRunFromSystemMessage;
2026-04-25 04:05:32 +08:00
window.closeAdminBaccaratLossCoverModal = closeAdminBaccaratLossCoverModal;
window.closeCurrentBaccaratLossCoverEvent = closeCurrentBaccaratLossCoverEvent;
2026-04-25 14:09:11 +08:00
window.claimBaccaratLossCover = claimBaccaratLossCover;
window.closeBaccaratLossCoverModal = closeBaccaratLossCoverModal;
window.openBaccaratLossCoverModal = openBaccaratLossCoverModal;
2026-04-25 04:05:32 +08:00
window.openAdminBaccaratLossCoverModal = openAdminBaccaratLossCoverModal;
window.submitBaccaratLossCoverEvent = submitBaccaratLossCoverEvent;
2026-04-25 14:09:11 +08:00
window.switchBaccaratLossCoverTab = switchBaccaratLossCoverTab;
2026-04-25 08:16:50 +08:00
window.bankAction = bankAction;
window.bankLoadInfo = bankLoadInfo;
window.bankShowMsg = bankShowMsg;
window.closeBankModal = closeBankModal;
2026-04-25 14:12:48 +08:00
window.closeGameHall = closeGameHall;
2026-04-25 08:16:50 +08:00
window.fetchBankRanking = fetchBankRanking;
2026-04-25 14:18:00 +08:00
window.fortunePanel = fortunePanel;
2026-04-25 14:22:59 +08:00
window.closeLotteryPanel = closeLotteryPanel;
2026-04-25 14:25:07 +08:00
window.createEarnPanelData = createEarnPanelData;
2026-04-25 14:03:15 +08:00
window.deferChatGameBootstrap = deferChatGameBootstrap;
2026-04-25 14:22:59 +08:00
window.lotteryPanel = lotteryPanel;
2026-04-25 14:12:48 +08:00
window.openGameHall = openGameHall;
2026-04-25 14:22:59 +08:00
window.openLotteryPanel = openLotteryPanel;
2026-04-25 08:16:50 +08:00
window.openBankModal = openBankModal;
2026-04-25 14:22:59 +08:00
window.showLotteryMsg = showLotteryMsg;
2026-04-25 14:43:33 +08:00
window.checkAndAutoStartFishing = checkAndAutoStartFishing;
window.createBobber = createBobber;
window.reelFish = reelFish;
window.removeBobber = removeBobber;
window.resetFishingBtn = resetFishingBtn;
window.startFishing = startFishing;
window.stopAutoFishing = stopAutoFishing;
2026-04-25 14:40:54 +08:00
window.buyVip = buyVip;
window.closeVipModal = closeVipModal;
window.openVipModal = openVipModal;
window.saveVipPresenceSettings = saveVipPresenceSettings;
window.switchVipTab = switchVipTab;
2026-04-25 08:16:50 +08:00
window.switchBankTab = switchBankTab;
window.toggleBankRankSort = toggleBankRankSort;
window.applyFontSize = applyFontSize;
2026-04-25 04:00:38 +08:00
// 页面加载后立即注册事件委托,具体业务逻辑仍由各子模块负责。
2026-04-25 13:54:00 +08:00
bindChatBanner();
2026-04-25 13:58:40 +08:00
bindChatBotControls();
2026-04-25 13:55:47 +08:00
bindAppointmentAnnouncementControls();
2026-04-25 03:54:23 +08:00
bindGlobalDialogControls();
2026-04-25 10:13:23 +08:00
bindDailySignInControls();
2026-04-25 14:25:07 +08:00
bindEarnPanelControls();
2026-04-25 14:22:59 +08:00
bindLotteryPanelControls();
2026-04-25 03:40:30 +08:00
bindChatFontSizeControl();
2026-04-25 03:41:45 +08:00
bindChatImageUploadControl();
2026-04-25 10:41:20 +08:00
bindChatComposerControls();
2026-04-25 13:51:50 +08:00
bindChatToast();
2026-04-25 03:58:26 +08:00
bindFriendPanelControls();
2026-04-25 14:02:04 +08:00
bindFriendNotificationControls();
2026-04-25 03:59:53 +08:00
bindToolbarControls();
2026-04-25 13:57:12 +08:00
bindUserTargetActions();
bindAdminMenuControls();
2026-04-25 04:05:32 +08:00
bindBaccaratLossCoverAdminControls();
2026-04-25 10:44:46 +08:00
bindBaccaratLossCoverControls();
2026-04-25 10:46:36 +08:00
bindGameHallControls();
2026-04-25 14:03:15 +08:00
bindGameBootstrapControls();
2026-04-25 10:50:35 +08:00
bindGamePanelControls();
2026-04-25 11:06:31 +08:00
bindHolidayModalControls();
2026-04-25 14:04:42 +08:00
bindChatInitialStateControls();
2026-04-25 08:08:39 +08:00
bindBankControls();
bindFishingControls();
2026-04-25 14:18:00 +08:00
bindFortunePanelControls();
2026-04-25 08:10:23 +08:00
bindMarriageStatusControls();
2026-04-25 08:04:22 +08:00
bindProfileControls();
2026-04-25 08:05:33 +08:00
bindShopControls();
2026-04-25 14:16:13 +08:00
bindSlotMachineControls();
2026-04-25 08:07:28 +08:00
bindVipControls();
2026-04-25 03:42:54 +08:00
bindChatRightPanelControls();
2026-04-25 10:32:25 +08:00
bindRoomStatusControls();
2026-04-25 14:00:07 +08:00
bindRewardModalControls();
2026-04-25 03:44:04 +08:00
bindMobileDrawerControls();
2026-04-25 03:49:13 +08:00
bindWelcomeMenuControls();
2026-04-25 03:45:30 +08:00
bindBlockMenuControls();
}