#AI
Junjie
18 小时以前 d600bbc25fb2e306d92cffafe2d7aa601daa536b
src/main/webapp/views/ai/diagnosis.html
@@ -3,7 +3,7 @@
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>WCS AI 诊断</title>
  <title>WCS AI 助手</title>
  <link rel="stylesheet" href="../../static/vue/element/element.css" />
  <style>
    body { background: #f5f7fa; }
@@ -16,81 +16,18 @@
    .markdown-body h1, .markdown-body h2, .markdown-body h3 { margin-top: 8px; }
    .markdown-body pre { background: #f6f8fa; padding: 12px; border-radius: 6px; overflow: auto; }
    .status { color: #909399; }
    /* 整个图标旋转动画 */
    .spinner {
      animation: spin 2.8s linear infinite;
      transform-origin: 50% 50%;
    }
    @keyframes spin {
      from { transform: rotate(0deg); }
      to   { transform: rotate(360deg); }
    }
  </style>
</head>
<body>
  <div id="app" class="container">
    <el-card shadow="hover">
      <div slot="header" class="clearfix" style="display: flex; align-items: center;">
        <svg
            width="32"
            height="32"
            viewBox="0 0 64 64"
            style="margin-right: 10px;"
            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>
          </defs>
          <!-- 旋转组 -->
          <g class="spinner" filter="url(#glow)">
            <!-- 每一条彩色「小弯条」 -->
            <!-- 可以通过调整 rx/ry、width/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>
        <span>WCS AI 诊断</span>
        <div v-html="headerIcon" style="margin-right: 10px; display: flex;"></div>
        <span>WCS AI 助手</span>
      </div>
      <div class="actions">
        <el-button type="primary" :loading="loading" :disabled="streaming" @click="start">开始诊断</el-button>
        <el-button type="primary" :loading="loading" :disabled="streaming" @click="start">一键诊断系统</el-button>
        <el-button type="warning" :disabled="!streaming" @click="stop">停止</el-button>
        <el-button @click="clear">清空</el-button>
        <span class="status">{{ statusText }}</span>
@@ -119,6 +56,7 @@
      el: '#app',
      data: function() {
        return {
          headerIcon: getAiIconHtml(50, 50),
          loading: false,
          streaming: false,
          source: null,