From a2eb2511f620956dbb5d36742f1d0ffda034f090 Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期四, 15 一月 2026 16:07:28 +0800
Subject: [PATCH] #
---
src/main/webapp/views/index.html | 298 ++++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 192 insertions(+), 106 deletions(-)
diff --git a/src/main/webapp/views/index.html b/src/main/webapp/views/index.html
index 86a8ab5..f970799 100644
--- a/src/main/webapp/views/index.html
+++ b/src/main/webapp/views/index.html
@@ -1,11 +1,13 @@
<!DOCTYPE html>
<html lang="en">
+
<head>
<meta charset="utf-8">
<title>娴欐睙涓壃 - 鑷姩鍖栫珛浣撲粨搴� - WCS</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
- <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+ <meta name="viewport"
+ content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<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">
@@ -13,6 +15,7 @@
.layui-logo img {
width: 25px;
}
+
.layui-logo cite {
font-size: 18px;
font-weight: 400;
@@ -21,35 +24,49 @@
/* 寮圭獥鏍峰紡 */
.popup {
- position: fixed;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- background-color: rgba(0,0,0,0.5);
- display: none;
- justify-content: center;
- align-items: center;
- z-index: 9999;
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background-color: rgba(0, 0, 0, 0.5);
+ display: none;
+ 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;
+ background-color: #fff;
+ padding: 20px;
+ border-radius: 5px;
+ box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.3);
+ text-align: center;
}
/* AI鍔╂墜鎶藉眽鍔ㄧ敾 */
@keyframes slideInRight {
- from { transform: translate3d(100%, 0, 0); opacity: 0; }
- to { transform: translate3d(0, 0, 0); opacity: 1; }
+ 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; }
+ from {
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+
+ to {
+ transform: translate3d(100%, 0, 0);
+ opacity: 0;
+ }
}
.ai-drawer-layer {
@@ -64,6 +81,7 @@
}
</style>
</head>
+
<body class="layui-layout-body">
<div class="layui-layout layui-layout-admin">
<!-- 澶撮儴 -->
@@ -84,10 +102,11 @@
</li>
</ul>
<ul class="layui-nav layui-layout-right">
-<!-- <li class="layui-nav-item" lay-unselect>-->
-<!-- <a ew-event="note" title="渚跨"><i class="layui-icon layui-icon-note"></i></a>-->
-<!-- </li>-->
- <li class="layui-nav-item" lay-unselect id="fakeShow" style="display: none;user-select: none;margin-right: 10px;">
+ <!-- <li class="layui-nav-item" lay-unselect>-->
+ <!-- <a ew-event="note" title="渚跨"><i class="layui-icon layui-icon-note"></i></a>-->
+ <!-- </li>-->
+ <li class="layui-nav-item" lay-unselect id="fakeShow"
+ style="display: none;user-select: none;margin-right: 10px;">
<div style="color: red;" id="fakeShowText">浠跨湡妯℃嫙杩愯涓�</div>
</li>
<li class="layui-nav-item" lay-unselect id="licenseShow" style="display: none;user-select: none;">
@@ -125,7 +144,7 @@
<!-- 搴曢儴 -->
<div class="layui-footer layui-text">
copyright 漏 2026 娴欐睙涓壃绔嬪簱鎶�鏈湁闄愬叕鍙� all rights reserved.
- <span class="pull-right">Version 1.0.0</span>
+ <span class="pull-right" id="system-version">Version loading...</span>
</div>
</div>
@@ -137,11 +156,13 @@
<!-- 寮圭獥鍐呭 -->
<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>
- <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 class="popup-content">
+ <h2 style="font-size: 28px;margin-bottom: 10px;">璁稿彲璇佸嵆灏嗚繃鏈�</h2>
+ <div id="popup-text" style="font-size: 28px;color: red"></div>
+ <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>
<!-- 鍙充笅瑙扴VG鍔ㄧ敾 -->
@@ -153,7 +174,33 @@
<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>
- 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;');
+ // 鐗堟湰淇℃伅鍙橀噺
+ var systemVersion = '...';
+ var systemVersionType = '';
+
+ // 鍔犺浇绯荤粺鐗堟湰淇℃伅
+ function loadSystemVersion() {
+ $.ajax({
+ url: baseUrl + "/openapi/getSystemVersion",
+ headers: { 'token': localStorage.getItem('token') },
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200) {
+ systemVersion = res.data.version;
+ systemVersionType = res.data.versionType;
+ var versionTypeLabel = systemVersionType === 'stable' ? '' : ' (' + systemVersionType + ')';
+ var versionTypeColor = systemVersionType === 'stable' ? 'rgb(25,190,107)' : 'rgb(245,166,35)';
+
+ // 鏇存柊椤佃剼鐗堟湰鏄剧ず
+ $('#system-version').html('Version ' + systemVersion + '<span style="margin-left:5px;padding:1px 6px;font-size:12px;border-radius:3px;background-color:' + versionTypeColor + ';color:#fff;">' + systemVersionType + '</span>');
+
+ // 鎺у埗鍙拌緭鍑虹増鏈俊鎭�
+ console.log('%c 涓壃绔嬪簱骞冲彴 %c ' + systemVersion + ' %c ' + systemVersionType + ' ', '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;padding:2px 4px;font: 9pt "Apercu Regular", Georgia, "Times New Roman", Times, serif;', 'background-color:' + versionTypeColor + ';color: #fff;border-radius:0 2px 2px 0;padding:2px 4px;font: 9pt "Apercu Regular", Georgia, "Times New Roman", Times, serif;');
+ }
+ }
+ });
+ }
+
$(function () {
// 娉ㄥ叆AI鍔╂墜鍥炬爣
$('#ai-assistant-btn').html(getAiIconHtml(60, 60));
@@ -161,30 +208,33 @@
if ("" === localStorage.getItem('token')) {
top.location.href = baseUrl + "/login";
}
+
+ // 鍔犺浇鐗堟湰淇℃伅
+ loadSystemVersion();
});
// 鏄剧ず寮圭獥
function showPopup(res) {
- document.getElementById('popup').style.display = 'block';
- // 鑾峰彇寮瑰嚭绐楀彛鍐呭鐨勫鍣ㄥ厓绱�
- var popupText = document.getElementById('popup-text');
- // 鍋囪鍚庡彴杩斿洖鐨勫瓧绗︿覆涓� responseString
- if (res!==""){
- // 鑾峰彇褰撳墠鏃ユ湡
- const currentDate = new Date();
- // 鍒涘缓鏂版棩鏈熷璞″苟娣诲姞澶╂暟
- const newDate = new Date();
- newDate.setDate(currentDate.getDate() + res + 1);
- // 灏嗗瓧绗︿覆璁剧疆涓哄脊绐楀唴瀹圭殑鏂囨湰
- popupText.textContent = "璁稿彲璇佸皢浜�" + new Intl.DateTimeFormat('zh-CN').format(newDate) + "杩囨湡锛屽墿浣欐湁鏁堟湡:" + res + "澶╋紒";
- }else {
- document.getElementById('popup').style.display = 'none';
- }
+ document.getElementById('popup').style.display = 'block';
+ // 鑾峰彇寮瑰嚭绐楀彛鍐呭鐨勫鍣ㄥ厓绱�
+ var popupText = document.getElementById('popup-text');
+ // 鍋囪鍚庡彴杩斿洖鐨勫瓧绗︿覆涓� responseString
+ if (res !== "") {
+ // 鑾峰彇褰撳墠鏃ユ湡
+ const currentDate = new Date();
+ // 鍒涘缓鏂版棩鏈熷璞″苟娣诲姞澶╂暟
+ const newDate = new Date();
+ newDate.setDate(currentDate.getDate() + res + 1);
+ // 灏嗗瓧绗︿覆璁剧疆涓哄脊绐楀唴瀹圭殑鏂囨湰
+ popupText.textContent = "璁稿彲璇佸皢浜�" + new Intl.DateTimeFormat('zh-CN').format(newDate) + "杩囨湡锛屽墿浣欐湁鏁堟湡:" + res + "澶╋紒";
+ } else {
+ document.getElementById('popup').style.display = 'none';
+ }
}
// 闅愯棌寮圭獥
function hidePopup() {
- document.getElementById('popup').style.display = 'none';
+ document.getElementById('popup').style.display = 'none';
}
layui.config({
@@ -208,14 +258,15 @@
}
let fakeRunning = false
- setInterval(function () {
+ let fakeStatusInterval = null
+ function checkFakeStatus() {
$.ajax({
url: baseUrl + "/openapi/getFakeSystemRunStatus",
- headers: {'token': localStorage.getItem('token')},
+ headers: { 'token': localStorage.getItem('token') },
method: 'GET',
success: function (res) {
if (res.code === 200) {
- if(res.data.isFake) {
+ if (res.data.isFake) {
$("#fakeShow").show()
let running = res.data.running
if (running) {
@@ -224,15 +275,23 @@
$("#fakeShowText").text("浠跨湡妯℃嫙鏈繍琛�")
}
fakeRunning = running
- }else {
+ if (!fakeStatusInterval) {
+ fakeStatusInterval = setInterval(checkFakeStatus, 1000);
+ }
+ } else {
$("#fakeShow").hide()
+ if (fakeStatusInterval) {
+ clearInterval(fakeStatusInterval);
+ fakeStatusInterval = null;
+ }
}
- }else {
+ } else {
top.location.href = baseUrl + "/login";
}
}
});
- }, 1000);
+ }
+ checkFakeStatus();
$("#fakeShow").on("click", function () {
if (fakeRunning) {
@@ -240,14 +299,14 @@
layer.close(index);
$.ajax({
url: baseUrl + "/openapi/stopFakeSystem",
- headers: {'token': localStorage.getItem('token')},
+ headers: { 'token': localStorage.getItem('token') },
method: 'POST',
success: function (res) {
if (res.code === 200) {
- layer.msg("浠跨湡妯℃嫙宸插仠姝�", {icon: 1});
+ layer.msg("浠跨湡妯℃嫙宸插仠姝�", { icon: 1 });
$("#fakeShowText").text("浠跨湡妯℃嫙鏈繍琛�")
} else {
- layer.msg(res.msg, {icon: 2});
+ layer.msg(res.msg, { icon: 2 });
}
}
});
@@ -257,14 +316,14 @@
layer.close(index);
$.ajax({
url: baseUrl + "/openapi/startFakeSystem",
- headers: {'token': localStorage.getItem('token')},
+ headers: { 'token': localStorage.getItem('token') },
method: 'POST',
success: function (res) {
if (res.code === 200) {
- layer.msg("浠跨湡妯℃嫙宸插惎鍔�", {icon: 1});
+ layer.msg("浠跨湡妯℃嫙宸插惎鍔�", { icon: 1 });
$("#fakeShowText").text("浠跨湡妯℃嫙杩愯涓�")
} else {
- layer.msg(res.msg, {icon: 2});
+ layer.msg(res.msg, { icon: 2 });
}
}
});
@@ -274,7 +333,7 @@
$.ajax({
url: baseUrl + "/menu/auth",
- headers: {'token': localStorage.getItem('token')},
+ headers: { 'token': localStorage.getItem('token') },
method: 'POST',
// async: false,
success: function (res) {
@@ -289,14 +348,14 @@
} else if (res.code === 403) {
top.location.href = baseUrl + "/login";
} else {
- layer.msg(res.msg, {icon: 2});
+ layer.msg(res.msg, { icon: 2 });
}
}
});
$.ajax({
url: baseUrl + "/license/getLicenseDays",
- headers: {'token': localStorage.getItem('token')},
+ headers: { 'token': localStorage.getItem('token') },
method: 'POST',
success: function (res) {
if (res.code == 200) {
@@ -307,9 +366,13 @@
}
if (days <= 15) {
- showPopup(days)
+ showPopup(days)
}
- }else {
+
+ if (days < 0) {
+ top.location.href = baseUrl + "/login";
+ }
+ } else {
top.location.href = baseUrl + "/login";
}
}
@@ -317,13 +380,13 @@
// 榛樿鍔犺浇涓婚〉
index.loadHome({
- menuPath: baseUrl+'/views/watch/console.html',
+ menuPath: baseUrl + '/views/watch/console.html',
menuName: '<i class="layui-icon layui-icon-home"></i>'
});
$('#username').text(localStorage.getItem('username'));
- $(document).on('click','#logout', function () {
+ $(document).on('click', '#logout', function () {
window.location.href = "login.html";
localStorage.removeItem('token');
localStorage.removeItem('username');
@@ -335,46 +398,70 @@
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);
+ $('#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 () {
- layer.open({
- type: 2,
- title: false, // 闅愯棌榛樿鏍囬鏍忥紝鏇寸畝娲�
- closeBtn: 0, // 闅愯棌鍏抽棴鎸夐挳锛岀偣鍑婚伄缃╁叧闂�
- shadeClose: false, // 鏀逛负鎵嬪姩鎺у埗鍏抽棴锛屼互渚挎挱鏀惧姩鐢�
- shade: 0.1,
- area: ['600px', '100%'],
- offset: 'r', // 鍙充晶鎮诞
- anim: -1, // 绂佺敤榛樿鍔ㄧ敾锛屼娇鐢–SS鍔ㄧ敾
- isOutAnim: false,
- skin: 'ai-drawer-layer', // 鑷畾涔夌毊鑲�
- content: 'ai/diagnosis.html',
- success: function(layero, 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);
- }, 400);
- });
- }
- });
+ // 濡傛灉宸茬粡鎵撳紑杩囦笖鏈攢姣侊紝鐩存帴鏄剧ず
+ 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, // 绂佺敤榛樿鍔ㄧ敾锛屼娇鐢–SS鍔ㄧ敾
+ 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);
+ });
+ }
+ });
});
});
@@ -392,6 +479,5 @@
{{/each}}
</script>
</body>
-</html>
-
+</html>
\ No newline at end of file
--
Gitblit v1.9.1