#AI
Junjie
8 小时以前 d600bbc25fb2e306d92cffafe2d7aa601daa536b
src/main/webapp/static/js/common.js
@@ -1,4 +1,4 @@
var baseUrl = "/jswcs";
var baseUrl = "/wcs";
// 赋值
function setVal(el, val) {
@@ -168,4 +168,82 @@
        return unescape(r[2]);
    }
    return null;
}
}
function getDateFormat(value){
    var date = new Date();// 获取当前时间
    date.setDate(date.getDate() + value);// 设置天数 -1 天
    return date.Format("MM-dd");
}
/**
 * 日期格式化
 */
Date.prototype.Format = function (fmt) {
    var o = {
        "M+": this.getMonth() + 1, //月份
        "d+": this.getDate(), //日
        "h+": this.getHours(), //小时
        "m+": this.getMinutes(), //分
        "s+": this.getSeconds(), //秒
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
        "S": this.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        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>';
}