# 面试管理系统 - 项目说明文档

## 📋 项目概述

本系统是一个基于 **Django-Vue3-Admin** 框架开发的面试管理系统，旨在为企业提供完整的在线面试解决方案。系统支持职位管理、简历筛选、在线面试、AI面试、数字人面试等多种功能。

## 🎯 核心功能模块

### 1. 职位管理模块 (`/src/views/position/`)
- **职位列表管理**：职位信息CRUD、批量状态管理、标签管理
- **职位详情管理**：职位完整信息配置
- **职位能力匹配**：职位与能力的关联管理
- **职位创建向导**：引导式职位创建流程

### 2. 题库管理模块 (`/src/views/questionBank/`)
- **题库分类管理**：题目分类维护
- **标签管理**：题目标签体系
- **题目管理**：支持多种题型（选择题、填空题、问答题等）
- **批量操作**：批量分类、标签管理
- **评分标准**：自定义评分规则

### 3. 人才管理模块 (`/src/views/talent/`)
- **人才库**：候选人信息管理
- **海外人才管理**：国际化人才管理
- **标签管理**：人才标签体系
- **简历筛选**：智能简历筛选功能

### 4. 求职申请管理 (`/src/views/JobApplication/`)
- **申请列表**：所有求职申请记录
- **申请状态跟踪**：申请流程状态管理
- **批量状态修改**：批量处理申请
- **短信通知**：申请状态变更通知
- **报告查看**：面试报告查看

### 5. 数字人面试模块 (`/src/views/digitalHuman/`)
- **数字人面试**：基于AI的数字人面试功能
- **面试配置**：数字人面试参数设置
- **详情查看**：面试过程记录

### 6. 系统管理模块 (`/src/views/system/`)
- **用户管理**：系统用户管理
- **角色权限**：RBAC权限管理
- **菜单管理**：动态菜单配置
- **部门管理**：组织架构管理
- **字典管理**：系统字典维护
- **地区管理**：省市县数据管理
- **文件管理**：文件上传管理
- **操作日志**：系统操作日志记录
- **登录日志**：用户登录记录

## 🏗️ 技术架构

### 前端技术栈
- **框架**：Vue 3.4.38 + TypeScript
- **UI组件库**：Element Plus 2.8.0
- **状态管理**：Pinia 2.0.28
- **路由**：Vue Router 4.4.3
- **构建工具**：Vite 5.4.1
- **CRUD组件**：FastCRUD 1.21.2
- **国际化**：Vue I18n 9.14.0
- **富文本编辑器**：WangEditor 5.1.23
- **图表**：ECharts 5.6.0
- **表格**：VXE Table 4.6.18

### 项目结构
```
src/
├── api/                 # API接口定义
├── assets/              # 静态资源
│   ├── iconfont/        # 图标字体
│   ├── img/             # 图片资源
│   └── style/           # 样式文件
├── components/           # 公共组件
│   ├── auth/            # 权限组件
│   ├── editor/          # 富文本编辑器
│   ├── fileSelector/    # 文件选择器
│   ├── iconSelector/    # 图标选择器
│   ├── table/           # 表格组件
│   └── ...
├── stores/              # Pinia状态管理
├── views/               # 页面视图
│   ├── position/        # 职位管理
│   ├── questionBank/    # 题库管理
│   ├── talent/          # 人才管理
│   ├── JobApplication/  # 求职申请
│   ├── digitalHuman/    # 数字人面试
│   └── system/          # 系统管理
├── router/              # 路由配置
├── utils/               # 工具函数
├── i18n/                # 国际化
└── plugin/              # 插件
```

## 🚀 快速开始

### 环境要求
- Node.js >= 16.0.0
- npm >= 7.0.0
- 现代浏览器（Chrome, Firefox, Safari, Edge）

### 安装步骤

1. **安装依赖**
```bash
npm install
```

2. **开发模式启动**
```bash
npm run dev
```

3. **生产环境构建**
```bash
npm run build
```

### 配置说明

- **开发环境配置**：`.env.development` 文件
- **生产环境配置**：`.env.production` 文件
- **本地生产配置**：`.env.local_prod` 文件

主要配置项：
- `VITE_PORT`：开发服务器端口（默认：8080）
- `VITE_PUBLIC_PATH`：生产环境公共路径
- `VITE_API_URL`：后端API地址

## 📁 核心业务说明

