优化管理操作按钮

This commit is contained in:
2026-04-12 16:54:25 +08:00
parent 70cb170f2c
commit 1e64d2d5e2
2 changed files with 103 additions and 66 deletions
@@ -101,14 +101,6 @@ $welcomeMessages = [
</div>
</div>
@if (
$user->user_level >= (int) \App\Models\Sysparam::getValue('level_announcement', '10') ||
$room->master == $user->username
)
<button type="button" onclick="promptAnnouncement()"
style="font-size: 11px; padding: 1px 6px; background: #4a9; color: #fff; border: none; border-radius: 2px; cursor: pointer;">设公告</button>
@endif
<button type="button" id="fishing-btn" onclick="startFishing()"
style="font-size: 11px; padding: 1px 6px; background: #2563eb; color: #fff; border: none; border-radius: 2px; cursor: pointer;">🎣
钓鱼</button>
@@ -120,54 +112,66 @@ $welcomeMessages = [
📷 图片
</button>
@if ($user->user_level >= (int) \App\Models\Sysparam::getValue('superlevel', '100'))
<button type="button" onclick="promptAnnounceMessage()"
style="font-size: 11px; padding: 1px 6px; background: #7c3aed; color: #fff; border: none; border-radius: 2px; cursor: pointer;">📢
公屏</button>
<button type="button" onclick="adminClearScreen()"
style="font-size: 11px; padding: 1px 6px; background: #dc2626; color: #fff; border: none; border-radius: 2px; cursor: pointer;">🧹
清屏</button>
<button type="button" id="red-packet-btn" onclick="sendRedPacket()"
style="font-size: 11px; padding: 1px 6px; background: linear-gradient(135deg, #dc2626, #d97706); color: #fff; border: none; border-radius: 2px; cursor: pointer; font-weight: bold;">🧧
礼包</button>
<button type="button" onclick="openAdminBaccaratLossCoverModal()"
style="font-size: 11px; padding: 1px 6px; background: linear-gradient(135deg, #15803d, #22c55e); color: #fff; border: none; border-radius: 2px; cursor: pointer; font-weight: bold;">🎁
买单活动</button>
{{-- 全屏特效整合按钮(仅管理员可见) --}}
<div style="position:relative;display:inline-block;" id="effect-btn-wrap">
<button type="button" onclick="toggleEffectMenu(event)"
style="font-size:11px;padding:1px 6px;background:linear-gradient(135deg,#7c3aed,#2563eb);color:#fff;border:none;border-radius:2px;cursor:pointer;font-weight:bold;">
特效
@if (
$user->user_level >= (int) \App\Models\Sysparam::getValue('level_announcement', '10') ||
$room->master == $user->username ||
$user->user_level >= (int) \App\Models\Sysparam::getValue('superlevel', '100')
)
<div style="position:relative;display:inline-block;" id="admin-btn-wrap">
<button type="button" onclick="toggleAdminMenu(event)"
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;">
🛠 管理
</button>
<div id="effect-menu"
style="display:none;position:absolute;bottom:calc(100% + 6px);left:0;z-index:10020;min-width:228px;max-width:min(76vw,260px);max-height:min(58vh,420px);overflow-y:auto;padding:10px;background:#fff7ed;border:1px solid #fdba74;border-radius:10px;box-shadow:0 10px 24px rgba(15,23,42,.18);">
<div style="font-size:11px;font-weight:bold;color:#9a3412;padding:0 2px 8px;">选择要播放的特效</div>
<div style="font-size:10px;color:#c2410c;padding:0 2px 6px;">经典特效</div>
<div style="display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;">
<button type="button" onclick="selectEffect('fireworks')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#ea580c;border:1px solid #fdba74;border-radius:6px;cursor:pointer;">🎆 烟花</button>
<button type="button" onclick="selectEffect('rain')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#2563eb;border:1px solid #93c5fd;border-radius:6px;cursor:pointer;">🌧️ 下雨</button>
<button type="button" onclick="selectEffect('lightning')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#7c3aed;border:1px solid #c4b5fd;border-radius:6px;cursor:pointer;"> 雷电</button>
<button type="button" onclick="selectEffect('snow')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#0891b2;border:1px solid #bae6fd;border-radius:6px;cursor:pointer;">❄️ 下雪</button>
</div>
<div style="font-size:10px;color:#c2410c;padding:10px 2px 6px;">新增氛围特效</div>
<div style="display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;">
<button type="button" onclick="selectEffect('sakura')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#db2777;border:1px solid #f9a8d4;border-radius:6px;cursor:pointer;">🌸 樱花飘落</button>
<button type="button" onclick="selectEffect('meteors')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#2563eb;border:1px solid #bfdbfe;border-radius:6px;cursor:pointer;">🌠 流星</button>
<button type="button" onclick="selectEffect('gold-rain')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#ca8a04;border:1px solid #fde68a;border-radius:6px;cursor:pointer;">🪙 金币雨</button>
<button type="button" onclick="selectEffect('hearts')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#e11d48;border:1px solid #fda4af;border-radius:6px;cursor:pointer;">💖 爱心飘落</button>
<button type="button" onclick="selectEffect('confetti')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#7c3aed;border:1px solid #ddd6fe;border-radius:6px;cursor:pointer;">🎊 彩带庆典</button>
<button type="button" onclick="selectEffect('fireflies')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#15803d;border:1px solid #bbf7d0;border-radius:6px;cursor:pointer;"> 萤火虫</button>
</div>
<div id="admin-menu"
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);">
@if (
$user->user_level >= (int) \App\Models\Sysparam::getValue('level_announcement', '10') ||
$room->master == $user->username
)
<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;">
<button type="button" onclick="runAdminAction('announcement')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#047857;border:1px solid #86efac;border-radius:6px;cursor:pointer;">🪧 设公告</button>
</div>
@endif
@if ($user->user_level >= (int) \App\Models\Sysparam::getValue('superlevel', '100'))
<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;">
<button type="button" onclick="runAdminAction('announce-message')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#7c3aed;border:1px solid #c4b5fd;border-radius:6px;cursor:pointer;">📢 公屏</button>
<button type="button" onclick="runAdminAction('admin-clear')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#dc2626;border:1px solid #fca5a5;border-radius:6px;cursor:pointer;">🧹 清屏</button>
<button type="button" onclick="runAdminAction('red-packet')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#b91c1c;border:1px solid #fdba74;border-radius:6px;cursor:pointer;">🧧 礼包</button>
<button type="button" onclick="runAdminAction('loss-cover')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#15803d;border:1px solid #86efac;border-radius:6px;cursor:pointer;">🎁 买单活动</button>
</div>
<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;">
<button type="button" onclick="selectEffect('fireworks')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#ea580c;border:1px solid #fdba74;border-radius:6px;cursor:pointer;">🎆 烟花</button>
<button type="button" onclick="selectEffect('rain')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#2563eb;border:1px solid #93c5fd;border-radius:6px;cursor:pointer;">🌧️ 下雨</button>
<button type="button" onclick="selectEffect('lightning')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#7c3aed;border:1px solid #c4b5fd;border-radius:6px;cursor:pointer;"> 雷电</button>
<button type="button" onclick="selectEffect('snow')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#0891b2;border:1px solid #bae6fd;border-radius:6px;cursor:pointer;">❄️ 下雪</button>
<button type="button" onclick="selectEffect('sakura')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#db2777;border:1px solid #f9a8d4;border-radius:6px;cursor:pointer;">🌸 樱花飘落</button>
<button type="button" onclick="selectEffect('meteors')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#2563eb;border:1px solid #bfdbfe;border-radius:6px;cursor:pointer;">🌠 流星</button>
<button type="button" onclick="selectEffect('gold-rain')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#ca8a04;border:1px solid #fde68a;border-radius:6px;cursor:pointer;">🪙 金币雨</button>
<button type="button" onclick="selectEffect('hearts')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#e11d48;border:1px solid #fda4af;border-radius:6px;cursor:pointer;">💖 爱心飘落</button>
<button type="button" onclick="selectEffect('confetti')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#7c3aed;border:1px solid #ddd6fe;border-radius:6px;cursor:pointer;">🎊 彩带庆典</button>
<button type="button" onclick="selectEffect('fireflies')"
style="font-size:11px;padding:6px 8px;background:#fff;color:#15803d;border:1px solid #bbf7d0;border-radius:6px;cursor:pointer;"> 萤火虫</button>
</div>
@endif
</div>
</div>
@endif
+44 -11
View File
@@ -315,22 +315,22 @@
function toggleWelcomeMenu(event) {
event.stopPropagation();
const menu = document.getElementById('welcome-menu');
const effectMenu = document.getElementById('effect-menu');
const adminMenu = document.getElementById('admin-menu');
if (!menu) {
return;
}
if (effectMenu) {
effectMenu.style.display = 'none';
if (adminMenu) {
adminMenu.style.display = 'none';
}
menu.style.display = menu.style.display === 'none' ? 'block' : 'none';
}
/**
* 切换顶部特效菜单的显示状态。
* 切换顶部管理菜单的显示状态。
*/
function toggleEffectMenu(event) {
function toggleAdminMenu(event) {
event.stopPropagation();
const menu = document.getElementById('effect-menu');
const menu = document.getElementById('admin-menu');
const welcomeMenu = document.getElementById('welcome-menu');
if (!menu) {
return;
@@ -341,13 +341,45 @@
menu.style.display = menu.style.display === 'none' ? 'block' : 'none';
}
/**
* 执行管理菜单中的快捷操作,并在执行前关闭菜单。
*
* @param {string} action 管理动作类型
*/
function runAdminAction(action) {
const menu = document.getElementById('admin-menu');
if (menu) {
menu.style.display = 'none';
}
switch (action) {
case 'announcement':
promptAnnouncement();
break;
case 'announce-message':
promptAnnounceMessage();
break;
case 'admin-clear':
adminClearScreen();
break;
case 'red-packet':
sendRedPacket();
break;
case 'loss-cover':
openAdminBaccaratLossCoverModal();
break;
default:
break;
}
}
/**
* 选择特效后关闭菜单,并沿用原有管理员特效触发逻辑。
*
* @param {string} type 特效类型
*/
function selectEffect(type) {
const menu = document.getElementById('effect-menu');
const menu = document.getElementById('admin-menu');
if (menu) {
menu.style.display = 'none';
}
@@ -402,9 +434,9 @@
menu.style.display = 'none';
}
const effectMenu = document.getElementById('effect-menu');
if (effectMenu) {
effectMenu.style.display = 'none';
const adminMenu = document.getElementById('admin-menu');
if (adminMenu) {
adminMenu.style.display = 'none';
}
});
@@ -1313,7 +1345,8 @@
if (data.status !== 'success') window.chatDialog.alert(data.message, '操作失败', '#cc4444');
}).catch(err => console.error('特效触发失败:', err));
}
window.toggleEffectMenu = toggleEffectMenu;
window.toggleAdminMenu = toggleAdminMenu;
window.runAdminAction = runAdminAction;
window.selectEffect = selectEffect;
window.triggerEffect = triggerEffect;