# 考培练系统前端

基于 Vue 3 + TypeScript + Element Plus 开发的智能考试练习系统前端。

## 🚀 项目概述

考培练系统是一个集考试、培训、陪练于一体的智能学习平台，支持多角色用户（学员、管理者、系统管理员），提供完整的学习闭环体验。

## ✨ 核心特性

- 🎨 **现代化设计** - 白底、爽朗干净高级的界面设计，细腻的交互效果
- 📱 **响应式布局** - 完美适配各种屏幕尺寸，支持移动端操作
- 🚀 **高性能** - 基于 Vite 构建，快速的开发体验
- 🧠 **AI智能** - 集成AI陪练功能，智能对话和反馈
- 🎯 **角色导向** - 针对不同用户角色提供专属功能模块
- 🔒 **安全可靠** - 完善的错误处理和数据保护机制

## 🛠 技术栈

- **框架**: Vue 3.4 (Composition API)
- **语言**: TypeScript 5.2
- **UI 组件库**: Element Plus 2.6
- **路由**: Vue Router 4.3
- **状态管理**: Pinia 2.1
- **构建工具**: Vite 5.1
- **HTTP 客户端**: Axios
- **样式**: SCSS
- **图表**: ECharts 6.0
- **开发工具**: TypeScript

## 📁 项目结构

```
kaopeilian-frontend/
├── src/
│   ├── api/                   # API层抽象
│   │   ├── admin/            # 管理员模块API
│   │   ├── mock/             # 模拟数据
│   │   ├── config.ts         # API配置
│   │   ├── request.ts        # 请求封装
│   │   └── index.ts          # API统一导出
│   ├── views/                # 页面组件
│   │   ├── admin/            # 系统管理页面
│   │   ├── analysis/         # 数据分析页面
│   │   ├── dashboard/        # 首页
│   │   ├── exam/             # 考试练习页面
│   │   ├── manager/          # 管理者页面
│   │   ├── trainee/          # 学员页面
│   │   ├── user/             # 个人中心页面
│   │   ├── login/            # 登录页
│   │   ├── register/         # 注册页
│   │   └── error/            # 错误页
│   ├── layout/               # 布局组件
│   ├── router/               # 路由配置
│   ├── utils/                # 工具函数
│   │   ├── errorHandler.ts   # 全局错误处理
│   │   └── loadingManager.ts # 加载状态管理
│   ├── style/                # 全局样式
│   ├── App.vue               # 根组件
│   └── main.ts               # 入口文件
├── package.json              # 项目配置
├── vite.config.ts            # Vite配置
├── tsconfig.json             # TypeScript配置
└── 导航栏规划.md             # 导航结构规划
```

## 🧭 导航栏结构

### 📊 首页

- **路径**: `/dashboard`
- **功能**: 系统总体概览，显示关键指标和最近活动

### 👨‍🎓 学员中心

- **路径**: `/trainee`
- **说明**: 学员专用功能模块

#### 子页面：

├── 📈 **成长路径** (`/trainee/growth-path`)
│   └── 个人学习路径和能力发展轨迹
│
├── 📚 **课程中心** (`/trainee/course-center`)
│   ├── 浏览可用课程
│   ├── 进入学习
│   ├── 播课功能
│   ├── 与课程对话
│   ├── 动态考试
│   └── 专项陪练
│
├── 🤖 **陪练中心** (`/trainee/ai-practice-center`)
│   └── AI智能陪练功能
│
├── 📄 **成绩报告** (`/trainee/score-report`)
│   └── 个人成绩查看和分析
│
├── ❌ **错题分析** (`/trainee/mistakes`)
│   └── 个人错题统计和分析
│
└── 📋 **陪练记录** (`/trainee/practice-records`)
    ├── 查看所有陪练会话记录
    ├── 对话回放功能
    └── 点击具体记录可跳转到陪练分析报告

### 📊 数据分析

- **路径**: `/analysis`
- **说明**: 系统级数据分析功能

#### 子页面：

└── 📈 **统计分析** (`/analysis/statistics`)
    └── 系统整体数据统计和可视化分析

### 👨‍💼 管理者中心

