# 少儿智慧阅读平台 - 前端

Vue 3 + TypeScript + Vite + Ant Design Vue

## 重要提醒（必读）

### 🚨 接口变更后必须执行的步骤

当后端修改了 API 接口后，**必须**执行以下步骤：

```bash
# 1. 拉取最新代码
git pull

# 2. 更新 API 规范并重新生成类型代码
npm run api:update

# 3. 检查生成的文件
git status
# 应该看到 api-spec.yml 和 src/api/generated/ 下的文件有变化

# 4. 提交所有改动
git add api-spec.yml src/api/generated/
git commit -m "chore(api): 同步最新接口规范"
git push
```

### ⚠️ 如果跳过这一步会发生什么？

- TypeScript 编译报错（类型不匹配）
- 代码中会出现红色波浪线
- CI 检查无法通过

### 🔍 如何确认接口是否有变更？

```bash
# 查看最近提交
git log --oneline -10

# 查看 api-spec.yml 是否有未提交的改动
git diff api-spec.yml

# 查看生成的文件是否与远程一致
git status src/api/generated/
```

## 本地开发

### 环境要求

- Node.js 18+
- npm 9+

### 安装依赖

```bash
npm install
```

### 启动开发服务器

```bash
npm run dev
```

访问：http://localhost:5173

## 构建生产版本

```bash
npm run build
```

## API 相关命令

| 命令 | 说明 |
|------|------|
| `npm run dev` | 启动开发服务器 |
| `npm run build` | 构建生产版本 |
| `npm run api:fetch` | 从后端拉取最新 API 规范 (api-spec.json) |
| `npm run api:gen` | 根据规范生成 TypeScript 代码 |
| `npm run api:update` | **拉取 + 生成**（后端改接口后必须执行） |

## 项目结构

```
reading-platform-frontend/
├── src/
│   ├── views/        # 页面组件
│   │   ├── admin/    # 超管功能
│   │   ├── school/   # 学校管理
│   │   ├── teacher/  # 教师功能
│   │   └── parent/   # 家长功能
│   ├── api/
│   │   ├── generated/  # ⚠️ 自动生成，不要手动修改
│   │   └── index.ts    # axios 实例
│   └── stores/       # Pinia 状态管理
├── api-spec.yml      # ⚠️ OpenAPI 规范（后端更新后提交）
└── orval.config.ts   # API 代码生成配置
```

## 注意事项

1. **不要手动修改** `src/api/generated/` 下的文件
2. **不要提交** 修改后的 `api-spec.yml` 但不提交 `generated/`
3. 每次开始工作前先执行 `git pull && npm run api:update`
4. 提交代码前使用 `git status` 检查是否有多余/遗漏的文件

## 常见问题

**Q：运行 `npm run api:update` 报错？**
- 确认后端正在运行：http://8.148.151.56:3002
- 或者直接 `git pull` 使用已提交的规范，运行 `npm run api:gen`

**Q：TypeScript 报错类型不匹配？**
- 说明后端接口有变化
- 执行 `npm run api:update` 重新生成类型

**Q：想查看某个接口的详细参数？**
- 打开 `src/api/generated/api.ts` 查看
- 或访问 http://8.148.151.56:3002/doc.html
