# 教室预订管理系统 - 开发说明

## 项目概述

基于 Vben Admin 框架开发的教室预订管理系统后台，使用 Vue 3 + TypeScript + Ant Design Vue 构建。

## 已完成功能

### 1. API 配置
- ✅ 配置 API 基础 URL: `https://xz.dhdjy.com`
- ✅ 支持 Session 认证（通过 Cookie）
- ✅ 响应格式适配（code: 200 表示成功）

### 2. API 接口定义
已创建所有 API 接口定义，包括：
- ✅ 登录相关（登录、获取管理员信息、退出登录）
- ✅ 首页相关（获取系统信息）
- ✅ 个人信息（获取、更新、修改密码）
- ✅ 教室管理（列表、详情、新增、编辑、删除、批量删除、座位布局等）
- ✅ 预订管理（列表、同意/拒绝申请）
- ✅ 学生管理（列表、详情、新增、编辑、删除、状态更新、导入等）
- ✅ 班级管理（列表、新增、编辑、删除）
- ✅ 教师管理（列表、详情、新增、编辑、删除）
- ✅ 用户管理（列表、详情、新增、编辑、删除、状态更新）
- ✅ 学校管理（列表、详情、新增、编辑、删除、账号管理）
- ✅ 系统设置（获取、保存、上传图片）
- ✅ 通用功能（获取必应壁纸）

### 3. 路由配置
已创建所有模块的路由配置：
- ✅ 教室管理路由
- ✅ 预订管理路由
- ✅ 学生管理路由
- ✅ 班级管理路由
- ✅ 教师管理路由
- ✅ 用户管理路由（仅超级管理员）
- ✅ 学校管理路由（仅超级管理员）
- ✅ 系统设置路由（仅超级管理员）

### 4. 页面组件
已创建核心页面组件：
- ✅ 教室管理列表页
- ✅ 教室管理详情/编辑页
- ✅ 学生管理列表页
- ✅ 学生管理详情/编辑页
- ✅ 预订管理列表页
- ✅ 班级管理列表页
- ✅ 教师管理列表页
- ✅ 教师管理详情/编辑页
- ✅ 用户管理列表页
- ✅ 学校管理列表页
- ✅ 学校管理详情/编辑页
- ✅ 系统设置页
- ✅ 首页（系统概览）

### 5. 国际化
- ✅ 已添加所有页面的中文翻译

### 6. 登录页面
- ✅ 已更新登录页面以适配新的 API 接口

## 项目结构

```
apps/web-antd/
├── src/
│   ├── api/
│   │   ├── admin/          # 后台管理 API
│   │   │   ├── classroom.ts
│   │   │   ├── booking.ts
│   │   │   ├── student.ts
│   │   │   ├── class.ts
│   │   │   ├── teacher.ts
│   │   │   ├── user.ts
│   │   │   ├── school.ts
│   │   │   ├── setting.ts
│   │   │   ├── profile.ts
│   │   │   ├── common.ts
│   │   │   └── index-page.ts
│   │   ├── core/           # 核心 API（登录、用户信息等）
│   │   └── request.ts      # 请求配置
│   ├── router/
│   │   └── routes/
│   │       └── modules/    # 路由模块
│   ├── views/              # 页面组件
│   │   ├── classroom/
│   │   ├── booking/
│   │   ├── student/
│   │   ├── class/
│   │   ├── teacher/
│   │   ├── user/
│   │   ├── school/
│   │   ├── setting/
│   │   └── dashboard/
│   └── locales/
│       └── langs/
│           └── zh-CN/
│               └── page.json
```

## 环境配置

需要在 `apps/web-antd/` 目录下创建 `.env` 和 `.env.development` 文件：

### .env
```bash
VITE_APP_TITLE=教室预订管理系统
VITE_APP_NAMESPACE=booking-admin
```

### .env.development
```bash
VITE_PORT=5555
VITE_BASE=/super/
VITE_GLOB_API_URL=https://xuanzuo.dhdjy.com
VITE_NITRO_MOCK=false
VITE_DEVTOOLS=true
VITE_INJECT_APP_LOADING=true
```

### .env.production
```bash
VITE_BASE=/super/
VITE_GLOB_API_URL=https://xuanzuo.dhdjy.com
VITE_COMPRESS=gzip
VITE_PWA=false
VITE_ROUTER_HISTORY=hash
VITE_INJECT_APP_LOADING=true
VITE_ARCHIVER=true
```

## 启动项目

```bash
# 安装依赖（如果还没有安装）
pnpm install

# 启动开发服务器
pnpm dev:antd

# 构建生产版本
pnpm build:antd
```

## 注意事项

1. **API 响应格式**: 根据 API.md，成功响应 code 为 200，已配置在 `request.ts` 中
2. **Session 认证**: 使用 Session 认证，请求会自动携带 Cookie（通过 `withCredentials: true`）
3. **分页格式**: API 返回的分页数据格式为 layui table 格式（code, msg, count, data）
4. **权限控制**: 用户管理和学校管理模块仅超级管理员可见（通过路由 meta.roles 控制）

## 待完善功能

1. 教室座位布局可视化编辑
2. 学生导入 Excel 功能
3. 预订详情页面
4. 更多数据统计和图表展示
5. 文件上传功能完善
6. 表单验证规则完善
7. 错误处理优化

## API 接口说明

所有 API 接口定义在 `apps/web-antd/src/api/admin/` 目录下，接口路径和参数完全按照 `API.md` 文档实现。

## 开发建议

1. 根据实际 API 返回的数据结构调整页面显示
2. 完善表单验证规则
3. 添加更多的错误处理和用户提示
4. 优化页面加载性能
5. 添加数据缓存机制