- **路径**: `/manager`
- **说明**: 管理者专用功能模块

#### 子页面：

├── 📊 **团队看板** (`/manager/team-dashboard`)
│   └── 团队整体数据概览
│
├── 👥 **团队管理** (`/manager/team-management`)
│   └── 管理团队成员信息
│
├── 📝 **任务中心** (`/manager/assignment-center`)
│   └── 分配和管理学习任务
│
├── 📚 **课程管理** (`/manager/course-management`)
│   ├── 管理课程内容和结构
│   └── 📷 **课程头图上传管理** (新增功能)
│
├── 🛤️ **成长路径管理** (`/manager/growth-path-management`)
│   └── 设计和管理学习路径
│
└── 🎭 **陪练场景管理** (`/manager/practice-scene-management`)
    └── 管理AI陪练场景库

### 🔧 系统管理

- **路径**: `/admin`
- **说明**: 系统管理员专用功能

#### 子页面：

├── 📊 **管理员仪表盘** (`/admin/dashboard`)
│   └── 系统整体运营数据
│
├── 👤 **用户管理** (`/admin/user-management`)
│   └── 管理所有系统用户
│
├── 🏢 **岗位管理** (`/admin/position-management`)
│   └── 管理组织架构和岗位信息
│
└── 📋 **系统日志** (`/admin/logs`)
    └── 查看系统运行日志

### 👤 个人中心

- **路径**: `/user`
- **说明**: 个人账户相关功能

#### 子页面：

├── 👤 **个人信息** (`/user/profile`)
│   └── 管理个人资料和设置
│
└── ⚙️ **系统设置** (`/user/settings`)
    └── 个人偏好和系统配置

## 🚀 快速开始

### 环境要求

- Node.js >= 16.0.0
- npm >= 7.0.0

### 安装依赖

```bash
npm install
```

### 启动开发服务器

```bash
npm run dev
# 或使用启动脚本
./start.sh
```

访问地址：http://localhost:3001

### 构建生产版本

```bash
npm run build
```

### 预览生产版本

```bash
npm run preview
```

## 🎯 核心功能

### 🎓 学员功能

- **智能学习路径**: 个性化学习推荐
- **多媒体课程**: 支持视频、音频、文档等多种格式
- **AI智能陪练**: 真实场景模拟，智能反馈
- **动态考试系统**: 自适应难度调整
- **学习数据分析**: 详细的学习报告和进度跟踪

### 👨‍💼 管理者功能

- **团队数据看板**: 实时团队学习数据
- **课程内容管理**: 创建、编辑、发布课程
- **学习路径设计**: 为不同岗位设计学习路径
- **陪练场景配置**: 自定义AI陪练场景
- **学习任务分配**: 灵活的任务管理系统

### 🔧 系统管理功能

- **用户权限管理**: 多角色权限控制
- **组织架构管理**: 岗位和部门管理
- **系统监控**: 实时系统状态和日志
- **数据统计分析**: 全局数据洞察

## 🔧 技术亮点

### 🏗 架构设计

- **API层抽象**: 统一的接口调用和模拟数据管理
- **组件化开发**: 高度复用的组件设计
- **响应式设计**: 移动端友好的界面适配
- **模块化路由**: 按功能模块组织的路由结构

### 🛡 质量保障

- **TypeScript**: 完整的类型检查和智能提示
- **错误处理**: 全局错误捕获和用户友好提示
- **内存管理**: ECharts等组件的内存泄漏防护
- **加载状态**: 统一的加载状态管理

### 🎨 用户体验

- **平滑动画**: 页面切换和交互动画
- **智能搜索**: 多维度搜索和筛选
- **数据可视化**: 丰富的图表和统计展示
- **操作反馈**: 及时的操作结果反馈

## 📊 项目状态

### ✅ 已完成功能

- [X] 完整的导航系统和路由配置
- [X] 所有主要页面的开发和优化
- [X] API层抽象和模拟数据系统
- [X] 全局错误处理和加载状态管理
- [X] ECharts内存泄漏修复
- [X] 移动端响应式适配
- [X] 课程头图上传管理功能
- [X] 陪练记录页面和对话回放功能
- [X] TypeScript类型安全保障

