# 试卷分析组件架构
## 项目概述
本项目采用组件化设计,将OCR试卷分析页面拆分为独立的、可复用的组件,提高代码的可维护性和可读性。
## 目录结构
```
app/View/Components/ExamAnalysis/
├── Header.php # 头部组件类
├── QuickStats.php # 快速统计组件类
├── LearningAnalysis.php # 学习分析组件类
├── QuestionDetails.php # 题目详情组件类
├── Recommendations.php # 学习建议组件类
└── Loading.php # 加载状态组件类
resources/views/components/
├── exam-analysis/
│ ├── header.blade.php # 头部模板
│ ├── quick-stats.blade.php # 快速统计模板
│ ├── learning-analysis.blade.php # 学习分析模板
│ ├── question-details.blade.php # 题目详情模板
│ └── recommendations.blade.php # 学习建议模板
└── loading.blade.php # 加载状态模板
resources/views/filament/pages/
├── exam-analysis-compact.blade.php # OCR记录紧凑布局
└── exam-analysis-standard.blade.php # 系统生成卷子标准布局
```
## 组件关系图
```
┌─────────────────────────────────────────────┐
│ 页面布局 │
│ ┌─────────────────────────────────────┐ │
│ │ 头部组件 Header │ │
│ └─────────────────────────────────────┘ │
│ ┌─────────────────────────────────────┐ │
│ │ 快速统计组件 QuickStats │ │
│ └─────────────────────────────────────┘ │
│ ┌─────────────────────────────────────┐ │
│ │ 学习分析组件 LearningAnalysis │ │
│ └─────────────────────────────────────┘ │
│ ┌─────────────────────────────────────┐ │
│ │ 题目详情组件 QuestionDetails │ │
│ └─────────────────────────────────────┘ │
│ ┌─────────────────────────────────────┐ │
│ │ 学习建议组件 Recommendations │ │
│ └─────────────────────────────────────┘ │
└─────────────────────────────────────────────┘
```
## 组件清单
### 1. Header 组件
- **类文件**: `app/View/Components/ExamAnalysis/Header.php`
- **模板文件**: `resources/views/components/exam-analysis/header.blade.php`
- **功能**: 显示页面标题、记录ID、状态信息
- **属性**:
- `recordData` (array) - 记录数据
- `title` (string|null) - 可选标题
### 2. Loading 组件
- **类文件**: `app/View/Components/ExamAnalysis/Loading.php`
- **模板文件**: `resources/views/components/loading.blade.php`
- **功能**: 显示加载动画和提示信息
- **属性**:
- `message` (string|null) - 可选加载提示文字
### 3. QuickStats 组件
- **类文件**: `app/View/Components/ExamAnalysis/QuickStats.php`
- **模板文件**: `resources/views/components/exam-analysis/quick-stats.blade.php`
- **功能**: 显示关键指标的迷你卡片
- **属性**:
- `recordData` (array) - 记录数据
### 4. LearningAnalysis 组件
- **类文件**: `app/View/Components/ExamAnalysis/LearningAnalysis.php`
- **模板文件**: `resources/views/components/exam-analysis/learning-analysis.blade.php`
- **功能**: 显示掌握度、进度条、知识点统计
- **属性**:
- `analysisData` (array) - 分析数据
### 5. QuestionDetails 组件
- **类文件**: `app/View/Components/ExamAnalysis/QuestionDetails.php`
- **模板文件**: `resources/views/components/exam-analysis/question-details.blade.php`
- **功能**: 显示题目详情、AI分析结果
- **属性**:
- `questions` (array) - 题目数组
### 6. Recommendations 组件
- **类文件**: `app/View/Components/ExamAnalysis/Recommendations.php`
- **模板文件**: `resources/views/components/exam-analysis/recommendations.blade.php`
- **功能**: 显示学习建议列表
- **属性**:
- `recommendations` (array) - 建议数组
## 布局模板
### 1. 紧凑布局 (exam-analysis-compact.blade.php)
**适用场景**: OCR记录页面
**特点**:
- 页面高度紧凑,节省空间
- 快速统计卡片展示关键指标
- 题目详情分析区块详细展示AI分析
**使用示例**:
```blade