Selaa lähdekoodia

chore: 更新本地开发配置并新增隐患报告相关文件

1.  修改vite.config.js,添加host: 0.0.0.0配置
2.  新增demo1.png、report.md和report.html报告文件
3.  重构tips_report.vue页面,替换远程图片为本地资源并更新隐患展示UI
Stclair 3 viikkoa sitten
vanhempi
sitoutus
b9bbecdc3d
5 muutettua tiedostoa jossa 545 lisäystä ja 40 poistoa
  1. BIN
      public/demo1.png
  2. 272 0
      public/report.html
  3. 35 0
      public/report.md
  4. 236 39
      src/views/tips_report.vue
  5. 2 1
      vite.config.js

BIN
public/demo1.png


+ 272 - 0
public/report.html

@@ -0,0 +1,272 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+<head>
+  <meta charset="UTF-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <style>
+    * {
+      margin: 0;
+      padding: 0;
+      box-sizing: border-box;
+    }
+    body {
+      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
+      background: #f5f7fa;
+      padding: 20px;
+      color: #333;
+    }
+    .report-container {
+      max-width: 900px;
+      margin: 0 auto;
+      background: #fff;
+      border-radius: 12px;
+      padding: 30px;
+      box-shadow: 0 1px 4px rgba(0,0,0,0.05);
+    }
+
+    .section-title {
+      font-size: 18px;
+      font-weight: 600;
+      color: #333;
+      padding-bottom: 8px;
+      border-bottom: 1px solid #e8e8e8;
+    }
+    .report-overview {
+      background: #f6ffed;
+      padding: 16px;
+      border-radius: 8px;
+      margin-bottom: 20px;
+    }
+    .report-overview h4 {
+      font-size: 14px;
+      font-weight: 600;
+      color: #52c41a;
+      margin-bottom: 8px;
+    }
+    .report-overview p {
+      font-size: 13px;
+      color: #666;
+      line-height: 1.8;
+    }
+    .hazard-item {
+      background: #fffbf0;
+      padding: 16px;
+      border-radius: 8px;
+      margin-bottom: 16px;
+      border-left: 4px solid #faad14;
+    }
+    .hazard-title {
+      display: flex;
+      align-items: center;
+      gap: 8px;
+      font-weight: 600;
+      font-size: 15px;
+      color: #333;
+      margin-bottom: 12px;
+    }
+    .hazard-title .hazard-icon {
+      font-size: 18px;
+    }
+    .hazard-item ul {
+      margin: 0;
+      padding-left: 28px;
+    }
+    .hazard-item ul li {
+      font-size: 13px;
+      color: #666;
+      line-height: 1.8;
+      margin-bottom: 4px;
+    }
+    .risk-tag {
+      display: inline-block;
+      margin-top: 12px;
+      padding: 4px 10px;
+      border-radius: 4px;
+      font-size: 12px;
+      font-weight: 500;
+    }
+    .risk-tag.high {
+      background: #fff1f0;
+      color: #ff4d4f;
+    }
+    .risk-tag.medium {
+      background: #fffbe6;
+      color: #faad14;
+    }
+    .risk-tag.low {
+      background: #f6ffed;
+      color: #52c41a;
+    }
+    .suggestion-list {
+      margin-top: 16px;
+    }
+    .suggestion-item {
+      display: flex;
+      align-items: flex-start;
+      gap: 12px;
+      padding: 12px;
+      border-radius: 6px;
+      margin-bottom: 10px;
+    }
+    .suggestion-item.high {
+      background: #fff1f0;
+    }
+    .suggestion-item.medium {
+      background: #fffbe6;
+    }
+    .suggestion-item.base {
+      background: #f6ffed;
+    }
+    .priority {
+      padding: 4px 10px;
+      border-radius: 4px;
+      font-size: 12px;
+      font-weight: 600;
+      color: #fff;
+      flex-shrink: 0;
+    }
+    .suggestion-item.high .priority {
+      background: #ff4d4f;
+    }
+    .suggestion-item.medium .priority {
+      background: #faad14;
+    }
+    .suggestion-item.base .priority {
+      background: #52c41a;
+    }
+    .suggestion-content {
+      font-size: 13px;
+      color: #666;
+      line-height: 1.6;
+    }
+    .footer {
+      margin-top: 30px;
+      padding-top: 20px;
+      border-top: 1px solid #e8e8e8;
+      text-align: center;
+    }
+    .footer p {
+      font-size: 12px;
+      color: #999;
+      line-height: 1.6;
+    }
+  </style>
+</head>
+<body>
+  <div class="report-container">
+    <h3 class="section-title">一、报告概述</h3>
+    <div class="report-overview">
+      <h4>概述</h4>
+      <p>本报告基于提供的当前附件内容,对识别到的关键场景要素(加油机、加油机输油软管、防撞栏、加油枪)及关联的潜在安全隐患进行了系统梳理。报告旨在从隐患识别的视角,提供一份结构化的核查汇总,以便快速定位和对照整改。</p>
+    </div>
+
+    <h3 class="section-title">二、识别的要素及隐患汇总</h3>
+    
+    <div class="hazard-item">
+      <div class="hazard-title">
+        <span class="hazard-icon">⛽</span>
+        <span>加油机</span>
+      </div>
+      <ul>
+        <li>加油机外观不整洁,有明显油污</li>
+        <li>机座地脚螺栓/紧固件连接明显松动</li>
+        <li>底部填沙潮湿或明显油迹</li>
+        <li>进油管与紧急截断阀连接处未露出沙外</li>
+        <li>油品管线连接处有明显渗漏</li>
+        <li>过滤器有明显油污和渗漏</li>
+        <li>加油机底部未设置截断阀</li>
+        <li>加油枪密封不良,工作时渗漏</li>
+        <li>汽油加油枪无集气罩或集气罩破损</li>
+        <li>油气回收检测口丝堵松动,管路渗油</li>
+        <li>加油机静电接地失效</li>
+        <li>加油机铭牌不清晰</li>
+        <li>工艺仓与电气仓隔板孔洞未密封</li>
+        <li>防爆挠性管连接松动,接线盒静电接地不合规</li>
+      </ul>
+      <span class="risk-tag high">风险:设备稳定性不足、油品泄漏风险、火灾爆炸风险、静电危害、环境污染</span>
+    </div>
+
+    <div class="hazard-item">
+      <div class="hazard-title">
+        <span class="hazard-icon">🔧</span>
+        <span>加油机输油软管</span>
+      </div>
+      <ul>
+        <li>加油软管上未设置安全拉断阀</li>
+        <li>存在油污、渗漏、连接松动等问题</li>
+      </ul>
+      <span class="risk-tag medium">风险:车辆误拉扯导致软管断裂,引发泄漏;泄漏本身构成直接风险</span>
+    </div>
+
+    <div class="hazard-item">
+      <div class="hazard-title">
+        <span class="hazard-icon">🛡️</span>
+        <span>防撞栏及周边设施</span>
+      </div>
+      <ul>
+        <li>靠近岛端部的加油机未设置防撞柱或防撞柱松动破损,未涂刷警示色</li>
+        <li>加油站进口/进站口减速带缺失、破损失效</li>
+        <li>地面破损、凹陷,或环保沟盖板破损凸起,影响通行</li>
+        <li>地面未按规范划线</li>
+        <li>雨水排水设施破损或堵塞</li>
+      </ul>
+      <span class="risk-tag medium">风险:车辆撞击风险,可能导致设备损坏和二次事故;交通秩序混乱;地面积水或通行障碍</span>
+    </div>
+
+    <div class="hazard-item">
+      <div class="hazard-title">
+        <span class="hazard-icon">🔫</span>
+        <span>加油枪</span>
+      </div>
+      <ul>
+        <li>加油枪密封不良,工作时渗漏</li>
+        <li>汽油加油枪无集气罩或集气罩破损</li>
+        <li>油气回收系统相关部件问题</li>
+      </ul>
+      <span class="risk-tag high">风险:操作点直接泄漏风险,增加火灾危险和油气挥发;污染空气</span>
+    </div>
+
+    <div class="hazard-item">
+      <div class="hazard-title">
+        <span class="hazard-icon">🔥</span>
+        <span>其他关联要素</span>
+      </div>
+      <ul>
+        <li>消防设备:每2台加油机设置少于2只5kg手提式干粉灭火器</li>
+        <li>安全监测与防护:加油现场可燃气体报警仪失效;现场作业人员未规范穿着防静电工作服、鞋</li>
+        <li>静电管控:有灌桶作业的加油岛未设置专用静电消除装置</li>
+        <li>区域布置:柴油尾气处理液加注设施布置位置不合规</li>
+      </ul>
+    </div>
+
+    <h3 class="section-title">三、优先整改建议</h3>
+    <div class="suggestion-list">
+      <div class="suggestion-item high">
+        <span class="priority">高</span>
+        <span class="suggestion-content">泄漏风险:立即核查并处理加油枪、管线连接处、油气回收系统的任何渗漏迹象,这是最直接的火源和污染源</span>
+      </div>
+      <div class="suggestion-item high">
+        <span class="priority">高</span>
+        <span class="suggestion-content">静电与火源管控:必须确保加油机静电接地有效、作业人员规范穿戴防静电装备、灭火器配置到位且完好</span>
+      </div>
+      <div class="suggestion-item medium">
+        <span class="priority">中</span>
+        <span class="suggestion-content">结构/机械完整性:紧固松动的螺栓、修复或安装防撞柱,保障设备稳固,防止意外碰撞损坏</span>
+      </div>
+      <div class="suggestion-item medium">
+        <span class="priority">中</span>
+        <span class="suggestion-content">交通与现场秩序:修复损坏的减速带、地面和划线,确保车辆行驶与人员行走安全</span>
+      </div>
+      <div class="suggestion-item base">
+        <span class="priority">基</span>
+        <span class="suggestion-content">标识与可视化:清洁加油机、涂刷警示色、确保铭牌清晰,提升安全警示作用</span>
+      </div>
+    </div>
+
+    <div class="footer">
+      <p>注:以上汇总完全基于您提供的文档内容分析得出,可用于制定隐患排查清单或作为现场安全检查的参考依据。现场情况复杂,请结合实际进一步排查确认。</p>
+      <p style="margin-top: 8px;">大模型AI生成,内容仅供参考</p>
+    </div>
+  </div>
+</body>
+</html>