### 1. 职位配置自动创建功能
系统会自动为职位创建默认配置，无需手动操作。详情见 [CONFIG_AUTO_CREATE_SUMMARY.md](./CONFIG_AUTO_CREATE_SUMMARY.md)

**使用场景**：
- 创建新职位时，系统自动初始化面试配置
- 心理测试、色盲测试等开关默认关闭
- 数字人面试功能可单独配置

### 2. 字段配置本地缓存功能
职位详情页的字段配置会自动缓存在本地，有效期7天。详情见 [FIELD_CONFIG_CACHE_README.md](./FIELD_CONFIG_CACHE_README.md)

**使用场景**：
- 用户自定义字段显示偏好
- 提高操作效率，减少重复配置
- 跨浏览器数据隔离

### 3. 权限管理
- **按钮权限**：精确到按钮级别的权限控制
- **字段权限**：精确到字段级别的权限控制
- **数据权限**：支持按部门、角色划分数据访问范围

**权限体系**：
- 菜单权限：控制页面访问
- 按钮权限：控制操作按钮显示
- 接口权限：控制API调用
- 字段权限：控制字段可见性
- 数据权限：控制数据范围

### 4. 文件上传
- 支持多种文件格式（图片、文档、视频等）
- 自动压缩和预览
- 文件管理后台
- 支持断点续传（大文件）

### 5. 智能筛选功能
- **人才筛选**：根据条件自动筛选匹配人才
- **简历分析**：AI智能解析简历内容
- **能力匹配**：职位与人才能力自动匹配

### 6. 面试流程管理
- **多轮面试**：支持多轮次面试流程
- **状态跟踪**：实时跟踪申请状态
- **自动通知**：邮件、短信自动通知
- **面试报告**：自动生成面试报告

## 🛠️ 开发规范

### 代码规范
- 使用 TypeScript 进行类型检查
- 遵循 Vue 3 Composition API 规范
- 使用 ESLint 进行代码检查

### 提交规范
```bash
git commit -m "feat: 添加新功能"
git commit -m "fix: 修复bug"
git commit -m "docs: 更新文档"
git commit -m "style: 代码格式调整"
git commit -m "refactor: 代码重构"
```

### 命名规范
- **组件名**：使用 PascalCase（如 `UserManagement.vue`）
- **文件名**：使用 kebab-case（如 `user-info.vue`）
- **变量/函数名**：使用 camelCase（如 `getUserInfo`）
- **常量**：使用 UPPER_SNAKE_CASE（如 `API_BASE_URL`）

## 📝 常用功能

### FastCRUD 配置
系统使用 FastCRUD 作为表格组件，统一配置在 `src/settings.ts` 文件中，包括：
- 接口请求/响应转换
- 文件上传配置
- 富文本编辑器配置
- 字典数据获取

### 国际化
系统支持多语言切换，语言文件在 `src/i18n/lang/` 目录下：
- 中文简体（zh-cn.ts）
- 中文繁体（zh-tw.ts）
- 英文（en.ts）

### 主题配置
- 支持亮色/暗色主题切换
- 主题配置在 `src/stores/themeConfig.ts` 中

## 🔧 故障排查

### 常见问题

1. **启动报错**
   - 检查 Node.js 版本是否符合要求
   - 删除 `node_modules` 和 `package-lock.json`，重新安装

2. **接口请求失败**
   - 检查后端服务是否启动
   - 检查 `VITE_API_URL` 配置是否正确

3. **页面空白**
   - 检查浏览器控制台错误信息
   - 清除浏览器缓存
   - 检查路由配置

4. **样式不生效**
   - 检查 Tailwind CSS 配置
   - 检查 Element Plus 样式导入

## 📚 相关文档

- [FastCRUD 官方文档](http://fast-crud.docmirror.cn/)
- [Vue 3 官方文档](https://cn.vuejs.org/)
- [Element Plus 官方文档](https://element-plus.org/zh-CN/)
- [Django-Vue3-Admin 官方文档](https://www.django-vue-admin.com)

## 📄 许可证

MIT License

## 👥 贡献指南

1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request

## 📞 联系方式

- 项目地址：[Gitee](https://gitee.com/huge-dream/django-vue3-admin)
- 在线演示：[https://demo.dvadmin.com](https://demo.dvadmin.com)
- 官方文档：[https://www.django-vue-admin.com](https://www.django-vue-admin.com)

---

**版本信息**：v3.0.4  
**更新日期**：2024

