# PRD — 问题处理：检测项折叠展示与进程列表优化

## 概述

| 项目 | 内容 |
|------|------|
| 问题ID | service-monitor-ui-001 |
| 发现日期 | 2026-07-20 |
| 优先级 | P2（用户体验优化） |
| 影响范围 | 服务监测报告展示 |

## 问题描述

### 问题1：Java/Python 容器进程列表未显示

**现象**：用户在巡检报告中看不到 Java 和 Python 容器内的进程列表，无法判断容器内服务是否正常运行。

**影响**：无法直观看到容器内跑着哪些进程、CPU/内存占用情况。

**根因分析**：
1. 脚本已输出 `JAVA_PROCESS_LIST` 和 `PYTHON_PROCESS_LIST` KEY
2. `display_names.py` 已配置中文显示名
3. 可能原因：
   - 进程列表值太长（包含多行用 `|` 分隔），前端未正确渲染
   - KEY 不在快速巡检的模块范围内（Java/Python 模块属于全量巡检）
   - parser 可能过滤了特殊字符

### 问题2：检测项太多，报告可读性差

**现象**：全量巡检输出 193+ 项检测项，页面冗长，用户难以快速定位异常项。

**影响**：
- 正常项淹没异常项
- 用户需要大量滚动才能看完报告
- 关键问题不突出

**期望效果**：
- 默认只显示摘要和异常项
- 正常项折叠隐藏，点击展开查看
- 支持按模块分组折叠

## 需求目标

1. **进程列表正确显示**：Java/Python 检测项中展示容器内进程列表
2. **报告折叠展示**：检测项默认折叠，点击展开查看详情
3. **异常项优先**：异常/警告项默认展开，正常项默认折叠

## 解决方案

### 方案1：进程列表优化

**文件修改**：
- `28_java_check.sh` / `29_python_check.sh`：确保进程列表输出格式正确
- `parser.py`：检查是否过滤了 `|` 分隔符
- `report.html`：前端渲染进程列表时支持换行显示

### 方案2：报告折叠展示

**前端改造**：

```html
<!-- 报告页面改造思路 -->
<div class="report-section">
  <!-- 模块头部（可点击折叠） -->
  <div class="module-header" onclick="toggleModule('module-id')">
    <span class="module-name">Java应用检测</span>
    <span class="module-summary">正常 12 项 / 异常 1 项</span>
    <span class="toggle-icon">▶</span>
  </div>
  
  <!-- 检测项列表（默认折叠） -->
  <div class="module-items" id="module-id" style="display: none;">
    <!-- 异常项默认展开 -->
    <div class="item item-error">
      <span class="item-name">JVM堆使用率</span>
      <span class="item-value">92%</span>
      <span class="item-level level-error">严重</span>
    </div>
    <!-- 正常项 -->
    <div class="item item-normal" style="display: none;">
      ...
    </div>
  </div>
</div>
```

**交互逻辑**：
1. 页面加载时，只显示模块摘要（模块名 + 异常计数）
2. 点击模块头部，展开/折叠该模块的所有检测项
3. 检测项中：
   - 异常/警告项：默认显示
   - 正常项：默认隐藏，有"显示正常项"按钮

### 方案3：进程列表特殊渲染

对于进程列表这种长文本项：
- 显示进程数摘要：`共 15 个进程`
- 点击查看详细列表（弹窗或展开）
- 列表按表格形式展示：用户、PID、CPU%、内存%、命令

## 验收标准

1. Java/Python 检测报告中能看到容器内进程列表
2. 报告页面默认折叠，只显示摘要
3. 异常项默认展开，正常项默认折叠
4. 点击模块头部能展开/折叠
5. 进程列表能清晰展示各进程信息

## 相关文件

| 文件 | 用途 |
|------|------|
| `templates/service_monitor/report.html` | 报告页面模板 |
| `assets/service/28_java_check.sh` | Java检测脚本 |
| `assets/service/29_python_check.sh` | Python检测脚本 |
| `utils/parser.py` | 检测结果解析 |
| `utils/display_names.py` | KEY显示名映射 |