feat: 增加发送微信群内自定义公告功能,并优化离线防抖与自我播报过滤机制
- 后台微信机器人增加群内独立公告的分发推送模块 - 聊天室系统引入3秒离线延迟(防抖)防重复播报 - 优化聊天界面消息拉取过滤自身的欢迎或离场广播 - 管理员登录时的烟花特效同步至用户当前的前端显示
This commit is contained in:
@@ -137,4 +137,37 @@
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 发送群内公告/消息 独立模块 -->
|
||||
<div class="bg-white rounded-xl shadow-sm border border-gray-100 overflow-hidden mt-6">
|
||||
<div class="p-6 border-b border-gray-100 flex justify-between items-center bg-gray-50">
|
||||
<div>
|
||||
<h2 class="text-lg font-bold text-gray-800">发送群内公告 (即时通知)</h2>
|
||||
<p class="text-xs text-gray-500 mt-1">发出的内容将通过微信机器人直接推送到上方配置的目标微信群。</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="p-6">
|
||||
@if($errors->has('announcement_content'))
|
||||
<div class="mb-4 p-3 bg-red-50 border border-red-200 rounded-lg text-red-700 text-sm">
|
||||
❌ {{ $errors->first('announcement_content') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<form action="{{ route('admin.wechat_bot.send_announcement') }}" method="POST">
|
||||
@csrf
|
||||
<div class="mb-4">
|
||||
<label class="block text-sm font-bold text-gray-700 mb-2">公告内容</label>
|
||||
<textarea name="announcement_content" rows="4" class="w-full border-gray-300 rounded-md shadow-sm p-3 bg-gray-50 border focus:ring-indigo-500 focus:border-indigo-500" placeholder="请输入要发送到微信群内的公告/通知内容...">{{ old('announcement_content') }}</textarea>
|
||||
</div>
|
||||
|
||||
<div class="flex">
|
||||
<button type="submit" class="px-6 py-2 bg-indigo-600 text-white rounded-md font-bold hover:bg-indigo-700 shadow-sm transition flex items-center">
|
||||
<svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 19l9 2-9-18-9 18 9-2zm0 0v-8"></path></svg>
|
||||
立即发送公告
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -722,12 +722,7 @@
|
||||
|
||||
renderUserList();
|
||||
|
||||
// 管理员自己进房时,在本地播放烟花(服务端广播可能在 WS 连上前已发出)
|
||||
const ctx = window.chatContext;
|
||||
if (ctx && ctx.userLevel >= ctx.superLevel && typeof EffectManager !== 'undefined') {
|
||||
// 延迟 800ms 确保页面渲染完成再播特效
|
||||
setTimeout(() => EffectManager.play('fireworks'), 800);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
// 监听机器人动态开关
|
||||
|
||||
Reference in New Issue
Block a user