+ 35 - 0
public/report.md

@@ -0,0 +1,35 @@
+根据您提供的附件内容,从隐患识别角度整理的汇总报告如下:
+
+加油站现场安全隐患识别汇总报告
+
+一、 报告概述
+本报告基于提供的当前附件内容,对识别到的关键场景要素(加油机、加油机输油软管、防撞栏、加油枪)及关联的潜在安全隐患进行了系统梳理。报告旨在从隐患识别的视角,提供一份结构化的核查汇总,以便快速定位和对照整改。
+
+二、 识别的要素及隐患汇总表
+
+| 关键要素 | 识别到的主要隐患描述(源自附件“third_scenes”) | 关联风险 |
+| :--- | :--- | :--- |
+| 加油机 | 1. 加油机外观不整洁,有明显油污。 <br> 2. 机座地脚螺栓/紧固件连接明显松动。 <br> 3. 底部填沙潮湿或明显油迹。 <br> 4. 进油管与紧急截断阀连接处未露出沙外。 <br> 5. 油品管线连接处有明显渗漏。 <br> 6. 过滤器有明显油污和渗漏。 <br> 7. 加油机底部未设置截断阀。 <br> 8. 加油枪密封不良,工作时渗漏。 <br> 9. 汽油加油枪无集气罩或集气罩破损。 <br> 10. 油气回收检测口丝堵松动,管路渗油。 <br> 11. 加油机静电接地失效。 <br> 12. 加油机铭牌不清晰。 <br> 13. 工艺仓与电气仓隔板孔洞未密封。 <br> 14. 防爆挠性管连接松动,接线盒静电接地不合规。 | 设备稳定性不足、油品泄漏风险、火灾爆炸风险、静电危害、环境污染。 |
+| 加油机输油软管 | 1. 加油软管上未设置安全拉断阀。 <br> 2. (与加油机重合)存在油污、渗漏、连接松动等问题。 | 车辆误拉扯导致软管断裂,引发泄漏;泄漏本身构成直接风险。 |
+| 防撞栏 (及周边设施) | 1. 靠近岛端部的加油机未设置防撞柱或防撞柱松动破损,未涂刷警示色。 <br> 2. 加油站进口/进站口减速带缺失、破损失效。 <br> 3. 地面破损、凹陷,或环保沟盖板破损凸起,影响通行。 <br> 4. 地面未按规范划线。 <br> 5. 雨水排水设施破损或堵塞。 | 车辆撞击风险,可能导致设备损坏和二次事故;交通秩序混乱;地面积水或通行障碍。 |
+| 加油枪 | 1. 加油枪密封不良,工作时渗漏。 <br> 2. 汽油加油枪无集气罩或集气罩破损。 <br> 3. (与加油机重合)油气回收系统相关部件问题。 | 操作点直接泄漏风险,增加火灾危险和油气挥发;污染空气。 |
+
+三、 其他关联要素的风险识别
+报告中还列举了以下未直接对应到图片但关联整体安全的隐患点:
+- 消防设备:每2台加油机设置少于2只5kg手提式干粉灭火器。
+- 安全监测与防护:加油现场可燃气体报警仪失效;现场作业人员未规范穿着防静电工作服、鞋。
+- 静电管控:有灌桶作业的加油岛未设置专用静电消除装置。
+- 区域布置:柴油尾气处理液加注设施布置位置不合规。
+
+四、 总结与建议
+本次隐患识别汇总覆盖了从设备本体安全、管线连接、防火防爆、静电防控、交通安全到现场规范等多个维度,体现了加油站安全管理多环节的特点。
+
+优先关注点建议:
+1.  泄漏风险(高优先级):立即核查并处理加油枪、管线连接处、油气回收系统的任何渗漏迹象,这是最直接的火源和污染源。
+2.  静电与火源管控(高优先级):必须确保加油机静电接地有效、作业人员规范穿戴防静电装备、灭火器配置到位且完好。
+3.  结构/机械完整性(中等优先级):紧固松动的螺栓、修复或安装防撞柱,保障设备稳固,防止意外碰撞损坏。
+4.  交通与现场秩序(中等优先级):修复损坏的减速带、地面和划线,确保车辆行驶与人员行走安全。
+5.  标识与可视化(基础要求):清洁加油机、涂刷警示色、确保铭牌清晰,提升安全警示作用。
+
+---
+*注:以上汇总完全基于您提供的文档内容分析得出,可用于制定隐患排查清单或作为现场安全检查的参考依据。现场情况复杂,请结合实际进一步排查确认。*<br><br>百度AI生成,内容仅供参考

