From 0f7621c51507ee1e927b10dba7c9c62c0e524a74 Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期五, 12 十二月 2025 10:18:31 +0800
Subject: [PATCH] #AI

---
 src/main/webapp/views/index.html |  133 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 133 insertions(+), 0 deletions(-)

diff --git a/src/main/webapp/views/index.html b/src/main/webapp/views/index.html
index 18f5f86..e9ea1c7 100644
--- a/src/main/webapp/views/index.html
+++ b/src/main/webapp/views/index.html
@@ -40,6 +40,28 @@
         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; }
+    }
+
+    @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">
@@ -120,6 +142,75 @@
         <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鍔ㄧ敾 -->
+<div id="ai-assistant-btn" style="position: fixed; bottom: 40px; right: 20px; z-index: 9999; cursor: pointer;">
+ <svg 
+     width="48" 
+     height="48" 
+     viewBox="0 0 64 64" 
+     xmlns="http://www.w3.org/2000/svg"> 
+  
+   <!-- 閫忔槑鑳屾櫙锛氫笉鐢讳换浣曞簳鑹插嵆鍙� --> 
+  
+   <!-- 涓�鐐规煍鍜屽彂鍏夋晥鏋� --> 
+   <defs> 
+     <filter id="glow" x="-50%" y="-50%" width="200%" height="200%"> 
+       <feGaussianBlur stdDeviation="2.5" result="blur"/> 
+       <feMerge> 
+         <feMergeNode in="blur"/> 
+         <feMergeNode in="SourceGraphic"/> 
+       </feMerge> 
+     </filter> 
+      
+     <style> 
+       /* 鏁翠釜鍥炬爣鏃嬭浆鍔ㄧ敾 */ 
+       .spinner { 
+         animation: spin 2.8s linear infinite; 
+         transform-origin: 50% 50%; 
+       } 
+  
+       @keyframes spin { 
+         from { transform: rotate(0deg); } 
+         to   { transform: rotate(360deg); } 
+       } 
+     </style> 
+   </defs> 
+  
+   <!-- 鏃嬭浆缁� --> 
+   <g class="spinner" filter="url(#glow)"> 
+     <!-- 姣忎竴鏉″僵鑹层�屽皬寮潯銆� --> 
+     <!-- 鍙互閫氳繃璋冩暣 rx/ry銆亀idth/height 鏉ユ敼绮楃粏鍜屽集搴� --> 
+     <!-- 1. 绱壊 --> 
+     <rect x="30" y="10" width="6" height="14" rx="3" ry="3" fill="#8b5cf6" /> 
+  
+     <!-- 2. 绮夎壊锛堥『鏃堕拡鏃嬭浆60掳锛� --> 
+     <g transform="rotate(60 32 32)"> 
+       <rect x="30" y="10" width="6" height="14" rx="3" ry="3" fill="#f472b6" /> 
+     </g> 
+  
+     <!-- 3. 姗欒壊 --> 
+     <g transform="rotate(120 32 32)"> 
+       <rect x="30" y="10" width="6" height="14" rx="3" ry="3" fill="#fb923c" /> 
+     </g> 
+  
+     <!-- 4. 閲戦粍 --> 
+     <g transform="rotate(180 32 32)"> 
+       <rect x="30" y="10" width="6" height="14" rx="3" ry="3" fill="#fbbf24" /> 
+     </g> 
+  
+     <!-- 5. 闈掕壊 --> 
+     <g transform="rotate(240 32 32)"> 
+       <rect x="30" y="10" width="6" height="14" rx="3" ry="3" fill="#22d3ee" /> 
+     </g> 
+  
+     <!-- 6. 钃濊壊 --> 
+     <g transform="rotate(300 32 32)"> 
+       <rect x="30" y="10" width="6" height="14" rx="3" ry="3" fill="#3b82f6" /> 
+     </g> 
+   </g> 
+ </svg> 
 </div>
 
 <script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script>
@@ -306,6 +397,48 @@
     var url = logout.getAttribute('href');
     logout.setAttribute('href', baseUrl + "/login");
 
+    // 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 () {
+        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);
+                });
+            }
+        });
+    });
+
   });
 </script>
 <script type="text/html" id="menuTpl">

--
Gitblit v1.9.1