8.8 KiB
8.8 KiB
招聘门户系统开发总结
项目名称: 校园管理系统 - 招聘门户模块
开发时间: 2025-07-25
开发人员: weizzzz
系统状态: ✅ 前端完成,后端API待实现
📋 项目概述
1. 系统目标
基于南京大学招聘网站的设计理念,为校园管理系统开发一套完整的在线招聘门户,实现:
- 招聘信息展示 - 美观的岗位信息展示页面
- 在线应聘系统 - 完整的应聘表单和简历上传
- 数据库集成 - 与现有招聘管理系统数据同步
- 用户体验优化 - 现代化的UI设计和交互体验
2. 技术架构
- 前端框架: Vue 3.x + TypeScript
- UI组件库: Element Plus
- 样式处理: SCSS + 响应式设计
- 路由管理: Vue Router
- 状态管理: Vue 3 Composition API
- API通信: Axios + 统一请求封装
🎯 完成功能
1. 招聘门户页面 (/recruitment-portal)
文件位置: web/src/views/rs/recruitment-portal.vue
核心功能
- ✅ 岗位列表展示 - 从数据库实时获取岗位信息
- ✅ 多视图模式 - 支持列表视图和卡片视图切换
- ✅ 智能搜索 - 按岗位名称、部门筛选
- ✅ 岗位详情 - 弹窗展示详细信息
- ✅ 状态管理 - 自动识别岗位启用/停用状态
- ✅ 浏览统计 - 点击查看自动增加浏览次数
页面特色
- 渐变背景 - 现代化的蓝紫色渐变设计
- 卡片布局 - 清晰的内容分区和层次
- 响应式设计 - 完美适配桌面端和移动端
- 交互动画 - 悬停效果和状态反馈
数据集成
// 真实数据获取
const getJobList = async () => {
const response = await listJob(queryParams);
jobList.value = response.rows || [];
total.value = response.total || 0;
};
// 动态部门选项
const updateDepartmentOptions = () => {
const departments = [...new Set(jobList.value.map(job => job.department))];
departmentOptions.value = departments.map(dept => ({
label: dept, value: dept
}));
};
2. 在线应聘页面 (/recruitment-apply)
文件位置: web/src/views/rs/recruitment-apply.vue
核心功能
- ✅ 岗位信息展示 - 显示应聘岗位的详细信息
- ✅ 完整应聘表单 - 收集个人信息和简历
- ✅ 简历上传 - 支持PDF、Word格式,拖拽上传
- ✅ 表单验证 - 完整的前端验证规则
- ✅ 提交流程 - 应聘申请提交和成功反馈
表单字段
interface ApplicationForm {
jobId: string | number;
applicantName: string; // 姓名
gender: string; // 性别
contactPhone: string; // 联系电话
contactEmail: string; // 邮箱地址
age: number; // 年龄
education: string; // 教育背景
experience: string; // 工作经验
selfDescription: string; // 自我介绍
resumePath: string; // 简历路径
remark?: string; // 其他说明
}
文件上传功能
- 支持格式: PDF、Word文档
- 文件大小: 最大10MB
- 上传方式: 拖拽上传或点击选择
- 安全验证: 文件类型和大小校验
3. API接口设计
文件位置: web/src/api/rs/application.ts
新增接口
// 提交应聘申请
export function submitJobApplication(data: ApplicationForm) {
return request({
url: '/rs/application/submit',
method: 'post',
data: data
});
}
// 增加岗位浏览次数
export function incrementJobViewCount(jobId: string | number) {
return request({
url: `/rs/job/view/${jobId}`,
method: 'post'
});
}
4. 路由配置
文件位置: web/src/router/index.ts
新增路由
// 招聘门户页面(独立路由,不需要权限)
{
path: '/recruitment-portal',
component: () => import('@/views/rs/recruitment-portal.vue'),
name: 'RecruitmentPortal',
meta: { title: '招聘公告', icon: 'job' }
},
{
path: '/recruitment-apply',
component: () => import('@/views/rs/recruitment-apply.vue'),
name: 'RecruitmentApply',
meta: { title: '在线应聘', icon: 'edit' }
}
🔄 数据流程
1. 岗位发布到展示流程
graph LR
A[管理员在招聘管理中新增岗位] --> B[设置岗位状态为启用]
B --> C[岗位出现在招聘门户]
C --> D[应聘者可以查看和应聘]
2. 应聘流程
graph TD
A[访问招聘门户] --> B[浏览岗位列表]
B --> C[查看岗位详情]
C --> D[点击立即应聘]
D --> E[填写应聘表单]
E --> F[上传简历文件]
F --> G[提交应聘申请]
G --> H[显示成功提示]
3. 数据同步机制
- 实时获取: 每次访问门户页面都从数据库获取最新岗位
- 状态过滤: 只显示
isActive=0的启用岗位 - 动态更新: 部门选项和统计数据实时更新
🎨 UI/UX设计
1. 视觉设计
- 配色方案: 蓝紫渐变 + 白色卡片
- 字体层次: 清晰的标题和内容层次
- 图标系统: Element Plus 图标库
- 状态标签: 色彩编码的岗位状态
2. 交互设计
- 悬停效果: 卡片悬停动画
- 点击反馈: 按钮状态变化
- 加载状态: 数据加载提示
- 错误处理: 友好的错误提示
3. 响应式设计
// 桌面端
@media (min-width: 769px) {
.portal-container {
display: flex;
gap: 30px;
}
}
// 移动端
@media (max-width: 768px) {
.portal-container {
flex-direction: column;
padding: 20px 15px;
}
}
📊 技术特点
1. 现代化技术栈
- Vue 3 Composition API - 更好的逻辑复用和代码组织
- TypeScript - 类型安全和开发体验
- SCSS - 强大的样式预处理
- Element Plus - 企业级UI组件
2. 代码质量
- 组件化开发 - 可复用的UI组件
- 类型定义 - 完整的TypeScript类型
- 错误处理 - 完善的异常捕获
- 代码规范 - 统一的编码风格
3. 性能优化
- 懒加载 - 路由和组件按需加载
- 缓存策略 - 合理的数据缓存
- 分页设计 - 大数据量的分页处理
🚧 待完成工作
1. 后端API实现
需要实现的接口
POST /rs/job/view/{jobId} # 增加岗位浏览次数
POST /rs/application/submit # 提交应聘申请
POST /common/upload # 文件上传接口
数据库表设计
-- 应聘申请表
CREATE TABLE rs_application (
application_id BIGINT PRIMARY KEY,
job_id BIGINT NOT NULL,
applicant_name VARCHAR(50) NOT NULL,
gender VARCHAR(10),
contact_phone VARCHAR(20),
contact_email VARCHAR(100),
age INT,
education VARCHAR(50),
experience TEXT,
self_description TEXT,
resume_path VARCHAR(500),
status VARCHAR(20) DEFAULT 'pending',
apply_time DATETIME DEFAULT CURRENT_TIMESTAMP,
remark TEXT,
create_by BIGINT,
create_time DATETIME,
update_by BIGINT,
update_time DATETIME,
deleted INT DEFAULT 0
);
2. 功能完善
- 应聘状态管理 - 申请状态跟踪
- 邮件通知 - 应聘成功通知
- 简历预览 - 在线简历查看
- 数据统计 - 应聘数据分析
🌟 项目亮点
1. 设计参考专业招聘网站
基于南京大学招聘网站的设计理念,确保专业性和用户体验
2. 完整的应聘流程
从岗位浏览到简历提交的完整闭环
3. 现代化的技术实现
使用最新的前端技术栈,确保代码质量和维护性
4. 响应式设计
完美适配各种设备,提供一致的用户体验
📱 访问地址
1. 开发环境
- 招聘门户:
http://localhost:81/recruitment-portal - 在线应聘:
http://localhost:81/recruitment-apply?jobId=[岗位ID]
2. 功能入口
- 可以作为独立网站访问
- 可以集成到现有系统菜单
- 支持外部链接分享
📈 后续规划
1. 短期目标(1-2周)
- 完成后端API实现
- 完善错误处理机制
- 添加应聘状态跟踪
2. 中期目标(1个月)
- 优化搜索功能
- 添加数据统计报表
- 完善权限管理
3. 长期目标(3个月)
- 移动端专用版本
- 智能简历匹配
- 面试管理功能
📄 相关文档
1. 开发记录
docs/变更管理/code-adjust-record-2025-07-25-weizzzz-recruitment-portal-creation.mddocs/变更管理/code-adjust-record-2025-07-25-weizzzz-recruitment-portal-database-integration.md
2. 技术文档
web/src/views/rs/recruitment-portal.vue- 招聘门户页面web/src/views/rs/recruitment-apply.vue- 在线应聘页面web/src/api/rs/application.ts- 应聘相关API
3. 配置文件
web/src/router/index.ts- 路由配置
开发总结: 招聘门户系统前端开发已完成,具备完整的岗位展示和在线应聘功能,设计专业、用户体验良好。后续需要完善后端API支持,即可投入使用。