+ 236 - 39
src/views/tips_report.vue

@@ -37,28 +37,99 @@
         <div class="center-panel">
           <div class="image-section">
             <img :src="currentTask.image" alt="现场图片" class="main-image" />
-            <div class="image-nav">
-              <span class="nav-info">1 / 6</span>
-            </div>
-            <!-- 标注框 -->
-            <div
-              v-for="(tag, index) in currentTask.tags"
-              :key="index"
-              :style="{ top: tag.top, left: tag.left }"
-              class="tag-box"
-              @click="selectTag(tag)"
-            >
-              {{ tag.label }}
-            </div>
           </div>
 
           <div class="ai-section">
             <div class="section-header">
               <span class="section-title">隐患提示说明</span>
-              <!-- <span class="ai-badge">AI安全提醒</span> -->
             </div>
             <div class="ai-content">
-              <p>{{ currentTask.aiWarning }}</p>
+              <div class="report-overview">
+                <h4>一、报告概述</h4>
+                <p>本报告基于提供的当前附件内容,对识别到的关键场景要素(加油机、加油机输油软管、防撞栏、加油枪)及关联的潜在安全隐患进行了系统梳理。报告旨在从隐患识别的视角,提供一份结构化的核查汇总,以便快速定位和对照整改。</p>
+              </div>
+              <div class="report-hazards">
+                <h4>二、识别的要素及隐患汇总</h4>
+                <div class="hazard-item">
+                  <div class="hazard-title">
+                    <span class="hazard-icon">⛽</span>
+                    <span>加油机</span>
+                  </div>
+                  <ul>
+                    <li>加油机外观不整洁,有明显油污</li>
+                    <li>机座地脚螺栓/紧固件连接明显松动</li>
+                    <li>底部填沙潮湿或明显油迹</li>
+                    <li>油品管线连接处有明显渗漏</li>
+                    <li>过滤器有明显油污和渗漏</li>
+                    <li>加油机底部未设置截断阀</li>
+                    <li>加油枪密封不良,工作时渗漏</li>
+                    <li>加油机静电接地失效</li>
+                    <li>防爆挠性管连接松动,接线盒静电接地不合规</li>
+                  </ul>
+                  <div class="risk-tag high">风险:设备稳定性不足、油品泄漏风险、火灾爆炸风险</div>
+                </div>
+                <div class="hazard-item">
+                  <div class="hazard-title">
+                    <span class="hazard-icon">🔧</span>
+                    <span>加油机输油软管</span>
+                  </div>
+                  <ul>
+                    <li>加油软管上未设置安全拉断阀</li>
+                    <li>存在油污、渗漏、连接松动等问题</li>
+                  </ul>
+                  <div class="risk-tag medium">风险:车辆误拉扯导致软管断裂,引发泄漏</div>
+                </div>
+                <div class="hazard-item">
+                  <div class="hazard-title">
+                    <span class="hazard-icon">🛡️</span>
+                    <span>防撞栏及周边设施</span>
+                  </div>
+                  <ul>
+                    <li>靠近岛端部的加油机未设置防撞柱或防撞柱松动破损</li>
+                    <li>加油站进口/进站口减速带缺失、破损失效</li>
+                    <li>地面破损、凹陷,或环保沟盖板破损凸起</li>
+                    <li>地面未按规范划线</li>
+                    <li>雨水排水设施破损或堵塞</li>
+                  </ul>
+                  <div class="risk-tag medium">风险:车辆撞击风险、交通秩序混乱、通行障碍</div>
+                </div>
+                <div class="hazard-item">
+                  <div class="hazard-title">
+                    <span class="hazard-icon">🔫</span>
+                    <span>加油枪</span>
+                  </div>
+                  <ul>
+                    <li>加油枪密封不良,工作时渗漏</li>
+                    <li>汽油加油枪无集气罩或集气罩破损</li>
+                  </ul>
+                  <div class="risk-tag high">风险:操作点直接泄漏风险、火灾危险</div>
+                </div>
+              </div>
+              <div class="report-suggestions">
+                <h4>三、优先整改建议</h4>
+                <div class="suggestion-list">
+                  <div class="suggestion-item high">
+                    <span class="priority">高</span>
+                    <span>泄漏风险:立即核查加油枪、管线连接处、油气回收系统的任何渗漏迹象</span>
+                  </div>
+                  <div class="suggestion-item high">
+                    <span class="priority">高</span>
+                    <span>静电与火源管控:确保加油机静电接地有效、作业人员规范穿戴防静电装备</span>
+                  </div>
+                  <div class="suggestion-item medium">
+                    <span class="priority">中</span>
+                    <span>结构/机械完整性:紧固松动的螺栓、修复或安装防撞柱</span>
+                  </div>
+                  <div class="suggestion-item medium">
+                    <span class="priority">中</span>
+                    <span>交通与现场秩序:修复损坏的减速带、地面和划线</span>
+                  </div>
+                  <div class="suggestion-item base">
+                    <span class="priority">基</span>
+                    <span>标识与可视化:清洁加油机、涂刷警示色、确保铭牌清晰</span>
+                  </div>
+                </div>
+              </div>
             </div>
           </div>
         </div>
