2026-02-26 21:10:34 +08:00
|
|
|
|
{{--
|
|
|
|
|
|
文件功能:聊天室底部输入工具栏(两行结构)
|
|
|
|
|
|
第一行:发送对象、动作、字色、悄悄话、滚屏、分屏、管理操作
|
|
|
|
|
|
第二行:输入框 + 发送按钮
|
|
|
|
|
|
从 frame.blade.php 拆分,便于独立维护
|
|
|
|
|
|
|
2026-04-21 16:43:17 +08:00
|
|
|
|
依赖变量:$user, $room, $levelKick, $levelMute, $levelBan, $levelBanip,
|
|
|
|
|
|
$roomPermissionMap, $hasRoomManagementPermission
|
2026-02-26 21:10:34 +08:00
|
|
|
|
--}}
|
|
|
|
|
|
|
2026-04-21 16:43:17 +08:00
|
|
|
|
@php
|
|
|
|
|
|
$canSetAnnouncement = $roomPermissionMap[\App\Support\PositionPermissionRegistry::ROOM_ANNOUNCEMENT] ?? false;
|
|
|
|
|
|
$canPublicBroadcast = $roomPermissionMap[\App\Support\PositionPermissionRegistry::ROOM_PUBLIC_BROADCAST] ?? false;
|
|
|
|
|
|
$canClearScreen = $roomPermissionMap[\App\Support\PositionPermissionRegistry::ROOM_CLEAR_SCREEN] ?? false;
|
|
|
|
|
|
$canSendRedPacket = $roomPermissionMap[\App\Support\PositionPermissionRegistry::ROOM_RED_PACKET] ?? false;
|
|
|
|
|
|
$canManageLossCover = $roomPermissionMap[\App\Support\PositionPermissionRegistry::ROOM_BACCARAT_LOSS_COVER] ?? false;
|
|
|
|
|
|
$canTriggerFullscreenEffect = $roomPermissionMap[\App\Support\PositionPermissionRegistry::ROOM_FULLSCREEN_EFFECT] ?? false;
|
2026-04-24 21:17:44 +08:00
|
|
|
|
$currentDailyStatusKey = $activeDailyStatus['key'] ?? '';
|
2026-04-21 16:43:17 +08:00
|
|
|
|
@endphp
|
|
|
|
|
|
|
2026-02-26 21:10:34 +08:00
|
|
|
|
<div class="input-bar">
|
2026-04-12 14:04:18 +08:00
|
|
|
|
<form id="chat-form" onsubmit="sendMessage(event)" enctype="multipart/form-data">
|
2026-02-26 21:10:34 +08:00
|
|
|
|
{{-- 第一行:工具选项 --}}
|
|
|
|
|
|
<div class="input-row">
|
|
|
|
|
|
<label>对
|
|
|
|
|
|
<select id="to_user" name="to_user" style="color: #224466;">
|
|
|
|
|
|
<option value="大家" selected>大家</option>
|
|
|
|
|
|
</select>
|
|
|
|
|
|
说:
|
|
|
|
|
|
</label>
|
|
|
|
|
|
|
2026-03-12 13:20:26 +08:00
|
|
|
|
<label>动作:
|
|
|
|
|
|
<select id="action" name="action">
|
|
|
|
|
|
<option value="">无</option>
|
|
|
|
|
|
<option value="微笑">微笑</option>
|
|
|
|
|
|
<option value="大笑">大笑</option>
|
|
|
|
|
|
<option value="愤怒">愤怒</option>
|
|
|
|
|
|
<option value="哭泣">哭泣</option>
|
|
|
|
|
|
<option value="害羞">害羞</option>
|
|
|
|
|
|
<option value="鄙视">鄙视</option>
|
|
|
|
|
|
<option value="得意">得意</option>
|
|
|
|
|
|
<option value="疑惑">疑惑</option>
|
|
|
|
|
|
<option value="同情">同情</option>
|
|
|
|
|
|
<option value="无奈">无奈</option>
|
|
|
|
|
|
<option value="拳打">拳打</option>
|
|
|
|
|
|
<option value="飞吻">飞吻</option>
|
|
|
|
|
|
<option value="偷看">偷看</option>
|
2026-03-17 21:26:57 +08:00
|
|
|
|
{{-- 欢迎语专用 action,隐藏不对外显示,JS 临时切换用 --}}
|
|
|
|
|
|
<option value="欢迎" style="display:none"></option>
|
2026-03-12 13:20:26 +08:00
|
|
|
|
</select>
|
|
|
|
|
|
</label>
|
2026-02-26 21:10:34 +08:00
|
|
|
|
|
|
|
|
|
|
<label>字色:
|
2026-04-25 02:52:30 +08:00
|
|
|
|
<input type="color" id="font_color" name="font_color" value="{{ preg_match('/^#[0-9a-fA-F]{6}$/', (string) $user->s_color) ? $user->s_color : '#000000' }}"
|
2026-02-26 21:10:34 +08:00
|
|
|
|
style="width: 22px; height: 18px; padding: 0; border: 1px solid navy; cursor: pointer;">
|
|
|
|
|
|
</label>
|
|
|
|
|
|
|
2026-02-27 14:46:49 +08:00
|
|
|
|
<label>字号:
|
2026-04-25 03:40:30 +08:00
|
|
|
|
<select id="font_size_select" style="color: #224466;">
|
2026-02-27 14:46:49 +08:00
|
|
|
|
<option value="12">12</option>
|
|
|
|
|
|
<option value="13">13</option>
|
|
|
|
|
|
<option value="14" selected>14</option>
|
|
|
|
|
|
<option value="15">15</option>
|
|
|
|
|
|
<option value="16">16</option>
|
|
|
|
|
|
<option value="18">18</option>
|
|
|
|
|
|
<option value="20">20</option>
|
|
|
|
|
|
<option value="22">22</option>
|
|
|
|
|
|
</select>
|
|
|
|
|
|
</label>
|
|
|
|
|
|
|
2026-02-26 21:10:34 +08:00
|
|
|
|
<label title="仅对方和自己可见">
|
|
|
|
|
|
<input type="checkbox" id="is_secret" name="is_secret" value="1">
|
|
|
|
|
|
悄悄话
|
|
|
|
|
|
</label>
|
|
|
|
|
|
|
|
|
|
|
|
<label title="自动滚屏到最新消息">
|
|
|
|
|
|
<input type="checkbox" id="auto_scroll" checked>
|
|
|
|
|
|
滚屏
|
|
|
|
|
|
</label>
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-03-18 20:51:57 +08:00
|
|
|
|
{{-- 欢迎语快捷按钮 + 下拉浮层 --}}
|
|
|
|
|
|
<div style="position:relative;display:inline-block;" id="welcome-btn-wrap">
|
2026-04-25 03:49:13 +08:00
|
|
|
|
<button type="button" data-chat-welcome-menu-toggle
|
2026-03-18 20:51:57 +08:00
|
|
|
|
style="font-size:11px;padding:1px 6px;background:#e07820;color:#fff;border:none;border-radius:2px;cursor:pointer;">
|
|
|
|
|
|
💬 欢迎
|
|
|
|
|
|
</button>
|
2026-04-25 03:49:13 +08:00
|
|
|
|
<div id="welcome-menu" class="welcome-menu" data-chat-welcome-menu style="display:none;">
|
2026-03-18 20:51:57 +08:00
|
|
|
|
@php
|
2026-04-12 14:04:18 +08:00
|
|
|
|
$welcomeMessages = [
|
|
|
|
|
|
'欢迎【{name}】来到我们的聊天室,请遵守规则,文明聊天!',
|
|
|
|
|
|
'【{name}】,你好!欢迎来访,有什么问题随时告诉我们!',
|
|
|
|
|
|
'热烈欢迎【{name}】加入,愿您在这里度过愉快的时光!',
|
|
|
|
|
|
'欢迎新朋友【{name}】!请先阅读公告,了解聊天室规则哦~',
|
|
|
|
|
|
'【{name}】来了!欢迎欢迎,希望你在这里玩得开心!',
|
|
|
|
|
|
'亲爱的【{name}】,欢迎光临本聊天室,请保持文明礼貌!',
|
|
|
|
|
|
'欢迎【{name}】入驻!有问题请联系管理员,我们随时为您服务!',
|
|
|
|
|
|
'【{name}】,初来乍到,欢迎多多关照,我们是一家人!',
|
|
|
|
|
|
'大家欢迎新成员【{name}】!请遵守群规,共建和谐聊天环境!',
|
|
|
|
|
|
'欢迎【{name}】莅临指导!希望你常来,让我们一起聊天!',
|
|
|
|
|
|
];
|
2026-03-18 20:51:57 +08:00
|
|
|
|
@endphp
|
|
|
|
|
|
@foreach ($welcomeMessages as $msg)
|
2026-04-25 03:49:13 +08:00
|
|
|
|
<div class="welcome-menu-item" data-chat-welcome-template="{{ $msg }}">
|
2026-03-18 20:51:57 +08:00
|
|
|
|
{{ $msg }}</div>
|
|
|
|
|
|
@endforeach
|
2026-03-17 21:12:14 +08:00
|
|
|
|
</div>
|
2026-03-18 20:51:57 +08:00
|
|
|
|
</div>
|
2026-03-17 21:12:14 +08:00
|
|
|
|
|
2026-04-25 04:03:13 +08:00
|
|
|
|
<button type="button" id="fishing-btn" data-chat-fishing-start
|
2026-02-26 21:10:34 +08:00
|
|
|
|
style="font-size: 11px; padding: 1px 6px; background: #2563eb; color: #fff; border: none; border-radius: 2px; cursor: pointer;">🎣
|
|
|
|
|
|
钓鱼</button>
|
2026-02-26 22:27:49 +08:00
|
|
|
|
|
2026-04-25 03:41:45 +08:00
|
|
|
|
<input type="file" id="chat_image" name="image" accept="image/jpeg,image/png,image/gif,image/webp" style="display:none;">
|
|
|
|
|
|
<button type="button" data-chat-image-upload-trigger
|
2026-04-12 17:11:12 +08:00
|
|
|
|
style="font-size: 11px; padding: 1px 6px; background: #0f766e; color: #fff; border: none; border-radius: 2px; cursor: pointer;">
|
2026-04-12 14:04:18 +08:00
|
|
|
|
📷 图片
|
|
|
|
|
|
</button>
|
2026-04-14 22:25:16 +08:00
|
|
|
|
|
|
|
|
|
|
<div style="position:relative;display:inline-block;" id="block-btn-wrap">
|
2026-04-25 03:45:30 +08:00
|
|
|
|
<button type="button" data-chat-block-menu-toggle
|
2026-04-14 22:25:16 +08:00
|
|
|
|
style="font-size:11px;padding:1px 6px;background:#475569;color:#fff;border:none;border-radius:2px;cursor:pointer;">
|
|
|
|
|
|
🔕 屏蔽
|
|
|
|
|
|
</button>
|
2026-04-25 03:45:30 +08:00
|
|
|
|
<div id="block-menu" data-chat-block-menu
|
2026-04-14 22:25:16 +08:00
|
|
|
|
style="display:none;position:absolute;bottom:calc(100% + 6px);left:0;z-index:10020;min-width:168px;padding:10px;background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 10px 24px rgba(15,23,42,.18);">
|
2026-04-14 22:43:34 +08:00
|
|
|
|
<div style="font-size:10px;color:#475569;padding:0 2px 8px;">可集中管理播报显示与特效声音</div>
|
|
|
|
|
|
<label
|
|
|
|
|
|
style="display:flex;align-items:center;gap:6px;font-size:12px;color:#1e293b;cursor:pointer;padding:4px 2px;">
|
2026-04-25 03:39:31 +08:00
|
|
|
|
<input type="checkbox" id="sound_muted">
|
2026-04-14 22:43:34 +08:00
|
|
|
|
🔇 禁音
|
|
|
|
|
|
</label>
|
|
|
|
|
|
<div style="height:1px;background:#e2e8f0;margin:6px 0;"></div>
|
2026-04-14 22:25:16 +08:00
|
|
|
|
<label
|
|
|
|
|
|
style="display:flex;align-items:center;gap:6px;font-size:12px;color:#1e293b;cursor:pointer;padding:4px 2px;">
|
2026-04-25 03:50:10 +08:00
|
|
|
|
<input type="checkbox" id="block-sender-fishing" data-chat-block-sender="钓鱼播报">
|
2026-04-14 22:25:16 +08:00
|
|
|
|
钓鱼播报
|
|
|
|
|
|
</label>
|
|
|
|
|
|
<label
|
|
|
|
|
|
style="display:flex;align-items:center;gap:6px;font-size:12px;color:#1e293b;cursor:pointer;padding:4px 2px;">
|
2026-04-25 03:50:10 +08:00
|
|
|
|
<input type="checkbox" id="block-sender-doctor" data-chat-block-sender="星海小博士">
|
2026-04-14 22:25:16 +08:00
|
|
|
|
星海小博士
|
|
|
|
|
|
</label>
|
2026-04-14 22:31:11 +08:00
|
|
|
|
<label
|
|
|
|
|
|
style="display:flex;align-items:center;gap:6px;font-size:12px;color:#1e293b;cursor:pointer;padding:4px 2px;">
|
2026-04-25 03:50:10 +08:00
|
|
|
|
<input type="checkbox" id="block-sender-baccarat" data-chat-block-sender="百家乐">
|
2026-04-14 22:31:11 +08:00
|
|
|
|
百家乐
|
|
|
|
|
|
</label>
|
|
|
|
|
|
<label
|
|
|
|
|
|
style="display:flex;align-items:center;gap:6px;font-size:12px;color:#1e293b;cursor:pointer;padding:4px 2px;">
|
2026-04-25 03:50:10 +08:00
|
|
|
|
<input type="checkbox" id="block-sender-horse-race" data-chat-block-sender="跑马">
|
2026-04-14 22:31:11 +08:00
|
|
|
|
跑马
|
|
|
|
|
|
</label>
|
2026-04-17 15:27:40 +08:00
|
|
|
|
<label
|
|
|
|
|
|
style="display:flex;align-items:center;gap:6px;font-size:12px;color:#1e293b;cursor:pointer;padding:4px 2px;">
|
2026-04-25 03:50:10 +08:00
|
|
|
|
<input type="checkbox" id="block-sender-mystery-box" data-chat-block-sender="神秘箱子">
|
2026-04-17 15:27:40 +08:00
|
|
|
|
神秘箱子
|
|
|
|
|
|
</label>
|
2026-04-14 22:25:16 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
2026-04-24 21:17:44 +08:00
|
|
|
|
<div style="position:relative;display:inline-block;" id="feature-btn-wrap">
|
2026-04-25 03:53:29 +08:00
|
|
|
|
<button type="button" data-chat-feature-menu-toggle
|
2026-04-24 21:17:44 +08:00
|
|
|
|
style="font-size:11px;padding:1px 6px;background:linear-gradient(135deg,#4f46e5,#6366f1);color:#fff;border:none;border-radius:2px;cursor:pointer;font-weight:bold;">
|
|
|
|
|
|
⚙️ 功能
|
|
|
|
|
|
</button>
|
2026-04-25 03:53:29 +08:00
|
|
|
|
<div id="feature-menu" data-chat-feature-menu
|
2026-04-24 21:17:44 +08:00
|
|
|
|
style="display:none;position:absolute;bottom:calc(100% + 6px);left:0;z-index:10020;min-width:236px;padding:10px;background:#eef2ff;border:1px solid #c7d2fe;border-radius:10px;box-shadow:0 10px 24px rgba(15,23,42,.18);">
|
|
|
|
|
|
<div style="font-size:10px;color:#4338ca;padding:0 2px 8px;">常用操作</div>
|
|
|
|
|
|
<div style="display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;">
|
2026-04-25 03:53:29 +08:00
|
|
|
|
<button type="button" data-chat-feature-local-clear
|
2026-04-24 21:17:44 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#475569;border:1px solid #cbd5e1;border-radius:6px;cursor:pointer;">🧹 清屏</button>
|
2026-04-25 03:53:29 +08:00
|
|
|
|
<button type="button" data-chat-daily-status-open
|
2026-04-24 21:17:44 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#4f46e5;border:1px solid #a5b4fc;border-radius:6px;cursor:pointer;">
|
|
|
|
|
|
<span id="daily-status-shortcut-icon">{{ $activeDailyStatus['icon'] ?? '🙂' }}</span>
|
|
|
|
|
|
<span id="daily-status-shortcut-label">{{ $activeDailyStatus['label'] ?? '状态' }}</span>
|
|
|
|
|
|
</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div style="font-size:10px;color:#4338ca;padding:10px 2px 8px;">快捷入口</div>
|
|
|
|
|
|
<div style="display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;">
|
2026-04-25 03:53:29 +08:00
|
|
|
|
<button type="button" data-chat-feature-sign-in
|
2026-04-24 22:47:27 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#334155;border:1px solid #cbd5e1;border-radius:6px;cursor:pointer;">✅ 签到</button>
|
2026-04-25 03:53:29 +08:00
|
|
|
|
<button type="button" data-chat-feature-shortcut="shop"
|
2026-04-24 21:17:44 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#334155;border:1px solid #cbd5e1;border-radius:6px;cursor:pointer;">🛍 商店</button>
|
2026-04-25 03:53:29 +08:00
|
|
|
|
<button type="button" data-chat-feature-shortcut="vip"
|
2026-04-24 21:17:44 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#334155;border:1px solid #cbd5e1;border-radius:6px;cursor:pointer;">👑 会员</button>
|
2026-04-25 03:53:29 +08:00
|
|
|
|
<button type="button" data-chat-feature-shortcut="game"
|
2026-04-24 21:17:44 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#334155;border:1px solid #cbd5e1;border-radius:6px;cursor:pointer;">🎮 娱乐</button>
|
2026-04-25 03:53:29 +08:00
|
|
|
|
<button type="button" data-chat-feature-shortcut="avatar"
|
2026-04-24 21:17:44 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#334155;border:1px solid #cbd5e1;border-radius:6px;cursor:pointer;">🖼 头像</button>
|
2026-04-25 03:53:29 +08:00
|
|
|
|
<button type="button" data-chat-feature-shortcut="bank"
|
2026-04-24 21:17:44 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#334155;border:1px solid #cbd5e1;border-radius:6px;cursor:pointer;">🏦 银行</button>
|
2026-04-25 03:53:29 +08:00
|
|
|
|
<button type="button" data-chat-feature-shortcut="marriage"
|
2026-04-24 21:17:44 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#334155;border:1px solid #cbd5e1;border-radius:6px;cursor:pointer;">💍 婚姻</button>
|
2026-04-25 03:53:29 +08:00
|
|
|
|
<button type="button" data-chat-feature-shortcut="friend"
|
2026-04-24 21:17:44 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#334155;border:1px solid #cbd5e1;border-radius:6px;cursor:pointer;">👥 好友</button>
|
2026-04-25 03:53:29 +08:00
|
|
|
|
<button type="button" data-chat-feature-shortcut="settings"
|
2026-04-24 21:17:44 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#334155;border:1px solid #cbd5e1;border-radius:6px;cursor:pointer;">⚙️ 设置</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
2026-04-25 03:53:29 +08:00
|
|
|
|
<div id="daily-status-editor-overlay" data-chat-daily-status-overlay
|
2026-04-24 21:17:44 +08:00
|
|
|
|
style="display:none;position:fixed;inset:0;z-index:10030;background:rgba(15,23,42,.45);backdrop-filter:blur(2px);">
|
2026-04-25 03:53:29 +08:00
|
|
|
|
<div id="daily-status-editor" data-chat-daily-status-editor
|
2026-04-24 23:29:48 +08:00
|
|
|
|
style="position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(94vw,720px);max-height:min(88vh,720px);overflow-y:auto;padding:10px 12px;background:linear-gradient(180deg,#eef2ff 0%,#f8fafc 100%);border:1px solid #c7d2fe;border-radius:14px;box-shadow:0 18px 40px rgba(15,23,42,.28);">
|
|
|
|
|
|
<div style="display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 2px 8px;border-bottom:1px solid #dbeafe;">
|
|
|
|
|
|
<div style="min-width:0;">
|
|
|
|
|
|
<div style="font-size:20px;font-weight:bold;color:#312e81;line-height:1.15;">设个状态</div>
|
|
|
|
|
|
<div style="font-size:11px;color:#6366f1;margin-top:2px;">朋友当天内可见,次日自动失效</div>
|
2026-04-24 21:17:44 +08:00
|
|
|
|
</div>
|
2026-04-25 03:53:29 +08:00
|
|
|
|
<button type="button" data-chat-daily-status-clear
|
2026-04-24 23:29:48 +08:00
|
|
|
|
style="flex:none;font-size:11px;padding:5px 10px;background:#fff7ed;color:#c2410c;border:1px solid #fdba74;border-radius:999px;cursor:pointer;">
|
2026-04-24 21:17:44 +08:00
|
|
|
|
♻️ 清除状态
|
|
|
|
|
|
</button>
|
2026-04-25 03:53:29 +08:00
|
|
|
|
<button type="button" data-chat-daily-status-close
|
2026-04-24 23:29:48 +08:00
|
|
|
|
style="width:28px;height:28px;border:none;border-radius:999px;background:#e0e7ff;color:#4338ca;font-size:18px;cursor:pointer;line-height:1;">×</button>
|
2026-04-24 21:17:44 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
@foreach ($dailyStatusCatalog as $group)
|
2026-04-24 23:29:48 +08:00
|
|
|
|
<div style="padding:8px 2px 2px;">
|
|
|
|
|
|
<div style="font-size:13px;font-weight:bold;color:#475569;margin-bottom:6px;">
|
2026-04-24 21:17:44 +08:00
|
|
|
|
{{ $group['group'] }}
|
|
|
|
|
|
</div>
|
2026-04-24 23:29:48 +08:00
|
|
|
|
<div style="display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px;">
|
2026-04-24 21:17:44 +08:00
|
|
|
|
@foreach ($group['items'] as $item)
|
|
|
|
|
|
<button type="button"
|
|
|
|
|
|
class="daily-status-item"
|
|
|
|
|
|
data-status-key="{{ $item['key'] }}"
|
|
|
|
|
|
data-status-label="{{ $item['label'] }}"
|
|
|
|
|
|
data-status-icon="{{ $item['icon'] }}"
|
|
|
|
|
|
data-status-active="{{ $currentDailyStatusKey === $item['key'] ? '1' : '0' }}"
|
2026-04-25 03:53:29 +08:00
|
|
|
|
data-chat-daily-status-select="{{ $item['key'] }}"
|
2026-04-24 23:29:48 +08:00
|
|
|
|
style="display:flex;align-items:center;justify-content:center;gap:6px;min-height:52px;padding:7px 8px;background:#ffffffcc;border:1px solid #e5e7eb;border-radius:10px;cursor:pointer;transition:all .15s ease;color:#334155;">
|
|
|
|
|
|
<span style="font-size:20px;line-height:1;flex:none;">{{ $item['icon'] }}</span>
|
|
|
|
|
|
<span style="font-size:12px;line-height:1.2;text-align:left;white-space:normal;word-break:keep-all;">{{ $item['label'] }}</span>
|
2026-04-24 21:17:44 +08:00
|
|
|
|
</button>
|
|
|
|
|
|
@endforeach
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
@endforeach
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
2026-04-21 16:43:17 +08:00
|
|
|
|
@if (! empty($hasRoomManagementPermission))
|
2026-04-12 16:54:25 +08:00
|
|
|
|
<div style="position:relative;display:inline-block;" id="admin-btn-wrap">
|
2026-04-25 04:03:13 +08:00
|
|
|
|
<button type="button" data-chat-admin-menu-toggle
|
2026-04-12 16:54:25 +08:00
|
|
|
|
style="font-size:11px;padding:1px 6px;background:linear-gradient(135deg,#b45309,#d97706);color:#fff;border:none;border-radius:2px;cursor:pointer;font-weight:bold;">
|
|
|
|
|
|
🛠 管理
|
2026-04-12 16:24:48 +08:00
|
|
|
|
</button>
|
2026-04-25 04:03:13 +08:00
|
|
|
|
<div id="admin-menu" data-chat-admin-menu
|
2026-04-12 16:54:25 +08:00
|
|
|
|
style="display:none;position:absolute;bottom:calc(100% + 6px);left:0;z-index:10020;min-width:244px;max-width:min(80vw,288px);max-height:min(62vh,460px);overflow-y:auto;padding:10px;background:#fffaf0;border:1px solid #fdba74;border-radius:10px;box-shadow:0 10px 24px rgba(15,23,42,.18);">
|
2026-04-21 16:43:17 +08:00
|
|
|
|
@if ($canSetAnnouncement)
|
2026-04-12 16:54:25 +08:00
|
|
|
|
<div style="font-size:10px;color:#9a3412;padding:0 2px 6px;">房间管理</div>
|
|
|
|
|
|
<div style="display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;">
|
2026-04-25 04:03:13 +08:00
|
|
|
|
<button type="button" data-chat-admin-action="announcement"
|
2026-04-12 16:54:25 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#047857;border:1px solid #86efac;border-radius:6px;cursor:pointer;">🪧 设公告</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
@endif
|
|
|
|
|
|
|
2026-04-21 17:14:12 +08:00
|
|
|
|
@if ($canPublicBroadcast || $canClearScreen || $canSendRedPacket || $canManageLossCover || Auth::id() === 1)
|
2026-04-21 16:43:17 +08:00
|
|
|
|
<div style="font-size:10px;color:#9a3412;padding:10px 2px 6px;">聊天室管理</div>
|
2026-04-12 16:54:25 +08:00
|
|
|
|
<div style="display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;">
|
2026-04-21 16:43:17 +08:00
|
|
|
|
@if ($canPublicBroadcast)
|
2026-04-25 04:03:13 +08:00
|
|
|
|
<button type="button" data-chat-admin-action="announce-message"
|
2026-04-21 16:43:17 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#7c3aed;border:1px solid #c4b5fd;border-radius:6px;cursor:pointer;">📢 公屏</button>
|
|
|
|
|
|
@endif
|
|
|
|
|
|
@if ($canClearScreen)
|
2026-04-25 04:03:13 +08:00
|
|
|
|
<button type="button" data-chat-admin-action="admin-clear"
|
2026-04-21 16:43:17 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#dc2626;border:1px solid #fca5a5;border-radius:6px;cursor:pointer;">🧹 清屏</button>
|
|
|
|
|
|
@endif
|
|
|
|
|
|
@if ($canSendRedPacket)
|
2026-04-25 04:03:13 +08:00
|
|
|
|
<button type="button" data-chat-admin-action="red-packet"
|
2026-04-21 16:43:17 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#b91c1c;border:1px solid #fdba74;border-radius:6px;cursor:pointer;">🧧 礼包</button>
|
|
|
|
|
|
@endif
|
|
|
|
|
|
@if ($canManageLossCover)
|
2026-04-25 04:03:13 +08:00
|
|
|
|
<button type="button" data-chat-admin-action="loss-cover"
|
2026-04-21 16:43:17 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#15803d;border:1px solid #86efac;border-radius:6px;cursor:pointer;">🎁 买单活动</button>
|
|
|
|
|
|
@endif
|
2026-04-21 17:14:12 +08:00
|
|
|
|
@if (Auth::id() === 1)
|
2026-04-25 04:03:13 +08:00
|
|
|
|
<button type="button" data-chat-admin-action="refresh-all"
|
2026-04-21 17:14:12 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#0f766e;border:1px solid #99f6e4;border-radius:6px;cursor:pointer;">♻️ 刷新全员</button>
|
|
|
|
|
|
@endif
|
2026-04-12 16:54:25 +08:00
|
|
|
|
</div>
|
2026-04-21 16:43:17 +08:00
|
|
|
|
@endif
|
2026-04-12 16:54:25 +08:00
|
|
|
|
|
2026-04-21 16:43:17 +08:00
|
|
|
|
@if ($canTriggerFullscreenEffect)
|
2026-04-12 16:54:25 +08:00
|
|
|
|
<div style="font-size:10px;color:#9a3412;padding:10px 2px 6px;">全屏特效</div>
|
|
|
|
|
|
<div style="display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;">
|
2026-04-25 04:03:13 +08:00
|
|
|
|
<button type="button" data-chat-admin-effect="fireworks"
|
2026-04-12 16:54:25 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#ea580c;border:1px solid #fdba74;border-radius:6px;cursor:pointer;">🎆 烟花</button>
|
2026-04-25 04:03:13 +08:00
|
|
|
|
<button type="button" data-chat-admin-effect="rain"
|
2026-04-12 16:54:25 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#2563eb;border:1px solid #93c5fd;border-radius:6px;cursor:pointer;">🌧️ 下雨</button>
|
2026-04-25 04:03:13 +08:00
|
|
|
|
<button type="button" data-chat-admin-effect="lightning"
|
2026-04-12 16:54:25 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#7c3aed;border:1px solid #c4b5fd;border-radius:6px;cursor:pointer;">⚡ 雷电</button>
|
2026-04-25 04:03:13 +08:00
|
|
|
|
<button type="button" data-chat-admin-effect="snow"
|
2026-04-12 16:54:25 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#0891b2;border:1px solid #bae6fd;border-radius:6px;cursor:pointer;">❄️ 下雪</button>
|
2026-04-25 04:03:13 +08:00
|
|
|
|
<button type="button" data-chat-admin-effect="sakura"
|
2026-04-12 16:54:25 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#db2777;border:1px solid #f9a8d4;border-radius:6px;cursor:pointer;">🌸 樱花飘落</button>
|
2026-04-25 04:03:13 +08:00
|
|
|
|
<button type="button" data-chat-admin-effect="meteors"
|
2026-04-12 16:54:25 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#2563eb;border:1px solid #bfdbfe;border-radius:6px;cursor:pointer;">🌠 流星</button>
|
2026-04-25 04:03:13 +08:00
|
|
|
|
<button type="button" data-chat-admin-effect="gold-rain"
|
2026-04-12 16:54:25 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#ca8a04;border:1px solid #fde68a;border-radius:6px;cursor:pointer;">🪙 金币雨</button>
|
2026-04-25 04:03:13 +08:00
|
|
|
|
<button type="button" data-chat-admin-effect="hearts"
|
2026-04-12 16:54:25 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#e11d48;border:1px solid #fda4af;border-radius:6px;cursor:pointer;">💖 爱心飘落</button>
|
2026-04-25 04:03:13 +08:00
|
|
|
|
<button type="button" data-chat-admin-effect="confetti"
|
2026-04-12 16:54:25 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#7c3aed;border:1px solid #ddd6fe;border-radius:6px;cursor:pointer;">🎊 彩带庆典</button>
|
2026-04-25 04:03:13 +08:00
|
|
|
|
<button type="button" data-chat-admin-effect="fireflies"
|
2026-04-12 16:54:25 +08:00
|
|
|
|
style="font-size:11px;padding:6px 8px;background:#fff;color:#15803d;border:1px solid #bbf7d0;border-radius:6px;cursor:pointer;">✨ 萤火虫</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
@endif
|
2026-04-12 16:24:48 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2026-02-26 22:27:49 +08:00
|
|
|
|
@endif
|
2026-02-26 21:10:34 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
{{-- 第二行:输入框 + 发送 --}}
|
|
|
|
|
|
<div class="input-row">
|
2026-04-12 14:04:18 +08:00
|
|
|
|
|
|
|
|
|
|
|
2026-03-18 20:12:17 +08:00
|
|
|
|
<input type="text" id="content" name="content" class="say-input"
|
2026-04-12 14:04:18 +08:00
|
|
|
|
placeholder="在这里输入聊天内容或发送图片,按 Enter 发送..." autocomplete="off">
|
2026-02-26 21:10:34 +08:00
|
|
|
|
<button type="submit" id="send-btn" class="send-btn">发送</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</form>
|
|
|
|
|
|
</div>
|
2026-04-11 23:27:29 +08:00
|
|
|
|
|
2026-04-21 16:43:17 +08:00
|
|
|
|
@if ($canManageLossCover)
|
2026-04-11 23:27:29 +08:00
|
|
|
|
<div id="baccarat-loss-cover-admin-modal"
|
2026-04-25 04:05:32 +08:00
|
|
|
|
data-blc-summary-url="{{ route('baccarat-loss-cover.summary') }}"
|
|
|
|
|
|
data-blc-store-url="{{ route('command.baccarat_loss_cover.store') }}"
|
|
|
|
|
|
data-blc-close-url-template="{{ route('command.baccarat_loss_cover.close', ['event' => '__EVENT__']) }}"
|
2026-04-11 23:27:29 +08:00
|
|
|
|
style="display:none; position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:10010; justify-content:center; align-items:center;">
|
|
|
|
|
|
<div
|
|
|
|
|
|
style="width:560px; max-width:96vw; max-height:88vh; overflow:hidden; border-radius:8px; background:#fff; box-shadow:0 8px 32px rgba(0,0,0,.3); display:flex; flex-direction:column;">
|
|
|
|
|
|
<div
|
|
|
|
|
|
style="background:linear-gradient(135deg,#15803d,#22c55e); color:#fff; padding:12px 16px; display:flex; justify-content:space-between; align-items:center;">
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<div style="font-size:14px; font-weight:bold;">🎁 买单活动设置</div>
|
|
|
|
|
|
<div style="font-size:11px; color:rgba(255,255,255,.85); margin-top:2px;">创建百家乐“你玩游戏我买单”活动,并查看当前状态</div>
|
|
|
|
|
|
</div>
|
2026-04-25 04:05:32 +08:00
|
|
|
|
<span data-blc-admin-close
|
2026-04-11 23:27:29 +08:00
|
|
|
|
style="cursor:pointer; font-size:18px; opacity:.85;">×</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div style="flex:1; overflow-y:auto; padding:16px; background:#f6fff8;">
|
|
|
|
|
|
<div id="blc-admin-current"
|
|
|
|
|
|
style="background:#fff; border:1px solid #dcfce7; border-radius:10px; padding:14px; color:#166534; margin-bottom:14px;">
|
|
|
|
|
|
正在加载当前活动…
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
2026-04-25 04:05:32 +08:00
|
|
|
|
<form id="baccarat-loss-cover-admin-form" data-blc-admin-form
|
2026-04-11 23:27:29 +08:00
|
|
|
|
style="background:#fff; border:1px solid #dcfce7; border-radius:10px; padding:14px;">
|
|
|
|
|
|
<div style="font-size:13px; font-weight:bold; color:#166534; margin-bottom:12px;">新建活动</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div style="display:flex; flex-direction:column; gap:10px;">
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<label style="display:block; font-size:12px; color:#4b5563; margin-bottom:4px;">活动标题</label>
|
|
|
|
|
|
<input type="text" id="blc-admin-title" maxlength="100" value="你玩游戏我买单"
|
|
|
|
|
|
style="width:100%; box-sizing:border-box; padding:8px 10px; border:1px solid #bbf7d0; border-radius:8px; font-size:12px;">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<label style="display:block; font-size:12px; color:#4b5563; margin-bottom:4px;">活动说明</label>
|
|
|
|
|
|
<textarea id="blc-admin-description" rows="3"
|
|
|
|
|
|
style="width:100%; box-sizing:border-box; padding:8px 10px; border:1px solid #bbf7d0; border-radius:8px; font-size:12px; resize:vertical;">活动期间参与百家乐,赢得归个人,输掉的金币可在活动结束后领取补偿。</textarea>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div style="display:grid; grid-template-columns:1fr 1fr; gap:10px;">
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<label style="display:block; font-size:12px; color:#4b5563; margin-bottom:4px;">开始时间</label>
|
|
|
|
|
|
<input type="datetime-local" id="blc-admin-starts-at"
|
|
|
|
|
|
style="width:100%; box-sizing:border-box; padding:8px 10px; border:1px solid #bbf7d0; border-radius:8px; font-size:12px;">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<label style="display:block; font-size:12px; color:#4b5563; margin-bottom:4px;">结束时间</label>
|
|
|
|
|
|
<input type="datetime-local" id="blc-admin-ends-at"
|
|
|
|
|
|
style="width:100%; box-sizing:border-box; padding:8px 10px; border:1px solid #bbf7d0; border-radius:8px; font-size:12px;">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<label style="display:block; font-size:12px; color:#4b5563; margin-bottom:4px;">领取截止时间</label>
|
|
|
|
|
|
<input type="datetime-local" id="blc-admin-claim-deadline-at"
|
|
|
|
|
|
style="width:100%; box-sizing:border-box; padding:8px 10px; border:1px solid #bbf7d0; border-radius:8px; font-size:12px;">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div style="display:flex; gap:8px; justify-content:flex-end; margin-top:14px;">
|
2026-04-25 04:05:32 +08:00
|
|
|
|
<button type="button" data-blc-admin-close
|
2026-04-11 23:27:29 +08:00
|
|
|
|
style="padding:8px 16px; border:none; border-radius:8px; background:#dcfce7; color:#166534; font-size:12px; font-weight:bold; cursor:pointer;">
|
|
|
|
|
|
关闭
|
|
|
|
|
|
</button>
|
|
|
|
|
|
<button type="submit"
|
|
|
|
|
|
style="padding:8px 16px; border:none; border-radius:8px; background:#16a34a; color:#fff; font-size:12px; font-weight:bold; cursor:pointer;">
|
|
|
|
|
|
创建活动
|
|
|
|
|
|
</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</form>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
@endif
|