From 91597e6b2c051e5b515a18ff315c50b148ad62ff Mon Sep 17 00:00:00 2001 From: lkddi Date: Mon, 16 Mar 2026 15:43:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E5=BD=A9=E7=A5=A8/?= =?UTF-8?q?=E4=BA=94=E5=AD=90=E6=A3=8B=E5=B9=BF=E6=92=AD=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E4=B8=AD=E7=94=A8=E6=88=B7=E5=90=8D=E6=94=AF=E6=8C=81=E5=8D=95?= =?UTF-8?q?=E5=87=BB=E5=8F=8C=E5=87=BB=E4=BA=A4=E4=BA=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复彩票购买明细页「中奖等级」列始终显示「等待开奖」的问题 原因:判断条件误用了不存在的 'drawn' 状态,已改为 'settled' - 系统传音广播消息中的【用户名】现在支持单击(切换发言对象) 和双击(查看名片),与普通消息行为一致 - 新增 isGameLabel() 函数,通过游戏名前缀匹配 + 含空格检测, 防止【五子棋】【双色球 第N期 开奖】等标签被误识别为用户名 --- .../game-history/lottery-issue.blade.php | 2 +- .../views/chat/partials/scripts.blade.php | 23 +++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/resources/views/admin/game-history/lottery-issue.blade.php b/resources/views/admin/game-history/lottery-issue.blade.php index b79ab44..6471bbb 100644 --- a/resources/views/admin/game-history/lottery-issue.blade.php +++ b/resources/views/admin/game-history/lottery-issue.blade.php @@ -86,7 +86,7 @@ {{ $won ? '+' . number_format($ticket->payout) : '0' }} - @if ($issue->status === 'drawn') + @if ($issue->status === 'settled') @if ($won) diff --git a/resources/views/chat/partials/scripts.blade.php b/resources/views/chat/partials/scripts.blade.php index bebd795..bfc04e4 100644 --- a/resources/views/chat/partials/scripts.blade.php +++ b/resources/views/chat/partials/scripts.blade.php @@ -358,9 +358,19 @@ if (info.type === 'emotion') return `${fromHtml}${info.word}对${toHtml}${verb}:`; return `${fromHtml}${info.word}${toHtml},${verb}:`; }; - // 用户名(单击切换发言对象,双击查看资料;系统用户仅显示文本) + // 判断 【】 内的内容是否是游戏/活动标签而非真实用户名 + // 规则:命中已知游戏前缀,或内容含空格(如「双色球 第012期 开奖」) + const isGameLabel = (name) => { + const gamePrefixes = ['五子棋', '双色球', '钓鱼', '老虎机', '百家乐', '赛马']; + if (gamePrefixes.some(p => name.startsWith(p))) return true; + // 含空格 → 一定不是用户名(用户名不允许含空格) + if (name.includes(' ')) return true; + return false; + }; + + // 用户名(单击切换发言对象,双击查看资料;系统用户或游戏标签仅显示文本) const clickableUser = (uName, color) => { - if (systemUsers.includes(uName)) { + if (systemUsers.includes(uName) || isGameLabel(uName)) { return `${uName}`; } return `${uName}`; @@ -410,11 +420,16 @@ `
${parsedContent} (${timeStr})
`; timeStrOverride = true; } else if (msg.from_user === '系统传音') { - // 自动升级播报 / 赠礼通知:金色左边框,轻量提示样式,不喧宾夺主 + // 自动升级播报 / 赠礼通知 / 彩票购买广播:金色左边框,轻量提示样式,不喧宾夺主 + // 解析内容中 【用户名】 片段,使其支持单击(切换发言对象)和双击(查看名片) div.style.cssText = 'background: #fffbeb; border-left: 3px solid #d97706; border-radius: 4px; padding: 4px 10px; margin: 2px 0;'; + let sysTranContent = msg.content; + sysTranContent = sysTranContent.replace(/【([^】]+)】/g, function(match, uName) { + return '【' + clickableUser(uName, '#000099') + '】'; + }); html = - `🌟 ${msg.content}`; + `🌟 ${sysTranContent}`; } else if (msg.from_user === '系统' && msg.to_user && msg.to_user !== '大家') { // 系统私人通知(自动存点等):无头像,绿色左边框简洁条形样式 div.style.cssText =