@@ -95,7 +166,7 @@ const taskList = ref([
     time: '6月12日 17:12',
     status: 'completed',
     statusText: '已完成',
-    image: 'https://neeko-copilot.bytedance.net/api/text_to_image?prompt=gas%20station%20outdoor%20view&image_size=landscape_4_3',
+    image: '/demo1.png',
     aiWarning: '综合安全风险提示:图中出现加油机、加油枪、防撞柱、加油机输油管、配电箱、灭火器等关键设备设施。经AI图像智能分析,识别出以下安全隐患风险点:加油机周边地面存在疑似油污痕迹,需及时清理以防人员滑倒;配电箱外部存在轻微破损,建议检查内部线路防护状况;消防灭火器放置位置虽符合规范,但需确认压力值是否在正常范围;防撞柱反光标识存在局部褪色,建议定期更换以保障夜间警示效果。综合评估当前场景整体安全状况为中等风险,建议立即安排专业人员对上述隐患点进行逐一排查整改,确保加油站运营安全。',
     tags: [
       { label: '加油机', top: '55%', left: '32%' },
@@ -120,7 +191,7 @@ const taskList = ref([
     time: '6月12日 15:53',
     status: 'processing',
     statusText: '处理中',
-    image: 'https://neeko-copilot.bytedance.net/api/text_to_image?prompt=tunnel%20construction%20site&image_size=landscape_4_3',
+    image: '/demo1.png',
     aiWarning: '隧道施工风险提示:检测到隧道内存在施工设备、临时支护结构等,建议关注支护稳定性、通风系统运行状态及照明设施完好情况。',
     tags: [],
     checklist: []
@@ -131,7 +202,7 @@ const taskList = ref([
     time: '6月12日 15:52',
     status: 'processing',
     statusText: '处理中',
-    image: 'https://neeko-copilot.bytedance.net/api/text_to_image?prompt=gas%20station%20outdoor%20view%202&image_size=landscape_4_3',
+    image: '/demo1.png',
     aiWarning: '综合安全风险提示:检测到多个加油机位、消防设施及电气设备,建议全面检查设备运行状态及安全防护措施。',
     tags: [],
     checklist: []
@@ -142,7 +213,7 @@ const taskList = ref([
     time: '6月12日 15:49',
     status: 'pending',
     statusText: '待处理',
-    image: 'https://neeko-copilot.bytedance.net/api/text_to_image?prompt=gas%20station%20equipment&image_size=landscape_4_3',
+    image: '/demo1.png',
     aiWarning: '',
     tags: [],
     checklist: []
@@ -153,7 +224,7 @@ const taskList = ref([
     time: '6月12日 15:48',
     status: 'pending',
     statusText: '待处理',
-    image: 'https://neeko-copilot.bytedance.net/api/text_to_image?prompt=gas%20station%20fuel%20dispenser&image_size=landscape_4_3',
+    image: '/demo1.png',
     aiWarning: '',
     tags: [],
     checklist: []
@@ -164,7 +235,7 @@ const taskList = ref([
     time: '6月12日 15:48',
     status: 'pending',
     statusText: '待处理',
-    image: 'https://neeko-copilot.bytedance.net/api/text_to_image?prompt=bridge%20construction%20site&image_size=landscape_4_3',
+    image: '/demo1.png',
     aiWarning: '',
     tags: [],
     checklist: []
@@ -363,7 +434,8 @@ const toggleCheck = (index) => {
   display: flex;
   flex-direction: column;
   gap: 20px;
-  overflow: hidden;
+  overflow-y: auto;
+  padding-right: 8px;
 }
 
 .image-section {
@@ -372,13 +444,16 @@ const toggleCheck = (index) => {
   border-radius: 12px;
   overflow: hidden;
   box-shadow: 0 1px 4px rgba(0,0,0,0.05);
-  height: calc(100vh * 5 / 7);
-  flex-shrink: 0;
+  min-height: 400px;
+  background: #f5f5f5 url('/demo1.png') center center no-repeat;
+  background-size: contain;
 
   .main-image {
     width: 100%;
-    height: 100%;
-    object-fit: cover;
+    height: auto;
+    display: block;
+    max-height: 600px;
+    object-fit: contain;
   }
 
   .image-nav {
@@ -424,32 +499,154 @@ const toggleCheck = (index) => {
     justify-content: space-between;
     align-items: center;
     margin-bottom: 12px;
+    flex-shrink: 0;
 
     .section-title {
       font-size: 16px;
       font-weight: 500;
       color: #333;
     }
-
-    .ai-badge {
-      padding: 2px 8px;
-      background: #f6ffed;
-      color: #52c41a;
-      border-radius: 4px;
-      font-size: 12px;
-    }
   }
 
   .ai-content {
-    background: #f6ffed;
-    padding: 12px 16px;
-    border-radius: 8px;
+    h4 {
+      font-size: 14px;
+      font-weight: 600;
+      color: #333;
+      margin: 0 0 10px 0;
+      padding-bottom: 8px;
+      border-bottom: 1px solid #f0f0f0;
+
+      &:first-child {
+        margin-top: 0;
+      }
+    }
 
     p {
-      font-size: 14px;
+      font-size: 13px;
       color: #666;
       line-height: 1.6;
-      margin: 0;
+      margin: 0 0 12px 0;
+    }
+
+    .report-overview {
+      background: #f6ffed;
+      padding: 12px;
+      border-radius: 8px;
+      margin-bottom: 16px;
+
+      p {
+        margin: 0;
+        color: #52c41a;
+      }
+    }
+
+    .hazard-item {
+      background: #fffbf0;
+      padding: 12px;
+      border-radius: 8px;
+      margin-bottom: 12px;
+      border-left: 3px solid #faad14;
+
+      .hazard-title {
+        display: flex;
+        align-items: center;
+        gap: 8px;
+        font-weight: 500;
+        color: #333;
+        margin-bottom: 8px;
+
+        .hazard-icon {
+          font-size: 16px;
+        }
+      }
+
+      ul {
+        margin: 0;
+        padding-left: 24px;
+
+        li {
+          font-size: 12px;
+          color: #666;
+          line-height: 1.8;
+        }
+      }
+
+      .risk-tag {
+        display: inline-block;
+        margin-top: 8px;
+        padding: 4px 8px;
+        border-radius: 4px;
+        font-size: 11px;
+
+        &.high {
+          background: #fff1f0;
+          color: #ff4d4f;
+        }
+
+        &.medium {
+          background: #fffbe6;
+          color: #faad14;
+        }
+
+        &.low {
+          background: #f6ffed;
+          color: #52c41a;
+        }
+      }
+    }
+
+    .suggestion-list {
+      .suggestion-item {
+        display: flex;
+        align-items: flex-start;
+        gap: 8px;
+        padding: 10px;
+        background: #f5f5f5;
+        border-radius: 6px;
+        margin-bottom: 8px;
+
+        .priority {
+          padding: 2px 6px;
+          border-radius: 4px;
+          font-size: 11px;
+          font-weight: 500;
+          flex-shrink: 0;
+        }
+
+        span:last-child {
+          font-size: 12px;
+          color: #666;
+          line-height: 1.5;
+        }
+
+        &.high {
+          background: #fff1f0;
+
+          .priority {
+            background: #ff4d4f;
+            color: #fff;
+          }
+        }
+
+        &.medium {
+          background: #fffbe6;
+
+          .priority {
+            background: #faad14;
+            color: #fff;
+          }
+        }
+
+        &.base {
+          background: #f6ffed;
+
+          .priority {
+            background: #52c41a;
+            color: #fff;
+          }
+        }
+      }
     }
   }
 }

+ 2 - 1
vite.config.js

@@ -11,6 +11,7 @@ export default defineConfig({
   },
   server: {
     port: 3000,
-    open: true
+    open: true,
+    host: '0.0.0.0'
   }
 })