From d600bbc25fb2e306d92cffafe2d7aa601daa536b Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期五, 12 十二月 2025 11:02:30 +0800
Subject: [PATCH] #AI
---
src/main/webapp/static/js/common.js | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 55 insertions(+), 1 deletions(-)
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index d5fab2c..f2f0be2 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -1,4 +1,4 @@
-var baseUrl = "/skwcs";
+var baseUrl = "/wcs";
// 璧嬪��
function setVal(el, val) {
@@ -193,3 +193,57 @@
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
+
+/**
+ * 鑾峰彇AI鍔╂墜SVG鍥炬爣HTML
+ * @param {number} width 瀹藉害锛岄粯璁�48
+ * @param {number} height 楂樺害锛岄粯璁�48
+ * @returns {string} SVG HTML瀛楃涓�
+ */
+function getAiIconHtml(width, height) {
+ width = width || 48;
+ height = height || 48;
+ // 鐢熸垚鍞竴ID闃叉鍐茬獊
+ var uniqueId = 'ai_icon_' + Math.random().toString(36).substr(2, 9);
+ var textGradientId = 'textGradient_' + uniqueId;
+ var glowId = 'glow_' + uniqueId;
+ var spinName = 'spin_' + uniqueId;
+
+ return '<svg width="' + width + '" height="' + height + '" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" fill="none">' +
+ '<defs>' +
+ '<linearGradient id="' + textGradientId + '" gradientUnits="userSpaceOnUse" x1="25" y1="50" x2="75" y2="50">' +
+ '<stop offset="0%" stop-color="#8b5cf6"/>' +
+ '<stop offset="20%" stop-color="#f472b6"/>' +
+ '<stop offset="40%" stop-color="#fb923c"/>' +
+ '<stop offset="60%" stop-color="#fbbf24"/>' +
+ '<stop offset="80%" stop-color="#22d3ee"/>' +
+ '<stop offset="100%" stop-color="#3b82f6"/>' +
+ '<animateTransform attributeName="gradientTransform" type="rotate" from="0 50 50" to="360 50 50" dur="5s" repeatCount="indefinite" />' +
+ '</linearGradient>' +
+ '<filter id="' + glowId + '" x="-50%" y="-50%" width="200%" height="200%">' +
+ '<feGaussianBlur stdDeviation="1.6" result="blur"/>' +
+ '<feMerge>' +
+ '<feMergeNode in="blur"/>' +
+ '<feMergeNode in="SourceGraphic"/>' +
+ '</feMerge>' +
+ '</filter>' +
+ '<style>' +
+ '.' + spinName + ' { animation: ' + spinName + ' 5s linear infinite; transform-origin: 50px 50px; }' +
+ '@keyframes ' + spinName + ' { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }' +
+ '.geo-text-' + uniqueId + ' { fill: url(#' + textGradientId + '); stroke: rgba(0,0,0,0.40); stroke-width: 0.45; paint-order: stroke fill; }' +
+ '</style>' +
+ '</defs>' +
+ '<g class="' + spinName + '" filter="url(#' + glowId + ')">' +
+ '<g transform="rotate(0 50 50)"><rect x="48" y="18" width="4.5" height="10" rx="2" fill="#8b5cf6"/></g>' +
+ '<g transform="rotate(60 50 50)"><rect x="48" y="18" width="4.5" height="10" rx="2" fill="#f472b6"/></g>' +
+ '<g transform="rotate(120 50 50)"><rect x="48" y="18" width="4.5" height="10" rx="2" fill="#fb923c"/></g>' +
+ '<g transform="rotate(180 50 50)"><rect x="48" y="18" width="4.5" height="10" rx="2" fill="#fbbf24"/></g>' +
+ '<g transform="rotate(240 50 50)"><rect x="48" y="18" width="4.5" height="10" rx="2" fill="#22d3ee"/></g>' +
+ '<g transform="rotate(300 50 50)"><rect x="48" y="18" width="4.5" height="10" rx="2" fill="#3b82f6"/></g>' +
+ '</g>' +
+ '<g transform="translate(50 50) scale(0.35) translate(-32.5 -20)" class="geo-text-' + uniqueId + '">' +
+ '<path d="M0 40 L20 0 L40 40 Z"/><rect x="12" y="22" width="16" height="4" rx="1"/>' +
+ '<rect x="50" y="0" width="15" height="4" rx="1"/><rect x="55" y="4" width="5" height="32" rx="1.5"/><rect x="50" y="36" width="15" height="4" rx="1"/>' +
+ '</g>' +
+ '</svg>';
+}
--
Gitblit v1.9.1