| | |
| | | <link rel="stylesheet" href="../static/layui/css/layui.css" media="all"> |
| | | <link rel="stylesheet" href="../static/css/admin.css?v=318" media="all"> |
| | | <link rel="stylesheet" href="../static/css/loader.css" media="all"> |
| | | <!-- <link rel="stylesheet" href="../static/css/layx.min.css" type="text/css"/>--> |
| | | <!-- <script src="../static/js/tools/layx.min.js"></script>--> |
| | | <style> |
| | | .layui-logo img { |
| | | width: 25px; |
| | |
| | | font-weight: 400; |
| | | /*margin-left: 5px;*/ |
| | | } |
| | | |
| | | /* 弹窗样式 */ |
| | | .popup { |
| | | position: fixed; |
| | | top: 0; |
| | | left: 0; |
| | | width: 100%; |
| | | height: 100%; |
| | | background-color: rgba(0, 0, 0, 0.5); |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | z-index: 9999; |
| | | } |
| | | |
| | | .popup-content { |
| | | background-color: #fff; |
| | | padding: 20px; |
| | | border-radius: 5px; |
| | | box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.3); |
| | | text-align: center; |
| | | } |
| | | |
| | | button:hover { |
| | | background-color: #0069d9; |
| | | } |
| | | |
| | | /* AI助手抽屉动画 */ |
| | | @keyframes slideInRight { |
| | | from { transform: translate3d(100%, 0, 0); opacity: 0; } |
| | | to { transform: translate3d(0, 0, 0); opacity: 1; } |
| | | } |
| | | |
| | | @keyframes slideOutRight { |
| | | from { transform: translate3d(0, 0, 0); opacity: 1; } |
| | | to { transform: translate3d(100%, 0, 0); opacity: 0; } |
| | | } |
| | | |
| | | .ai-drawer-layer { |
| | | box-shadow: -8px 0 24px rgba(0, 0, 0, 0.15) !important; |
| | | border-radius: 8px 0 0 8px !important; |
| | | overflow: hidden; |
| | | animation: slideInRight 0.5s cubic-bezier(0.16, 1, 0.3, 1); |
| | | } |
| | | |
| | | .ai-drawer-layer-close { |
| | | animation: slideOutRight 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards !important; |
| | | } |
| | | </style> |
| | | </head> |
| | | <body class="layui-layout-body"> |
| | |
| | | <!-- 头部 --> |
| | | <div class="layui-header"> |
| | | <div class="layui-logo"> |
| | | <img src="../static/image/logo.png" style="display: inline-block; width: 40%;height: auto"> |
| | | <img src="../static/image/zy_logo_dark_color.png" style="display: inline-block; width: 40%;height: auto"> |
| | | <!-- <span style="margin-top: 0; letter-spacing: 10px">中扬立库</span>--> |
| | | <!-- <img src="../static/image/logo.svg"/>--> |
| | | <!-- <cite>中扬 - Zoneyung</cite>--> |
| | |
| | | </ul> |
| | | <ul class="layui-nav layui-layout-right"> |
| | | <li class="layui-nav-item" lay-unselect id="licenseShow" style="display: none;user-select: none;"> |
| | | <div style="color: red;">许可证有效期:<span id="licenseDays">29</span>天</div> |
| | | <div style="color: red;">临时许可证有效期:<span id="licenseDays">29</span>天</div> |
| | | </li> |
| | | <li class="layui-nav-item layui-hide-xs" lay-unselect> |
| | | <a ew-event="fullScreen" title="全屏"><i class="layui-icon layui-icon-screen-full"></i></a> |
| | |
| | | |
| | | </div> |
| | | |
| | | <!-- 右下角SVG动画 --> |
| | | <div id="ai-assistant-btn" style="position: fixed; bottom: 40px; right: 20px; z-index: 9999; cursor: pointer;"> |
| | | </div> |
| | | |
| | | <!--初始化加载层--> |
| | | <div class="layuimini-loader"> |
| | | <div class="layuimini-loader-inner"></div> |
| | | </div> |
| | | <!-- 弹窗内容 --> |
| | | <div class="popup" id="popup"> |
| | | <div class="popup-content"> |
| | | <h2 style="font-size: 28px;margin-bottom: 10px;">许可证即将过期</h2> |
| | | <div id="popup-text" style="font-size: 28px;color: red"></div> |
| | | <!-- <p style="font-size: 26px;margin-bottom: 20px;margin-top: 20px;color: blue">请联系立库公司商务续约!!!</p>--> |
| | | <button style="background-color: #007bff;color: #fff;border: none;padding: 10px 20px;border-radius: 5px;cursor: pointer;font-size: 16px;" |
| | | onclick="hidePopup()">关闭 |
| | | </button> |
| | | </div> |
| | | </div> |
| | | |
| | | <script> |
| | | // 显示弹窗 |
| | | function showPopup(res) { |
| | | document.getElementById('popup').style.display = 'block'; |
| | | // 获取弹出窗口内容的容器元素 |
| | | var popupText = document.getElementById('popup-text'); |
| | | // 假设后台返回的字符串为 responseString |
| | | if (res != "") { |
| | | var responseString = "许可证即将过期,剩余有效期:" + res + "天!"; |
| | | // 将字符串设置为弹窗内容的文本 |
| | | popupText.textContent = responseString; |
| | | //关闭设备 |
| | | // document.getElementById('popup').style.display = 'none'; |
| | | } else { |
| | | document.getElementById('popup').style.display = 'none'; |
| | | } |
| | | |
| | | } |
| | | |
| | | // 隐藏弹窗 |
| | | function hidePopup() { |
| | | document.getElementById('popup').style.display = 'none'; |
| | | } |
| | | </script> |
| | | |
| | | <script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script> |
| | | <script type="text/javascript" src="../static/layui/layui.js"></script> |
| | | <script type="text/javascript" src="../static/js/handlebars/handlebars-v4.5.3.js"></script> |
| | | <script type="text/javascript" src="../static/js/common.js"></script> |
| | | <script> |
| | | f() |
| | | |
| | | function f() { |
| | | $.ajax({ |
| | | url: baseUrl + "/license/getLicenseDays", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | method: 'POST', |
| | | success: function (res) { |
| | | if (res.code == 200) { |
| | | let days = res.data |
| | | if (days <= 30) { |
| | | showPopup(res.data) |
| | | } else { |
| | | showPopup(""); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | // setTimeout(function () { |
| | | // f() |
| | | // },3000); |
| | | } |
| | | </script> |
| | | <script> |
| | | console.log('%c 中扬立库平台 %c 1.0.0','background-color:rgb(53,73,94);color: #fff;border-radius:2px 0 0 2px;padding:2px 4px;','background-color:rgb(25,190,107);color: #fff;border-radius:0 2px 2px 0;padding:2px 4px;font: 9pt "Apercu Regular", Georgia, "Times New Roman", Times, serif;'); |
| | | $(function () { |
| | | if ("" === localStorage.getItem('token')) { |
| | | top.location.href = baseUrl + "/login"; |
| | | } |
| | | }); |
| | | |
| | | $(function () { |
| | | // 注入AI助手图标 |
| | | $('#ai-assistant-btn').html(getAiIconHtml(60, 60)); |
| | | |
| | | if ("" === localStorage.getItem('token')) { |
| | | top.location.href = baseUrl + "/login"; |
| | | } |
| | |
| | | var url = logout.getAttribute('href'); |
| | | logout.setAttribute('href', baseUrl + "/login"); |
| | | |
| | | // AI助手弹窗索引 |
| | | var aiLayerIndex = null; |
| | | |
| | | // AI助手图标悬浮提示 |
| | | $('#ai-assistant-btn').on('mouseenter', function(){ |
| | | this.index = layer.tips('AI助手', this, { |
| | | tips: [1, '#333'], // 上方显示,深色背景 |
| | | time: -1 // 不自动关闭 |
| | | }); |
| | | }).on('mouseleave', function(){ |
| | | layer.close(this.index); |
| | | }).on('click', function () { |
| | | // 如果已经打开过且未销毁,直接显示 |
| | | if (aiLayerIndex !== null && $('#layui-layer' + aiLayerIndex).length > 0) { |
| | | var $layero = $('#layui-layer' + aiLayerIndex); |
| | | var $shade = $('#layui-layer-shade' + aiLayerIndex); |
| | | |
| | | // 显示并重置状态 |
| | | $shade.show().css('opacity', 0.1); |
| | | $layero.show(); |
| | | |
| | | // 重新触发进入动画 |
| | | $layero.removeClass('ai-drawer-layer-close'); |
| | | $layero.removeClass('ai-drawer-layer'); |
| | | void $layero.get(0).offsetWidth; // 触发重绘 |
| | | $layero.addClass('ai-drawer-layer'); |
| | | return; |
| | | } |
| | | |
| | | layer.open({ |
| | | type: 2, |
| | | title: false, // 隐藏默认标题栏,更简洁 |
| | | closeBtn: 0, // 隐藏关闭按钮,点击遮罩关闭 |
| | | shadeClose: false, // 改为手动控制关闭,以便播放动画 |
| | | shade: 0.1, |
| | | area: ['600px', '100%'], |
| | | offset: 'r', // 右侧悬浮 |
| | | anim: -1, // 禁用默认动画,使用CSS动画 |
| | | isOutAnim: false, |
| | | skin: 'ai-drawer-layer', // 自定义皮肤 |
| | | content: 'ai/diagnosis.html', |
| | | success: function(layero, index){ |
| | | aiLayerIndex = index; // 记录索引 |
| | | |
| | | // 背景模糊效果 |
| | | var shadeId = layero.attr('id').replace('layui-layer', 'layui-layer-shade'); |
| | | var $shade = $('#' + shadeId); |
| | | $shade.css({ |
| | | 'backdrop-filter': 'blur(3px)', |
| | | 'transition': 'opacity 0.8s' |
| | | }); |
| | | |
| | | // 点击遮罩关闭(带动画) |
| | | $shade.on('click', function() { |
| | | layero.addClass('ai-drawer-layer-close'); |
| | | $shade.css('opacity', 0); |
| | | setTimeout(function(){ |
| | | // layer.close(index); // 不销毁,改为隐藏 |
| | | layero.hide(); |
| | | $shade.hide(); |
| | | }, 400); |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | }); |
| | | </script> |
| | | <script type="text/html" id="menuTpl"> |