### 🎯 核心页面

- **首页仪表盘**: 系统概览和快捷操作
- **学员中心**: 6个子页面，完整的学习体验
- **管理者中心**: 6个子页面，全面的管理功能
- **系统管理**: 4个子页面，系统级管理工具
- **数据分析**: 系统级统计分析
- **个人中心**: 个人信息和设置管理

### 🔄 最新更新

1. **修复页面异常**: 解决用户管理和岗位管理页面的数据加载问题
2. **完善课程头图管理**: 
   - 在卡片视图中添加hover显示的更换封面按钮
   - 在列表视图中添加封面预览列和管理功能
   - 提供完整的封面上传弹窗，支持预览和设置
3. **陪练记录系统**: 
   - 创建陪练记录页面作为分析报告入口
   - 支持完整对话回放功能
   - 提供统计概览和多维度筛选
   - 实现记录到报告的页面跳转逻辑
4. **导航结构优化**: 按照用户角色和使用频率重新组织导航结构

## 🎨 界面特点

- **设计风格**: 现代化扁平设计，白底配色方案
- **色彩搭配**: 主色调渐变紫色(#667eea → #764ba2)，辅助色彩丰富
- **交互体验**: 平滑过渡动画，智能hover效果
- **信息架构**: 卡片式布局，层次分明，信息密度适中

## 🔒 安全特性

- **权限控制**: 基于角色的页面访问控制
- **数据保护**: 敏感数据加密和安全传输
- **操作日志**: 完整的用户操作记录
- **错误监控**: 全局错误捕获和上报机制

## 📱 移动端支持

- **响应式导航**: 移动端侧边栏滑动交互
- **触摸优化**: 适配触摸操作的界面元素
- **性能优化**: 移动端专用的性能优化策略

## 🔧 开发配置

### 本地开发

- **端口**: 3001 (访问 `http://localhost:3001`)
- **热重载**: 支持代码修改后自动刷新
- **代理配置**: 已内置 `/api` 代理至 `http://localhost:8000`
- **模拟数据**: 通过环境变量控制，联调时关闭

#### 联调环境配置（重要）

1) 在项目根目录创建 `.env.development`（如不存在）：

```
VITE_APP_TITLE=考培练系统（开发）
VITE_APP_ENV=development
VITE_API_BASE_URL=http://localhost:8000
VITE_WS_BASE_URL=ws://localhost:8000
VITE_API_TIMEOUT=10000
VITE_USE_MOCK_DATA=false
VITE_ENABLE_MOCK=false
VITE_ENABLE_REQUEST_LOG=true
VITE_LOG_LEVEL=info
```

2) 启动前端：

```
npm run dev
```

3) 预期行为：
- 登录、课程、陪练、考试等接口均通过代理转发到 `http://localhost:8000`
- Network 面板可见真实接口如 `/api/v1/auth/login`，响应含 `access-control-allow-origin: http://localhost:3001`

### 代码规范

- **TypeScript**: 严格类型检查
- **组件规范**: Composition API + `<script setup>`
- **样式规范**: SCSS模块化组织
- **命名规范**: 统一的文件和变量命名

## 🚀 部署说明

### Docker部署

已提供 `Dockerfile` 与 `nginx.conf`：

1. 构建镜像：
```bash
docker build -t kaopeilian-frontend .
```
2. 运行容器：
```bash
docker run -p 8080:80 kaopeilian-frontend
```
3. 访问：`http://localhost:8080`

容器内 Nginx 已做 SPA 回退，并将 `/api/` 代理到宿主机 `http://localhost:8000/`。

### 环境变量

复制 `env.example` 为 `.env` 并按需修改：

- `VITE_API_BASE_URL`: API基础地址（默认 `/api`）
- `VITE_APP_TITLE`: 应用标题（用于设置页面 `<title>`）
- `VITE_APP_ENV`: 运行环境标记（可选）

## 📈 性能优化

- **代码分割**: 按路由自动分割代码包
- **懒加载**: 页面组件按需加载
- **资源优化**: 图片压缩和CDN加速
- **缓存策略**: 合理的浏览器缓存配置
