diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/JcbtWorkStudyApplicationController.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/JcbtWorkStudyApplicationController.java index 286cbd5e..35662e1e 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/JcbtWorkStudyApplicationController.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/JcbtWorkStudyApplicationController.java @@ -347,4 +347,17 @@ public class JcbtWorkStudyApplicationController extends BaseController { } } + /** + * 获取学生已申请岗位列表 + */ + @Operation(summary = "获取学生已申请岗位列表") + @GetMapping("/student/applicationStatus") + @SaCheckPermission("jcbt:workStudyApplication:query") + public R>> getStudentApplicationStatus() { + + List> statusList = workStudyApplicationService.getStudentApplicationStatus(); + return R.ok(statusList); + + } + } diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/JcbtWorkStudyPositionController.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/JcbtWorkStudyPositionController.java index 46642275..9911de77 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/JcbtWorkStudyPositionController.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/controller/JcbtWorkStudyPositionController.java @@ -416,10 +416,64 @@ public class JcbtWorkStudyPositionController extends BaseController { /** * 获取当前用户所在学院ID - * TODO: 实现获取当前用户学院ID的逻辑 + * 通过查询学生信息或用户部门信息获取 */ private Long getCurrentUserCollegeId() { - // 临时返回固定值,实际应该从用户信息中获取 - return 1L; + try { + // 获取当前登录用户ID + Long userId = LoginHelper.getUserId(); + if (userId == null) { + log.warn("用户未登录"); + return null; + } + + // 首先尝试通过学生信息获取学院ID + try { + XgStudentMsgVo studentInfo = xgStudentMsgService.queryByUserId(userId); + if (studentInfo != null && studentInfo.getCollegeId() != null) { + log.debug("通过学生信息获取学院ID: {}", studentInfo.getCollegeId()); + return Long.parseLong(studentInfo.getCollegeId()); + } + } catch (Exception e) { + log.debug("通过学生信息获取学院ID失败,可能用户不是学生: {}", e.getMessage()); + } + + // 如果不是学生用户,通过用户部门信息获取学院ID + try { + Long deptId = LoginHelper.getDeptId(); + if (deptId != null) { + log.debug("通过部门信息获取学院ID: {}", deptId); + return deptId; + } + } catch (Exception e) { + log.debug("通过部门信息获取学院ID失败: {}", e.getMessage()); + } + + // 尝试通过部门类别获取学院信息 + try { + String deptCategory = LoginHelper.getDeptCategory(); + String deptName = LoginHelper.getDeptName(); + log.debug("用户部门信息 - 部门名称: {}, 部门类别: {}", deptName, deptCategory); + + // 如果部门类别是学院类型,则使用部门ID作为学院ID + if ("college".equals(deptCategory) || "学院".equals(deptCategory)) { + Long deptId = LoginHelper.getDeptId(); + if (deptId != null) { + log.info("根据部门类别确认为学院用户,学院ID: {}", deptId); + return deptId; + } + } + } catch (Exception e) { + log.debug("通过部门类别获取学院ID失败: {}", e.getMessage()); + } + + log.warn("无法获取用户 {} 的学院信息,用户ID: {}, 部门ID: {}, 部门名称: {}", + userId, userId, LoginHelper.getDeptId(), LoginHelper.getDeptName()); + return null; + + } catch (Exception e) { + log.error("获取当前用户学院ID失败", e); + return null; + } } } diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/JcbtWorkStudyApplicationMapper.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/JcbtWorkStudyApplicationMapper.java index 26c9310c..319dd890 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/JcbtWorkStudyApplicationMapper.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/mapper/JcbtWorkStudyApplicationMapper.java @@ -5,6 +5,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.jcbt.domain.JcbtWorkStudyApplication; import org.dromara.jcbt.domain.vo.JcbtWorkStudyApplicationVo; +import java.util.List; import java.util.Map; /** @@ -24,4 +25,6 @@ public interface JcbtWorkStudyApplicationMapper extends BaseMapperPlus selectApplicationStatus(@Param("positionId") Long positionId, @Param("userId") Long userId); + List> selectApplicationStatusByStudentId(@Param("studentId") Long studentId); + } diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/IJcbtWorkStudyApplicationService.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/IJcbtWorkStudyApplicationService.java index 0634aa09..845d640f 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/IJcbtWorkStudyApplicationService.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/IJcbtWorkStudyApplicationService.java @@ -164,4 +164,10 @@ public interface IJcbtWorkStudyApplicationService { */ Map getPositionApplicationStatistics(Long positionId); + /** + * 获取学生已申请岗位列表 + * + * @return 学生已申请岗位状态列表 (包含岗位ID和申请状态) + */ + List> getStudentApplicationStatus(); } diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtWorkStudyApplicationServiceImpl.java b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtWorkStudyApplicationServiceImpl.java index 8f9ac03d..8c70dd1a 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtWorkStudyApplicationServiceImpl.java +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/java/org/dromara/jcbt/service/impl/JcbtWorkStudyApplicationServiceImpl.java @@ -28,6 +28,9 @@ import org.dromara.xg.domain.vo.XgStudentMsgVo; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.HashMap; +import java.util.List; + import java.util.*; import java.util.stream.Collectors; @@ -338,25 +341,35 @@ public class JcbtWorkStudyApplicationServiceImpl implements IJcbtWorkStudyApplic // 更新总状态 - 关键修改:确保状态正确更新 String oldStatus = application.getStatus(); - if ("APPROVED".equals(reviewBo.getReviewResult())) { + + // 标准化审核结果参数,兼容前端传递的小写值 + String reviewResult = reviewBo.getReviewResult(); + if (reviewResult != null) { + reviewResult = reviewResult.toUpperCase(); + } + + if ("APPROVED".equals(reviewResult)) { application.setStatus(WorkStudyApplicationStatusEnum.COLLEGE_APPROVED.getCode()); log.info("🔍 [学院审核] 审核通过,状态更新: {} -> {}", oldStatus, WorkStudyApplicationStatusEnum.COLLEGE_APPROVED.getCode()); - } else if ("REJECTED".equals(reviewBo.getReviewResult())) { + } else if ("REJECTED".equals(reviewResult)) { application.setStatus(WorkStudyApplicationStatusEnum.COLLEGE_REJECTED.getCode()); log.info("🔍 [学院审核] 审核拒绝,状态更新: {} -> {}", oldStatus, WorkStudyApplicationStatusEnum.COLLEGE_REJECTED.getCode()); + } else { + throw new ServiceException("审核结果参数错误,只支持approved或rejected"); } // 使用updateById确保更新 boolean result = baseMapper.updateById(application) > 0; log.info("🔍 [学院审核] 数据库更新结果: {}", result ? "成功" : "失败"); - if (result) { + if (result) { // 验证更新后的状态 JcbtWorkStudyApplication updatedApplication = baseMapper.selectById(reviewBo.getApplicationId()); log.info("🔍 [学院审核] 更新后验证状态: {}, 审核状态: {}", updatedApplication.getStatus(), updatedApplication.getCollegeReviewStatus()); // 确保状态更新成功 - if ("APPROVED".equals(reviewBo.getReviewResult()) && !WorkStudyApplicationStatusEnum.COLLEGE_APPROVED.getCode().equals(updatedApplication.getStatus())) { + String normalizedResult = reviewBo.getReviewResult() != null ? reviewBo.getReviewResult().toUpperCase() : ""; + if ("APPROVED".equals(normalizedResult) && !WorkStudyApplicationStatusEnum.COLLEGE_APPROVED.getCode().equals(updatedApplication.getStatus())) { log.error("🔍 [学院审核] 状态更新失败!期望: {}, 实际: {}", WorkStudyApplicationStatusEnum.COLLEGE_APPROVED.getCode(), updatedApplication.getStatus()); throw new ServiceException("状态更新失败,请重试"); } @@ -388,8 +401,13 @@ public class JcbtWorkStudyApplicationServiceImpl implements IJcbtWorkStudyApplic application.setFinalReviewerName(currentUserName); application.setFinalReviewComment(reviewBo.getReviewComment()); - // 更新总状态 - if ("APPROVED".equals(reviewBo.getReviewResult())) { + // 更新总状态 - 标准化审核结果参数,兼容前端传递的小写值 + String reviewResult = reviewBo.getReviewResult(); + if (reviewResult != null) { + reviewResult = reviewResult.toUpperCase(); + } + + if ("APPROVED".equals(reviewResult)) { application.setStatus(WorkStudyApplicationStatusEnum.FINAL_APPROVED.getCode()); // 更新岗位当前申请通过人数 @@ -402,8 +420,10 @@ public class JcbtWorkStudyApplicationServiceImpl implements IJcbtWorkStudyApplic } positionMapper.updateById(position); } - } else if ("REJECTED".equals(reviewBo.getReviewResult())) { + } else if ("REJECTED".equals(reviewResult)) { application.setStatus(WorkStudyApplicationStatusEnum.FINAL_REJECTED.getCode()); + } else { + throw new ServiceException("审核结果参数错误,只支持approved或rejected"); } return baseMapper.updateById(application) > 0; @@ -529,4 +549,47 @@ public class JcbtWorkStudyApplicationServiceImpl implements IJcbtWorkStudyApplic return statistics; } + /** + * 获取学生已申请岗位状态列表 + */ + @Override + public List> getStudentApplicationStatus() { + Long studentId = LoginHelper.getUserId(); + List> resultList = baseMapper.selectApplicationStatusByStudentId(studentId); + + // 转换数据结构并进行状态值转换 + List> statusList = new ArrayList<>(); + for (Map item : resultList) { + Map result = new HashMap<>(); + result.put("positionId", item.get("position_id")); + result.put("status", convertStatusToFrontend((String) item.get("status"))); + statusList.add(result); + } + + return statusList; + } + + /** + * 将后端状态转换为前端状态 + */ + private String convertStatusToFrontend(String backendStatus) { + if (backendStatus == null) { + return "submitted"; + } + switch (backendStatus) { + case "SUBMITTED": + return "submitted"; + case "COLLEGE_APPROVED": + return "college_reviewing"; + case "FINAL_APPROVED": + return "approved"; + case "COLLEGE_REJECTED": + case "FINAL_REJECTED": + return "rejected"; + case "CANCELLED": + return "cancelled"; + default: + return "submitted"; + } + } } diff --git a/backend/ruoyi-modules/ruoyi-jcbt/src/main/resources/mapper/jcbt/JcbtWorkStudyApplicationMapper.xml b/backend/ruoyi-modules/ruoyi-jcbt/src/main/resources/mapper/jcbt/JcbtWorkStudyApplicationMapper.xml index 0672aa62..8aad3aa3 100644 --- a/backend/ruoyi-modules/ruoyi-jcbt/src/main/resources/mapper/jcbt/JcbtWorkStudyApplicationMapper.xml +++ b/backend/ruoyi-modules/ruoyi-jcbt/src/main/resources/mapper/jcbt/JcbtWorkStudyApplicationMapper.xml @@ -133,4 +133,10 @@ AND deleted = 0 + + diff --git a/mobile/src/api/workStudy.js b/mobile/src/api/workStudy.js new file mode 100644 index 00000000..d6dda780 --- /dev/null +++ b/mobile/src/api/workStudy.js @@ -0,0 +1,133 @@ +// 勤工俭学API接口 +import { request } from '@/common/request.js'; + +/** + * 学生查看可申请的岗位列表 + * @param {Object} params 查询参数 + */ +export const getAvailablePositions = (params = {}) => { + return request({ + url: '/jcbt/workStudyPosition/visibleList', + method: 'GET', + params: { + ...params, + excludeApplied: true // 排除已申请的岗位 + } + }); +}; + +/** + * 获取岗位详情及申请状态 + * @param {String|Number} positionId 岗位ID + */ +export const getPositionWithApplicationStatus = (positionId) => { + return request({ + url: `/jcbt/workStudyPosition/${positionId}/withApplicationStatus`, + method: 'GET' + }); +}; + +/** + * 查看我的申请列表 + * @param {Object} params 查询参数 + */ +export const getMyApplications = (params = {}) => { + return request({ + url: '/jcbt/workStudyApplication/myList', + method: 'GET', + params: params + }); +}; + +/** + * 新增申请 + * @param {Object} data 申请数据 + */ +export const addApplication = (data) => { + return request({ + url: '/jcbt/workStudyApplication', + method: 'POST', + data: data + }); +}; + +/** + * 提交申请 + * @param {String|Number} applicationId 申请ID + */ +export const submitApplication = (applicationId) => { + return request({ + url: `/jcbt/workStudyApplication/submit/${applicationId}`, + method: 'POST' + }); +}; + +/** + * 撤销申请 + * @param {String|Number} applicationId 申请ID + */ +export const cancelApplication = (applicationId) => { + return request({ + url: `/jcbt/workStudyApplication/cancel/${applicationId}`, + method: 'POST' + }); +}; + +/** + * 获取当前学生信息 + */ +export const getCurrentStudentInfo = () => { + return request({ + url: '/jcbt/workStudyApplication/currentStudentInfo', + method: 'GET' + }); +}; + +/** + * 获取申请选项数据 + */ +export const getApplicationOptions = () => { + return request({ + url: '/jcbt/workStudyApplication/options', + method: 'GET' + }); +}; + +/** + * 检查重复申请 + * @param {String} studentNumber 学号 + * @param {Number} positionId 岗位ID + */ +export const checkDuplicateApplication = (studentNumber, positionId) => { + return request({ + url: '/jcbt/workStudyApplication/checkDuplicate', + method: 'GET', + params: { + studentNumber: studentNumber, + positionId: positionId + } + }); +}; + +/** + * 查询申请详情 + * @param {String|Number} applicationId 申请ID + */ +export const getApplicationDetail = (applicationId) => { + return request({ + url: `/jcbt/workStudyApplication/detail/${applicationId}`, + method: 'GET' + }); +}; + +/** + * 修改申请 + * @param {Object} data 申请数据 + */ +export const updateApplication = (data) => { + return request({ + url: '/jcbt/workStudyApplication', + method: 'PUT', + data: data + }); +}; diff --git a/mobile/src/pages.json b/mobile/src/pages.json index 1fb09abe..e17ad23b 100644 --- a/mobile/src/pages.json +++ b/mobile/src/pages.json @@ -1,257 +1,305 @@ -{ - "easycom": { - "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue" - }, - "pages": [ - { - "path": "pages/login/index", - "style": { - "navigationBarTitleText": "登录", - "navigationStyle": "custom" - } - }, - { - "path": "pages/index/index", - "style": { - "navigationBarTitleText": "杭州第一技师学院智慧校园", - "navigationStyle": "custom" - } - }, - { - "path": "pages/task/myDocument", - "style": { - "navigationBarTitleText": "我发起的", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/task/allTaskWaiting", - "style": { - "navigationBarTitleText": "我的待办", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/task/taskWaiting", - "style": { - "navigationBarTitleText": "我的待办", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/task/taskFinish", - "style": { - "navigationBarTitleText": "我的已办", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/task/taskCopyList", - "style": { - "navigationBarTitleText": "抄送我的", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/xg/xsjcxx/xsjcxx/index", - "style": { - "navigationBarTitleText": "学生个人信息", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/xg/xsjcxx/xsws/index", - "style": { - "navigationBarTitleText": "学生信息完善", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/xg/xsjcxx/xsws/stuMsgDialog", - "style": { - "navigationBarTitleText": "信息完善", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/xg/xsjcxx/xsws/stuMsgDetailDialog", - "style": { - "navigationBarTitleText": "提交历史", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/xg/xsjcxx/xsqj/leave/index", - "style": { - "navigationBarTitleText": "学生请假", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/xg/xsjcxx/xsqj/leaveEdit/index", - "style": { - "navigationBarTitleText": "请假申请", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/xg/xsjcxx/xsqj/cancelLeaveEdit/index", - "style": { - "navigationBarTitleText": "学生销假", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/wechat/js-sdk-test", - "style": { - "navigationBarTitleText": "微信JS-SDK测试", - "navigationStyle": "custom" - } - }, - { - "path": "pages/internship/index", - "style": { - "navigationBarTitleText": "实习打卡", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/visit/index", - "style": { - "navigationBarTitleText": "班主任走访", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/visit/add", - "style": { - "navigationBarTitleText": "新增走访", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/visit/detail", - "style": { - "navigationBarTitleText": "走访详情", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/visit/edit", - "style": { - "navigationBarTitleText": "编辑走访", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/xgss/sswj/grsswj", - "style": { - "navigationBarTitleText": "宿舍违纪", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/xgss/sswj/sswjDetail", - "style": { - "navigationBarTitleText": "违纪详情", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/xgss/wsjc/wsjc", - "style": { - "navigationBarTitleText": "宿舍卫生检查", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/xgss/wsjc/wsjcAdd", - "style": { - "navigationBarTitleText": "新增宿舍卫生检查", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/xgss/wsjc/wsjcDetail", - "style": { - "navigationBarTitleText": "宿舍卫生检查详情", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/xgss/xssswsjc/xssswsjc", - "style": { - "navigationBarTitleText": "宿舍卫生检查", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/xgss/xssswsjc/xssswsjcDetail", - "style": { - "navigationBarTitleText": "宿舍卫生检查详情", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/enrollment/index", - "style": { - "navigationBarTitleText": "新生报名登记", - "navigationStyle": "custom" - } - }, - { - "path": "pages/xskh/wjjl/xswjjl", - "style": { - "navigationBarTitleText": "违纪记录(学生)", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/xskh/wjjl/revokeApplication", - "style": { - "navigationBarTitleText": "撤销申请", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/xskh/khsq/khsq", - "style": { - "navigationBarTitleText": "考核申请", - "navigationBarBackgroundColor": "#0051d9", - "navigationBarTextStyle": "white" - } - } - ], - "globalStyle": { - "navigationBarTextStyle": "black", - "navigationBarTitleText": "智慧校园", - "navigationBarBackgroundColor": "#0051d9", - "backgroundColor": "#F8F8F8" - } +{ + "easycom": { + "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue" + }, + "pages": [ + { + "path": "pages/login/index", + "style": { + "navigationBarTitleText": "登录", + "navigationStyle": "custom" + } + }, + { + "path": "pages/index/index", + "style": { + "navigationBarTitleText": "杭州第一技师学院智慧校园", + "navigationStyle": "custom" + } + }, + { + "path": "pages/task/myDocument", + "style": { + "navigationBarTitleText": "我发起的", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/task/allTaskWaiting", + "style": { + "navigationBarTitleText": "我的待办", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/task/taskWaiting", + "style": { + "navigationBarTitleText": "我的待办", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/task/taskFinish", + "style": { + "navigationBarTitleText": "我的已办", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/task/taskCopyList", + "style": { + "navigationBarTitleText": "抄送我的", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/xg/xsjcxx/xsjcxx/index", + "style": { + "navigationBarTitleText": "学生个人信息", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/xg/xsjcxx/xsws/index", + "style": { + "navigationBarTitleText": "学生信息完善", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/xg/xsjcxx/xsws/stuMsgDialog", + "style": { + "navigationBarTitleText": "信息完善", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/xg/xsjcxx/xsws/stuMsgDetailDialog", + "style": { + "navigationBarTitleText": "提交历史", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/xg/xsjcxx/xsqj/leave/index", + "style": { + "navigationBarTitleText": "学生请假", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/xg/xsjcxx/xsqj/leaveEdit/index", + "style": { + "navigationBarTitleText": "请假申请", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/xg/xsjcxx/xsqj/cancelLeaveEdit/index", + "style": { + "navigationBarTitleText": "学生销假", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/wechat/js-sdk-test", + "style": { + "navigationBarTitleText": "微信JS-SDK测试", + "navigationStyle": "custom" + } + }, + { + "path": "pages/internship/index", + "style": { + "navigationBarTitleText": "实习打卡", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/visit/index", + "style": { + "navigationBarTitleText": "班主任走访", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/visit/add", + "style": { + "navigationBarTitleText": "新增走访", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/visit/detail", + "style": { + "navigationBarTitleText": "走访详情", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/visit/edit", + "style": { + "navigationBarTitleText": "编辑走访", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/xgss/sswj/grsswj", + "style": { + "navigationBarTitleText": "宿舍违纪", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/xgss/sswj/sswjDetail", + "style": { + "navigationBarTitleText": "违纪详情", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/xgss/wsjc/wsjc", + "style": { + "navigationBarTitleText": "宿舍卫生检查", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/xgss/wsjc/wsjcAdd", + "style": { + "navigationBarTitleText": "新增宿舍卫生检查", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/xgss/wsjc/wsjcDetail", + "style": { + "navigationBarTitleText": "宿舍卫生检查详情", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/xgss/xssswsjc/xssswsjc", + "style": { + "navigationBarTitleText": "宿舍卫生检查", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/xgss/xssswsjc/xssswsjcDetail", + "style": { + "navigationBarTitleText": "宿舍卫生检查详情", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/enrollment/index", + "style": { + "navigationBarTitleText": "新生报名登记", + "navigationStyle": "custom" + } + }, + { + "path": "pages/xskh/wjjl/xswjjl", + "style": { + "navigationBarTitleText": "违纪记录(学生)", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/xskh/wjjl/revokeApplication", + "style": { + "navigationBarTitleText": "撤销申请", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/xskh/khsq/khsq", + "style": { + "navigationBarTitleText": "考核申请", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/xskh/khsq/form", + "style": { + "navigationBarTitleText": "考核申请表单", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/xskh/khsq/indicatorDataDialog", + "style": { + "navigationBarTitleText": "学生数据详情", + "navigationBarBackgroundColor": "#0051d9", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/workStudy/index", + "style": { + "navigationBarTitleText": "勤工俭学", + "navigationBarBackgroundColor": "#1890ff", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/workStudy/detail", + "style": { + "navigationBarTitleText": "岗位详情", + "navigationBarBackgroundColor": "#1890ff", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/workStudy/apply", + "style": { + "navigationBarTitleText": "申请岗位", + "navigationBarBackgroundColor": "#1890ff", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/workStudy/applicationDetail", + "style": { + "navigationBarTitleText": "申请详情", + "navigationBarBackgroundColor": "#1890ff", + "navigationBarTextStyle": "white" + } + } + ], + "globalStyle": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "智慧校园", + "navigationBarBackgroundColor": "#0051d9", + "backgroundColor": "#F8F8F8" + } } \ No newline at end of file diff --git a/mobile/src/pages/index/index.vue b/mobile/src/pages/index/index.vue index 09be5468..765eea84 100644 --- a/mobile/src/pages/index/index.vue +++ b/mobile/src/pages/index/index.vue @@ -221,6 +221,20 @@ + + + + + + + + 申请状态 + + + + + + + 申请时间: + {{ applicationData.createTime }} + + + 更新时间: + {{ applicationData.updateTime }} + + + + + + + + 申请岗位 + + {{ applicationData.positionName }} + + + + 岗位类型:{{ applicationData.positionType }} + + + + 工作地点:{{ applicationData.workLocation }} + + + + + + + + 基本信息 + + + 学生姓名: + {{ applicationData.studentName }} + + + 学号: + {{ applicationData.studentNumber }} + + + 身份证号: + {{ formatIdCard(applicationData.idCard) }} + + + 联系电话: + {{ applicationData.contactPhone }} + + + 学院: + {{ applicationData.collegeName }} + + + 专业: + {{ applicationData.majorName }} + + + 班级: + {{ applicationData.className }} + + + 年级: + {{ applicationData.grade }} + + + + + + + 申请信息 + + + 家庭经济情况: + {{ applicationData.familyFinancialStatus }} + + + 计划工作时长: + {{ applicationData.plannedWorkHours }}小时/周 + + + + + + + 申请理由 + {{ applicationData.applicationReason }} + + + + + 个人能力及经验 + {{ applicationData.personalAbility }} + + + + + 时间安排 + {{ applicationData.timeArrangement }} + + + + + 备注信息 + {{ applicationData.remark }} + + + + + 审核记录 + + + + + 学院审核 + + + + + 审核时间: + {{ applicationData.collegeReviewTime }} + + + 审核人员: + {{ applicationData.collegeReviewerName }} + + + 审核意见: + {{ applicationData.collegeReviewComment }} + + + + + + + + 学生处审核 + + + + + 审核时间: + {{ applicationData.finalReviewTime }} + + + 审核人员: + {{ applicationData.finalReviewerName }} + + + 审核意见: + {{ applicationData.finalReviewComment }} + + + + + + + + + 编辑申请 + + + 撤销申请 + + + + + + + + + + + diff --git a/mobile/src/pages/workStudy/apply.vue b/mobile/src/pages/workStudy/apply.vue new file mode 100644 index 00000000..7b6fbbce --- /dev/null +++ b/mobile/src/pages/workStudy/apply.vue @@ -0,0 +1,743 @@ + + + + + diff --git a/mobile/src/pages/workStudy/detail.vue b/mobile/src/pages/workStudy/detail.vue new file mode 100644 index 00000000..2842aa4e --- /dev/null +++ b/mobile/src/pages/workStudy/detail.vue @@ -0,0 +1,632 @@ + + + + + diff --git a/mobile/src/pages/workStudy/index.vue b/mobile/src/pages/workStudy/index.vue new file mode 100644 index 00000000..ef954759 --- /dev/null +++ b/mobile/src/pages/workStudy/index.vue @@ -0,0 +1,852 @@ + + + + + diff --git a/mobile/src/pages/xskh/khsq/khsq.vue b/mobile/src/pages/xskh/khsq/khsq.vue index 8c88c1a6..b332f808 100644 --- a/mobile/src/pages/xskh/khsq/khsq.vue +++ b/mobile/src/pages/xskh/khsq/khsq.vue @@ -1,87 +1,536 @@ diff --git a/web/src/api/jcbt/workStudyApplication.js b/web/src/api/jcbt/workStudyApplication.js index edd8aad2..1e2e8f63 100644 --- a/web/src/api/jcbt/workStudyApplication.js +++ b/web/src/api/jcbt/workStudyApplication.js @@ -114,3 +114,11 @@ export function getApplicationStatistics(positionId) { method: 'get' }); } + +// 获取学生申请状态列表 +export function getStudentApplicationStatusList() { + return request({ + url: '/jcbt/workStudyApplication/student/applicationStatus', + method: 'get' + }); +} diff --git a/web/src/api/jcbt/workStudyApplication.ts b/web/src/api/jcbt/workStudyApplication.ts index 016adde6..427307d7 100644 --- a/web/src/api/jcbt/workStudyApplication.ts +++ b/web/src/api/jcbt/workStudyApplication.ts @@ -447,3 +447,13 @@ export function getCurrentStudentInfo(): AxiosPromise { method: 'get' }); } + +/** + * 获取学生已申请岗位状态列表 + */ +export function getStudentApplicationStatusList(): AxiosPromise { + return request({ + url: '/jcbt/workStudyApplication/student/applicationStatus', + method: 'get' + }); +} diff --git a/web/src/api/jcbt/workStudyPosition.ts b/web/src/api/jcbt/workStudyPosition.ts index 9d3b2216..1af4be77 100644 --- a/web/src/api/jcbt/workStudyPosition.ts +++ b/web/src/api/jcbt/workStudyPosition.ts @@ -244,6 +244,16 @@ export function resumePosition(id: string | number) { }); } +/** + * 开启岗位招录 + */ +export function startRecruiting(id: string | number) { + return request({ + url: `/jcbt/workStudyPosition/startRecruiting/${id}`, + method: 'put' + }); +} + /** * 取消岗位 */ diff --git a/web/src/views/jcbt/workstudy/Application/index.vue b/web/src/views/jcbt/workstudy/Application/index.vue index 39bbe0b6..6697ea19 100644 --- a/web/src/views/jcbt/workstudy/Application/index.vue +++ b/web/src/views/jcbt/workstudy/Application/index.vue @@ -112,12 +112,27 @@ - + + + + + @@ -141,7 +156,8 @@ - + +
岗位详情页面开发中...
@@ -149,12 +165,17 @@ - + /> --> +
申请表单页面开发中...
+
@@ -162,10 +183,14 @@ diff --git a/web/src/views/jcbt/workstudy/Position/index.vue b/web/src/views/jcbt/workstudy/Position/index.vue index e9e70f4e..9d3e4c8d 100644 --- a/web/src/views/jcbt/workstudy/Position/index.vue +++ b/web/src/views/jcbt/workstudy/Position/index.vue @@ -228,6 +228,13 @@ > 发布岗位 + + 开启招录 +