From 0a9480d6e6ee174c61827a2eecf6344d6cb725e3 Mon Sep 17 00:00:00 2001 From: cb <275647614@qq.com> Date: Wed, 24 Sep 2025 15:25:03 +0800 Subject: [PATCH] no message --- .../templates/customer/service/index.html | 13 ++ .../src/main/resources/templates/index.html | 142 ++++++++++++++++++ 2 files changed, 155 insertions(+) diff --git a/ruoyi-admin/src/main/resources/templates/customer/service/index.html b/ruoyi-admin/src/main/resources/templates/customer/service/index.html index f0d10d16..fad2669e 100644 --- a/ruoyi-admin/src/main/resources/templates/customer/service/index.html +++ b/ruoyi-admin/src/main/resources/templates/customer/service/index.html @@ -562,6 +562,19 @@ loadManualRequests(); // 添加闪烁动画效果 triggerManualRequestBlink(); + + // 触发父页面的菜单闪烁功能 + try { + if (parent && parent.startMenuBlink && typeof parent.startMenuBlink === 'function') { + parent.startMenuBlink('客服系统', 5000); + console.log('[DEBUG] 已触发父页面客服系统菜单闪烁'); + } else { + console.log('[DEBUG] 父页面菜单闪烁功能不可用'); + } + } catch (e) { + console.error('[ERROR] 调用父页面菜单闪烁功能失败:', e); + } + // 显示通知 console.log('[DEBUG] 显示转人工请求通知...'); if (typeof $.modal !== 'undefined') { diff --git a/ruoyi-admin/src/main/resources/templates/index.html b/ruoyi-admin/src/main/resources/templates/index.html index ae3309a9..96d0d78a 100644 --- a/ruoyi-admin/src/main/resources/templates/index.html +++ b/ruoyi-admin/src/main/resources/templates/index.html @@ -15,6 +15,37 @@ +
@@ -272,6 +303,117 @@ var ctx = [[@{/}]]; var lockscreen = [[${session.lockscreen}]]; if(lockscreen){window.top.location=ctx+"lockscreen";} + + // 菜单闪烁控制变量 + var blinkTimer = null; + var blinkingMenus = new Set(); + + /** + * 开始菜单闪烁 + * @param {string} menuText - 菜单文本内容 + * @param {number} duration - 闪烁持续时间(毫秒),默认5000ms + */ + function startMenuBlink(menuText, duration) { + duration = duration || 5000; + + // 查找包含指定文本的菜单项 + var menuItems = $('.nav-second-level a, .nav-third-level a, .nav li > a').filter(function() { + return $(this).text().trim() === menuText; + }); + + if (menuItems.length > 0) { + menuItems.each(function() { + var $menu = $(this); + $menu.addClass('menu-blink'); + blinkingMenus.add($menu[0]); + + // 添加点击事件监听,点击后停止闪烁 + $menu.off('click.blink').on('click.blink', function() { + stopMenuBlink(menuText); + }); + }); + + // 设置自动停止闪烁的定时器 + setTimeout(function() { + stopMenuBlink(menuText); + }, duration); + + console.log('菜单 "' + menuText + '" 开始闪烁,持续 ' + duration + 'ms'); + } else { + console.warn('未找到菜单: ' + menuText); + } + } + + /** + * 停止菜单闪烁 + * @param {string} menuText - 菜单文本内容 + */ + function stopMenuBlink(menuText) { + var menuItems = $('.nav-second-level a, .nav-third-level a, .nav li > a').filter(function() { + return $(this).text().trim() === menuText; + }); + + menuItems.each(function() { + var $menu = $(this); + $menu.removeClass('menu-blink').addClass('menu-blink-stop'); + blinkingMenus.delete($menu[0]); + + // 移除点击事件监听 + $menu.off('click.blink'); + + // 延迟移除停止样式类 + setTimeout(function() { + $menu.removeClass('menu-blink-stop'); + }, 300); + }); + + console.log('菜单 "' + menuText + '" 停止闪烁'); + } + + /** + * 停止所有菜单闪烁 + */ + function stopAllMenuBlink() { + $('.menu-blink').each(function() { + var $menu = $(this); + var menuText = $menu.text().trim(); + stopMenuBlink(menuText); + }); + } + + /** + * WebSocket消息监听(示例) + * 当收到APP消息时触发菜单闪烁 + */ + function initWebSocketForMenuBlink() { + // 这里是WebSocket连接的示例代码 + // 实际使用时需要根据项目的WebSocket实现进行调整 + /* + var ws = new WebSocket('ws://localhost:8080/websocket'); + + ws.onmessage = function(event) { + try { + var message = JSON.parse(event.data); + // 如果是APP消息通知 + if (message.type === 'app_message' || message.type === 'new_message') { + // 触发消息管理菜单闪烁 + startMenuBlink('消息管理', 5000); + } + } catch (e) { + console.error('解析WebSocket消息失败:', e); + } + }; + + ws.onerror = function(error) { + console.error('WebSocket连接错误:', error); + }; + */ + } + + // 全局暴露函数,方便外部调用 + window.startMenuBlink = startMenuBlink; + window.stopMenuBlink = stopMenuBlink; + window.stopAllMenuBlink = stopAllMenuBlink; // 皮肤缓存 var skin = storage.get("skin"); // history(表示去掉地址的#)否则地址以"#"形式展示