# 敏龙面试小程序 (Minlong Interview Mini Program) 这是一个基于 uni-app 框架开发的跨平台面试系统应用,支持 iOS、Android 和微信小程序等多个平台。 ## 项目简介 本项目是一个完整的面试管理平台,提供从面试报名、身份验证、视频录制到简历评估等全流程功能。 ## 技术栈 - **框架**: uni-app - **Vue 版本**: Vue 3 - **开发语言**: JavaScript - **UI 框架**: uni-ui 组件库 ## 项目结构 ``` interview_uni/ ├── api/ # API 接口定义 │ ├── index.js # 通用接口 │ └── user.js # 用户相关接口 ├── common/ # 公共配置 │ ├── config.js # 配置文件 │ └── faceunity/ # 面容SDK相关 ├── components/ # 组件 │ └── voice-check-modal.vue # 语音检查弹窗 ├── composables/ # Vue 3 Composition API │ └── useUserApi.js # 用户API组合式函数 ├── docs/ # 文档目录 ├── pages/ # 页面文件 │ ├── index/ # 首页/面试报名 │ ├── login/ # 登录页 │ ├── identity-verify/ # 身份验证 │ ├── face-photo/ # 人脸照片拍摄 │ ├── camera/ # 相机功能 │ ├── posture-guide/ # 体态评估指导 │ ├── interview/ # 手部照片采集 │ ├── interview-question/# 面试问题 │ ├── ResumeEvaluation/ # 简历评估 │ ├── my/ # 个人中心 │ ├── Personal/ # 个人信息 │ ├── job-detail/ # 职位详情 │ └── ... # 其他功能页面 ├── services/ # 服务层 │ └── ApiService.js # API服务 ├── utils/ # 工具函数 │ ├── request.js # 请求封装 │ └── errorHandler.js # 错误处理 ├── static/ # 静态资源 ├── pages.json # 页面配置 └── manifest.json # 应用配置 ``` ## 主要功能模块 ### 1. 用户系统 - 用户登录/注册 - 身份验证 - 个人信息管理 ### 2. 面试流程 - 面试报名 - 面试注意事项查看 - 身份验证 - 人脸照片拍摄 - 体态评估指导(手部姿势指导) - 手部照片采集 - 面试问题录制 - 简历上传与评估 ### 3. 核心功能 - **身份验证**: 人脸识别验证 - **体态评估**: 指导用户完成手部姿势拍摄 - **视频录制**: 面试视频录制功能 - **简历管理**: 简历上传、预览和评估 ## 页面说明 ### 主要页面 | 页面路径 | 说明 | 导航栏标题 | |---------|------|-----------| | `pages/index/index` | 首页/面试报名 | 面试报名 | | `pages/login/login` | 用户登录 | 登录 | | `pages/identity-verify/identity-verify` | 身份验证 | - | | `pages/face-photo/face-photo` | 人脸照片拍摄 | 拍摄照片 | | `pages/posture-guide/posture-guide` | 体态评估指导 | 体态评估指导 | | `pages/interview/interview` | 手部照片采集 | 手部照片采集 | | `pages/interview-question/interview-question` | 面试问题 | - | | `pages/ResumeEvaluation/ResumeEvaluation` | 简历评估 | - | | `pages/my/my` | 个人中心 | 我的 | | `pages/Personal/Personal` | 个人信息 | - | | `pages/job-detail/job-detail` | 职位详情 | - | | `pages/interview-notice/interview-notice` | 面试注意事项 | 面试注意事项 | | `pages/video-briefing/video-briefing` | 宣讲视频 | 宣讲视频 | | `pages/interview_retake/interview_retake` | 体态照片补拍 | 体态照片补拍 | ### 页面流程 ``` 登录 → 身份验证 → 人脸拍摄 → 体态指导 → 手部采集 → 面试问题 → 完成 ↓ 首页(职位列表) → 职位详情 → 申请职位 → 简历上传 ↓ 个人中心 → 个人信息 → 我的申请 ``` 详细的页面文档: - [体态评估指导页面](./docs/posture-guide.md) ## 开发指南 详细的开发指南请参考:[开发指南](./docs/development.md) ### 快速开始 #### 环境要求 - Node.js >= 12 - HBuilderX 或 Visual Studio Code - uni-app 开发环境 - 微信开发者工具(开发小程序时) #### 安装依赖 ```bash npm install # 或 yarn install ``` #### 运行项目 ```bash # H5 开发 npm run dev:h5 # 访问 http://localhost:8080 # 微信小程序开发 npm run dev:mp-weixin # 在微信开发者工具中打开 # App 开发(需在 HBuilderX 中运行) npm run dev:app-plus ``` #### 构建项目 ```bash # 构建 H5 npm run build:h5 # 构建微信小程序 npm run build:mp-weixin # 构建 App npm run build:app-plus ``` ## 配置说明 ### manifest.json - 应用基本信息配置 - Android/iOS 打包配置 - 微信小程序配置(AppID: wxc9655eeaa3223b75) - 权限配置(相机、麦克风等) ### pages.json - 页面路由配置 - 导航栏设置 - TabBar 配置 ## API 接口 ### 接口文档 详细的 API 文档请参考:[API 文档](./docs/api.md) ### 快速开始 ```javascript // 导入 API 方法 import { wxLogin, getUserInfo } from '@/api/user.js'; // 使用 API const result = await wxLogin({ code: 'code', userInfo: {} }); ``` ### 接口模块 #### 用户相关接口 - `wxLogin()` - 微信登录 - `getUserInfo()` - 获取用户信息 - `getUserPhoneNumber()` - 获取手机号 - `updateUserInfo()` - 更新用户信息 - `uploadAvatar()` - 上传头像 - `logout()` - 退出登录 - `fillUserInfo()` - 填写用户信息 #### 职位相关接口 - `getJobList()` - 获取职位列表 - `applyJob()` - 申请职位 - `getApplicationDetail()` - 获取申请详情 #### 面试相关接口 - `getInterviewList()` - 获取面试列表 - `getInterviewDetail()` - 获取面试详情 - `submitAnswer()` - 提交答案 - `getQuestions()` - 获取问题列表 #### 文件上传接口 - `uploadPhoto()` - 上传照片 ### 请求配置 - **基础URL**: `https://backend.qicai321.com` - **超时时间**: 60秒 - **认证方式**: Bearer Token + CSRF Token - **数据格式**: JSON 详细的接口文档、参数说明和示例代码请查看 [API 文档](./docs/api.md)。 ## 注意事项 ### 开发注意事项 1. **权限要求**: 需要获取相机、麦克风等权限 - Android 端需要在 manifest.json 中配置权限 - iOS 端需要配置 info.plist - 小程序需要在小程序后台配置权限 2. **网络配置**: 确保 API 接口地址正确配置 - 修改 `common/config.js` 中的 `apiBaseUrl` - 注意区分测试和生产环境 3. **平台差异**: 不同平台可能存在一些差异,注意测试 - H5/小程序/App 的 API 可能有差异 - 使用 `#ifdef` 条件编译处理平台差异 4. **图片资源**: 部分图片资源存储在 CDN 上 - CDN 地址: `https://data.qicai321.com/minlong/` - 注意网络加载状态处理 5. **Token 管理**: - Token 存储在本地存储 - 注意处理 token 过期情况 - 使用 CSRF token 防止跨站请求伪造 6. **错误处理**: - 所有请求都包含统一的错误处理 - 特殊错误码 (999) 需要手动处理 - 注意避免重复的错误提示 7. **并发控制**: - 某些接口有防重入保护 - 注意处理并发请求的情况 ### 调试技巧 1. **开启调试**: 在 HBuilderX 中开启调试模式 2. **查看日志**: 使用 `console.log` 输出调试信息 3. **网络抓包**: 使用 Charles/Fiddler 抓包分析 4. **真机调试**: 注意真机与模拟器的差异 ## 版本信息 - 版本号: 1.0.0 - 版本代码: 100 ## 开发团队 面试系统开发团队 ## License [MIT License] --- ## 详细文档 ### 功能文档 - [体态评估指导页面](./docs/posture-guide.md) - 手部照片拍摄指导页面详细说明 ### 技术文档 - [API 文档](./docs/api.md) - 完整的 API 接口文档,包含所有接口的详细说明、参数和示例 - [开发指南](./docs/development.md) - 开发环境搭建、开发流程、调试技巧和常见问题 ### 快速链接 - [快速开始](#开发指南) - [API 使用](#api-接口) - [页面说明](#页面说明) - [常见问题](#注意事项)