From 3bdc440ab72e191d6f532518b17ac3c8fc6c0148 Mon Sep 17 00:00:00 2001 From: weizhong Date: Wed, 6 Aug 2025 16:37:37 +0800 Subject: [PATCH] =?UTF-8?q?=E2=80=9C=E4=BA=BA=E4=BA=8B=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RsOverseasApplicationController.java | 64 +- .../RsOverseasApprovalController.java | 20 +- .../RsOverseasRecordController.java | 22 +- .../dromara/rs/domain/RsOverseasRecord.java | 2 +- .../dromara/rs/domain/RsTrainingRecord.java | 31 + .../rs/domain/vo/RsOverseasRecordVo.java | 4 +- .../impl/RsOverseasRecordServiceImpl.java | 7 +- .../impl/RsTrainingRecordServiceImpl.java | 10 + .../mapper/rs/RsOverseasApprovalMapper.xml | 13 +- .../mapper/rs/RsTrainingRecordMapper.xml | 23 +- .../code-adjust-record-2025-01-07-weizzzz.md | 300 ++--- .../09-overseas-application-module.sql | 2 +- web/src/api/cw/approvalRecord.ts | 4 +- web/src/api/cw/financeApproval.ts | 10 +- web/src/api/cw/leaderApproval.ts | 4 +- web/src/api/cw/projectApplication.ts | 4 +- web/src/api/cw/statistics.ts | 16 +- web/src/api/rs/training.ts | 1 + web/src/api/system/SysRegion/types.ts | 14 +- web/src/api/system/bucketPassword.ts | 50 +- web/src/api/system/file.ts | 56 +- .../studentLeave/studentLeave/types.ts | 14 +- web/src/api/xg-xx-bak/classInfo.ts | 128 +- web/src/api/xg-xx-bak/statistics.ts | 252 ++-- web/src/api/xg-xx-bak/student.ts | 328 ++--- web/src/api/xg-xx-bak/types.ts | 1060 ++++++++--------- web/src/api/xg/classTeacherCounselorRel.ts | 2 +- web/src/api/xg/index.ts | 2 +- web/src/api/xg/xgss/dormBed/types.ts | 3 - web/src/api/xg/xgss/dormRoom/types.ts | 14 +- .../xgss/glysqgx/dormManagerSource/types.ts | 14 +- .../glysslqxgx/dormManagerBuilding/types.ts | 14 +- .../api/xg/xgss/ssglyxx/dormManager/types.ts | 14 +- .../api/xg/xgss/sslxx/dormBuilding/types.ts | 6 +- web/src/api/xg/xgss/ssqxx/dormArea/types.ts | 14 +- web/src/api/xg/xgss/xqxx/dormCampus/types.ts | 14 +- web/src/api/xg/xgss/xsssfjgl/index.ts | 4 +- .../xsjcxx/XgStuColBatch/stuColBatch/types.ts | 14 +- .../api/xg/xsjcxx/classMsg/classMsg/types.ts | 14 +- .../stuColBatchClass/types.ts | 14 +- web/src/api/xg/xsjcxx/stuMsgAudit/types.ts | 14 +- web/src/api/xg/xsjcxx/stuMsgSupply/types.ts | 14 +- web/src/api/xg/xsjcxx/studentMsg/index.ts | 28 +- .../xg/xsjcxx/studentMsg/studentMsg/types.ts | 26 +- .../studentMsgBatch/studentMsgBatch/types.ts | 26 +- .../xgClassPosDict/xgClassPosDict/types.ts | 14 +- .../xgClassPosMsg/xgClassPosMsg/types.ts | 14 +- .../xgLeaveTypeConfig/types.ts | 14 +- .../xgStudentManager/studentManager/types.ts | 14 +- .../studentManagerSource/index.ts | 6 +- .../studentManagerSource/types.ts | 14 +- web/src/api/xljk/consultation/appointment.ts | 1 - web/src/api/xljk/consultation/index.ts | 10 +- web/src/api/xljk/consultation/noshow.ts | 6 +- web/src/api/xljk/consultation/types.ts | 8 +- web/src/api/xljk/evaluation/index.ts | 10 +- web/src/api/xljk/evaluation/types.ts | 2 +- web/src/api/zsjy/README.md | 1 + web/src/api/zsjy/enrollment/index.ts | 4 +- web/src/api/zsjy/enrollmentProcess.ts | 254 ++-- web/src/api/zsjy/enrollmentStatistics.ts | 28 +- web/src/api/zsjy/graduateInfo.ts | 7 +- web/src/api/zsjy/index.ts | 10 +- web/src/api/zsjy/jobPosition.ts | 22 +- web/src/api/zsjy/recruitmentPoster.ts | 22 +- web/src/api/zsjy/statistics.ts | 22 +- web/src/assets/styles/index.scss | 3 +- web/src/components/ImageUpload/index-bak.vue | 2 - web/src/components/PosterPreview/index.vue | 189 ++- web/src/permission.ts | 2 +- web/src/plugins/download.ts | 6 +- web/src/plugins/svgicon.ts | 10 +- web/src/router/index.ts | 16 + web/src/types/global.d.ts | 4 +- web/src/utils/request.ts | 6 +- .../components/PerformanceIndicators.vue | 377 ++---- web/src/views/cw/application/detail.vue | 210 ++-- web/src/views/cw/application/form.vue | 667 +++++------ web/src/views/cw/application/index.vue | 472 ++++---- web/src/views/cw/application/summary.vue | 27 +- web/src/views/cw/approvalRecord/index.vue | 143 +-- web/src/views/cw/approverConfig/detail.vue | 82 +- web/src/views/cw/approverConfig/index.vue | 298 ++--- web/src/views/cw/dashboard/index.vue | 288 +++-- web/src/views/cw/financeApproval/index.vue | 243 ++-- web/src/views/cw/leaderApproval/index.vue | 238 ++-- web/src/views/cw/statistics/index.vue | 189 ++- web/src/views/demo/ImageUploadTest.vue | 43 +- web/src/views/rs/index.vue | 197 +-- web/src/views/rs/overseas/approval.vue | 42 +- web/src/views/rs/overseas/index.vue | 58 +- web/src/views/rs/overseasApproval/index.vue | 661 +++++++--- web/src/views/rs/training/index.vue | 83 +- web/src/views/xg-xx-bak/classInfo/README.md | 31 +- web/src/views/xg-xx-bak/classInfo/index.vue | 20 +- .../views/xg-xx-bak/collectionBatch/README.md | 24 +- .../components/BatchActions.vue | 56 +- .../components/BatchTypeTag.vue | 2 +- .../components/ProgressBar.vue | 8 +- .../collectionBatch/components/SearchForm.vue | 28 +- .../xg-xx-bak/collectionBatch/detail.vue | 35 +- .../views/xg-xx-bak/collectionBatch/form.vue | 22 +- .../views/xg-xx-bak/collectionBatch/index.vue | 311 ++--- .../xg-xx-bak/collectionBatch/permission.vue | 40 +- .../xg-xx-bak/collectionBatch/statistics.vue | 44 +- .../views/xg-xx-bak/collectionBatch/test.vue | 78 +- .../components/CacheManageDialog.vue | 229 ++-- .../components/ConfigDetailDialog.vue | 56 +- .../components/ConfigEditDialog.vue | 195 ++- .../components/ConfigManageDialog.vue | 270 ++--- .../statistics/components/ExportDialog.vue | 178 ++- .../statistics/components/StatisticsChart.vue | 327 ++--- web/src/views/xg-xx-bak/statistics/index.vue | 254 ++-- .../studentInfo/components/AuditDialog.vue | 132 +- .../components/BatchOperationDialog.vue | 277 ++--- .../studentInfo/components/ImportDialog.vue | 212 ++-- .../components/StatisticsChartDialog.vue | 273 ++--- .../components/StudentDetailDialog.vue | 89 +- .../components/StudentEditDialog.vue | 495 +++----- web/src/views/xg-xx-bak/studentInfo/index.vue | 687 +++++------ web/src/views/xg/xsjcxx/stuRoster/README.md | 32 +- .../components/StudentDetailDialog-bak.vue | 41 +- .../xljk/consultation/appointment/index.vue | 198 ++- .../xljk/consultation/calendar/WeekView.vue | 170 ++- .../calendar/add_limitation_check.cjs | 10 +- .../calendar/add_limitation_check.js | 10 +- .../xljk/consultation/calendar/debug.vue | 18 +- .../xljk/consultation/calendar/index.vue | 231 ++-- web/src/views/xljk/consultation/index.vue | 2 +- .../views/xljk/consultation/noshow/index.vue | 208 ++-- .../xljk/consultation/schedule/index.vue | 75 +- web/src/views/xljk/evaluation/add.vue | 247 ++-- web/src/views/xljk/evaluation/detail.vue | 77 +- web/src/views/xljk/evaluation/edit.vue | 146 +-- web/src/views/xljk/evaluation/fill.vue | 72 +- web/src/views/xljk/evaluation/index.vue | 91 +- web/src/views/zsjy/README.md | 4 + .../components/BatchAdmissionDialog.vue | 246 ++-- .../views/zsjy/admissionManagement/index.vue | 263 ++-- web/src/views/zsjy/enrollment/apply.vue | 25 +- web/src/views/zsjy/enrollment/index.vue | 335 +++--- .../views/zsjy/enrollmentProcess/README.md | 3 +- .../components/AdmissionProcessDialog.vue | 127 +- .../components/FinalAuditDialog.vue | 67 +- .../components/InfoAuditDialog.vue | 188 ++- .../components/ProcessDetailDialog.vue | 43 +- .../components/ProcessFormDialog.vue | 95 +- .../components/RejectProcessDialog.vue | 65 +- .../views/zsjy/enrollmentProcess/index.vue | 417 +++---- .../views/zsjy/enrollmentProcess/pending.vue | 77 +- .../components/StudentDetailDialog.vue | 67 +- .../views/zsjy/enrollmentStatistics/index.vue | 159 +-- web/src/views/zsjy/enterprise/index.vue | 168 ++- web/src/views/zsjy/graduateInfo/form.vue | 216 ++-- web/src/views/zsjy/graduateInfo/index.vue | 39 +- .../views/zsjy/graduateInfo/statistics.vue | 5 +- web/src/views/zsjy/jobPosition/index.vue | 266 ++--- .../views/zsjy/recruitmentPoster/index.vue | 365 +++--- web/src/views/zsjy/statistics/index.vue | 26 +- 159 files changed, 7742 insertions(+), 9254 deletions(-) diff --git a/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/controller/RsOverseasApplicationController.java b/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/controller/RsOverseasApplicationController.java index ee5a9410..7b101631 100644 --- a/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/controller/RsOverseasApplicationController.java +++ b/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/controller/RsOverseasApplicationController.java @@ -33,6 +33,8 @@ import org.dromara.rs.domain.query.RsOverseasApplicationQuery; import org.dromara.rs.service.IRsOverseasApplicationService; import org.dromara.rs.service.IRsOverseasApprovalService; import java.util.Date; +import java.util.Map; +import java.util.HashMap; /** * 出国申请Controller @@ -54,40 +56,72 @@ public class RsOverseasApplicationController extends BaseController { /** * 查询出国申请列表 */ - @SaCheckPermission("rs:overseas:application:list") + @SaCheckPermission("rs:overseas:list") @GetMapping("/list") public TableDataInfo list(RsOverseasApplicationQuery query) { + query.setTenantId(LoginHelper.getTenantId()); // 设置租户ID return applicationService.queryPageList(query); } /** * 查询我的出国申请列表(排除已通过的申请,已通过的申请显示在出国记录中) */ - @SaCheckPermission("rs:overseas:application:list") + @SaCheckPermission("rs:overseas:list") @GetMapping("/my/list") public TableDataInfo myList(RsOverseasApplicationQuery query) { Long userId = LoginHelper.getUserId(); query.setApplicantId(userId); + query.setTenantId(LoginHelper.getTenantId()); // 设置租户ID return applicationService.queryMyApplicationList(query); } /** * 查询待审批的申请列表(有审批权限的用户可以看到所有待审批申请) */ - @SaCheckPermission("rs:overseas:application:approve") + @SaCheckPermission("rs:overseas:approve") @GetMapping("/pending/list") public TableDataInfo pendingList(RsOverseasApplicationQuery query) { // 不限制currentApprover,让有审批权限的用户看到所有待审批申请 // String currentUser = LoginHelper.getUsername(); // query.setCurrentApprover(currentUser); query.setStatus("0"); // 只查询待审核状态 + query.setTenantId(LoginHelper.getTenantId()); // 设置租户ID return applicationService.queryPageList(query); } + /** + * 临时测试API - 查询待审批的申请列表(调试用) + */ + @SaCheckPermission("rs:overseas:approve") + @GetMapping("/pending/debug") + public R pendingDebug(RsOverseasApplicationQuery query) { + // 获取当前用户信息 + String currentUser = LoginHelper.getUsername(); + Long userId = LoginHelper.getUserId(); + String tenantId = LoginHelper.getTenantId(); + + // 设置查询条件 + query.setStatus("0"); // 只查询待审核状态 + query.setTenantId(tenantId); // 设置租户ID + + // 执行查询 + TableDataInfo result = applicationService.queryPageList(query); + + // 返回调试信息 + Map debugInfo = new HashMap<>(); + debugInfo.put("currentUser", currentUser); + debugInfo.put("userId", userId); + debugInfo.put("tenantId", tenantId); + debugInfo.put("queryParams", query); + debugInfo.put("result", result); + + return R.ok(debugInfo); + } + /** * 根据状态查询申请列表 */ - @SaCheckPermission("rs:overseas:application:list") + @SaCheckPermission("rs:overseas:list") @GetMapping("/status/{status}") public R> listByStatus(@PathVariable String status) { List list = applicationService.queryByStatus(status); @@ -97,7 +131,7 @@ public class RsOverseasApplicationController extends BaseController { /** * 导出出国申请列表 */ - @SaCheckPermission("rs:overseas:application:export") + @SaCheckPermission("rs:overseas:export") @Log(title = "出国申请", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(RsOverseasApplicationQuery query, HttpServletResponse response) { @@ -108,7 +142,7 @@ public class RsOverseasApplicationController extends BaseController { /** * 获取出国申请详细信息 */ - @SaCheckPermission("rs:overseas:application:query") + @SaCheckPermission("rs:overseas:query") @GetMapping("/{applicationId}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long applicationId) { return R.ok(applicationService.queryById(applicationId)); @@ -117,7 +151,7 @@ public class RsOverseasApplicationController extends BaseController { /** * 新增出国申请 */ - @SaCheckPermission("rs:overseas:application:add") + @SaCheckPermission("rs:overseas:add") @Log(title = "出国申请", businessType = BusinessType.INSERT) @PostMapping public R add(@Validated(AddGroup.class) @RequestBody RsOverseasApplicationBo bo) { @@ -144,7 +178,7 @@ public class RsOverseasApplicationController extends BaseController { /** * 修改出国申请 */ - @SaCheckPermission("rs:overseas:application:edit") + @SaCheckPermission("rs:overseas:edit") @Log(title = "出国申请", businessType = BusinessType.UPDATE) @PutMapping public R edit(@Validated(EditGroup.class) @RequestBody RsOverseasApplicationBo bo) { @@ -154,7 +188,7 @@ public class RsOverseasApplicationController extends BaseController { /** * 提交出国申请 */ - @SaCheckPermission("rs:overseas:application:submit") + @SaCheckPermission("rs:overseas:submit") @Log(title = "提交出国申请", businessType = BusinessType.UPDATE) @PutMapping("/submit/{applicationId}") public R submit(@NotNull(message = "申请ID不能为空") @PathVariable Long applicationId) { @@ -164,7 +198,7 @@ public class RsOverseasApplicationController extends BaseController { /** * 重新提交被拒绝的出国申请 */ - @SaCheckPermission("rs:overseas:application:edit") + @SaCheckPermission("rs:overseas:edit") @Log(title = "重新提交出国申请", businessType = BusinessType.UPDATE) @PutMapping("/resubmit/{applicationId}") public R resubmit(@NotNull(message = "申请ID不能为空") @PathVariable Long applicationId, @@ -175,7 +209,7 @@ public class RsOverseasApplicationController extends BaseController { /** * 取消出国申请 */ - @SaCheckPermission("rs:overseas:application:cancel") + @SaCheckPermission("rs:overseas:cancel") @Log(title = "取消出国申请", businessType = BusinessType.UPDATE) @PutMapping("/cancel/{applicationId}") public R cancel(@NotNull(message = "申请ID不能为空") @PathVariable Long applicationId, @@ -186,7 +220,7 @@ public class RsOverseasApplicationController extends BaseController { /** * 审批出国申请 */ - @SaCheckPermission("rs:overseas:application:approve") + @SaCheckPermission("rs:overseas:approve") @Log(title = "审批出国申请", businessType = BusinessType.UPDATE) @PostMapping("/approve") public R approve(@RequestBody ApprovalRequest request) { @@ -200,7 +234,7 @@ public class RsOverseasApplicationController extends BaseController { /** * 批量删除出国申请 */ - @SaCheckPermission("rs:overseas:application:remove") + @SaCheckPermission("rs:overseas:remove") @Log(title = "出国申请", businessType = BusinessType.DELETE) @DeleteMapping("/{applicationIds}") public R remove(@NotEmpty(message = "主键集合不能为空") @PathVariable List applicationIds) { @@ -210,7 +244,7 @@ public class RsOverseasApplicationController extends BaseController { /** * 查询出国申请审批历史 */ - @SaCheckPermission("rs:overseas:application:query") + @SaCheckPermission("rs:overseas:query") @GetMapping("/approval/history/{applicationId}") public R> getApprovalHistory(@PathVariable("applicationId") Long applicationId) { List approvalList = overseasApprovalService.selectApprovalHistoryByApplicationId(applicationId); @@ -220,7 +254,7 @@ public class RsOverseasApplicationController extends BaseController { /** * 修复已审批通过但未创建记录的申请 */ - @SaCheckPermission("rs:overseas:application:approve") + @SaCheckPermission("rs:overseas:approve") @Log(title = "修复出国记录", businessType = BusinessType.UPDATE) @PostMapping("/fix/records") public R fixApprovedRecords() { diff --git a/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/controller/RsOverseasApprovalController.java b/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/controller/RsOverseasApprovalController.java index 569066db..8afe6ad8 100644 --- a/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/controller/RsOverseasApprovalController.java +++ b/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/controller/RsOverseasApprovalController.java @@ -49,7 +49,7 @@ public class RsOverseasApprovalController extends BaseController { /** * 查询出国审批记录列表 */ - @SaCheckPermission("rs:overseas:approval:list") + @SaCheckPermission("rs:overseas:list") @GetMapping("/list") public TableDataInfo list(RsOverseasApprovalQuery query) { return approvalService.queryPageList(query); @@ -58,7 +58,7 @@ public class RsOverseasApprovalController extends BaseController { /** * 查询我的审批记录列表 */ - @SaCheckPermission("rs:overseas:approval:list") + @SaCheckPermission("rs:overseas:list") @GetMapping("/my/list") public TableDataInfo myList(RsOverseasApprovalQuery query) { Long userId = LoginHelper.getUserId(); @@ -69,7 +69,7 @@ public class RsOverseasApprovalController extends BaseController { /** * 联合查询出国审批记录列表(包含待审批申请和已审批记录) */ - @SaCheckPermission("rs:overseas:approval:list") + @SaCheckPermission("rs:overseas:list") @GetMapping("/combined/list") public TableDataInfo combinedList(RsOverseasApprovalQuery query) { return approvalService.queryCombinedPageList(query); @@ -78,7 +78,7 @@ public class RsOverseasApprovalController extends BaseController { /** * 根据申请ID查询审批记录列表 */ - @SaCheckPermission("rs:overseas:approval:query") + @SaCheckPermission("rs:overseas:query") @GetMapping("/application/{applicationId}") public R> getByApplicationId(@PathVariable Long applicationId) { List list = approvalService.queryByApplicationId(applicationId); @@ -88,7 +88,7 @@ public class RsOverseasApprovalController extends BaseController { /** * 导出出国审批记录列表 */ - @SaCheckPermission("rs:overseas:approval:export") + @SaCheckPermission("rs:overseas:export") @Log(title = "出国审批记录", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(RsOverseasApprovalQuery query, HttpServletResponse response) { @@ -99,7 +99,7 @@ public class RsOverseasApprovalController extends BaseController { /** * 获取出国审批记录详细信息 */ - @SaCheckPermission("rs:overseas:approval:query") + @SaCheckPermission("rs:overseas:query") @GetMapping("/{approvalId}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long approvalId) { return R.ok(approvalService.queryById(approvalId)); @@ -108,7 +108,7 @@ public class RsOverseasApprovalController extends BaseController { /** * 新增出国审批记录 */ - @SaCheckPermission("rs:overseas:approval:add") + @SaCheckPermission("rs:overseas:add") @Log(title = "出国审批记录", businessType = BusinessType.INSERT) @PostMapping public R add(@Validated(AddGroup.class) @RequestBody RsOverseasApprovalBo bo) { @@ -121,7 +121,7 @@ public class RsOverseasApprovalController extends BaseController { /** * 修改出国审批记录 */ - @SaCheckPermission("rs:overseas:approval:edit") + @SaCheckPermission("rs:overseas:edit") @Log(title = "出国审批记录", businessType = BusinessType.UPDATE) @PutMapping public R edit(@Validated(EditGroup.class) @RequestBody RsOverseasApprovalBo bo) { @@ -131,7 +131,7 @@ public class RsOverseasApprovalController extends BaseController { /** * 批量删除出国审批记录 */ - @SaCheckPermission("rs:overseas:approval:remove") + @SaCheckPermission("rs:overseas:remove") @Log(title = "出国审批记录", businessType = BusinessType.DELETE) @DeleteMapping("/{approvalIds}") public R remove(@NotEmpty(message = "主键集合不能为空") @PathVariable List approvalIds) { @@ -141,7 +141,7 @@ public class RsOverseasApprovalController extends BaseController { /** * 修复审批记录测试数据 */ - @SaCheckPermission("rs:overseas:approval:edit") + @SaCheckPermission("rs:overseas:edit") @Log(title = "出国审批记录", businessType = BusinessType.UPDATE) @PostMapping("/fixData") public R fixApprovalData() { diff --git a/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/controller/RsOverseasRecordController.java b/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/controller/RsOverseasRecordController.java index 51d606a7..0d37cb73 100644 --- a/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/controller/RsOverseasRecordController.java +++ b/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/controller/RsOverseasRecordController.java @@ -48,7 +48,7 @@ public class RsOverseasRecordController extends BaseController { /** * 查询出国记录列表 */ - @SaCheckPermission("rs:overseas:record:list") + @SaCheckPermission("rs:overseas:list") @GetMapping("/list") public TableDataInfo list(RsOverseasRecordQuery query) { return recordService.queryPageList(query); @@ -57,7 +57,7 @@ public class RsOverseasRecordController extends BaseController { /** * 查询我的出国记录列表(联合查询:记录+已通过申请) */ - @SaCheckPermission("rs:overseas:record:list") + @SaCheckPermission("rs:overseas:list") @GetMapping("/my/list") public TableDataInfo myList(RsOverseasRecordQuery query) { Long userId = LoginHelper.getUserId(); @@ -68,7 +68,7 @@ public class RsOverseasRecordController extends BaseController { /** * 根据申请ID查询出国记录 */ - @SaCheckPermission("rs:overseas:record:query") + @SaCheckPermission("rs:overseas:query") @GetMapping("/application/{applicationId}") public R getByApplicationId(@PathVariable Long applicationId) { RsOverseasRecordVo record = recordService.queryByApplicationId(applicationId); @@ -78,7 +78,7 @@ public class RsOverseasRecordController extends BaseController { /** * 导出出国记录列表 */ - @SaCheckPermission("rs:overseas:record:export") + @SaCheckPermission("rs:overseas:export") @Log(title = "出国记录", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(RsOverseasRecordQuery query, HttpServletResponse response) { @@ -89,7 +89,7 @@ public class RsOverseasRecordController extends BaseController { /** * 获取出国记录详细信息 */ - @SaCheckPermission("rs:overseas:record:query") + @SaCheckPermission("rs:overseas:query") @GetMapping("/{recordId}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long recordId) { return R.ok(recordService.queryById(recordId)); @@ -98,7 +98,7 @@ public class RsOverseasRecordController extends BaseController { /** * 新增出国记录 */ - @SaCheckPermission("rs:overseas:record:add") + @SaCheckPermission("rs:overseas:add") @Log(title = "出国记录", businessType = BusinessType.INSERT) @PostMapping public R add(@Validated(AddGroup.class) @RequestBody RsOverseasRecordBo bo) { @@ -108,7 +108,7 @@ public class RsOverseasRecordController extends BaseController { /** * 修改出国记录 */ - @SaCheckPermission("rs:overseas:record:edit") + @SaCheckPermission("rs:overseas:edit") @Log(title = "出国记录", businessType = BusinessType.UPDATE) @PutMapping public R edit(@Validated(EditGroup.class) @RequestBody RsOverseasRecordBo bo) { @@ -118,7 +118,7 @@ public class RsOverseasRecordController extends BaseController { /** * 基于申请信息创建出国记录 */ - @SaCheckPermission("rs:overseas:record:create") + @SaCheckPermission("rs:overseas:create") @Log(title = "创建出国记录", businessType = BusinessType.INSERT) @PostMapping("/create/{applicationId}") public R createFromApplication(@NotNull(message = "申请ID不能为空") @PathVariable Long applicationId) { @@ -128,7 +128,7 @@ public class RsOverseasRecordController extends BaseController { /** * 更新出国记录完成状态 */ - @SaCheckPermission("rs:overseas:record:complete") + @SaCheckPermission("rs:overseas:complete") @Log(title = "更新出国记录完成状态", businessType = BusinessType.UPDATE) @PutMapping("/complete") public R updateCompletion(@RequestBody CompletionRequest request) { @@ -140,7 +140,7 @@ public class RsOverseasRecordController extends BaseController { /** * 批量删除出国记录 */ - @SaCheckPermission("rs:overseas:record:remove") + @SaCheckPermission("rs:overseas:remove") @Log(title = "出国记录", businessType = BusinessType.DELETE) @DeleteMapping("/{recordIds}") public R remove(@NotEmpty(message = "主键集合不能为空") @PathVariable List recordIds) { @@ -150,7 +150,7 @@ public class RsOverseasRecordController extends BaseController { /** * 初始化测试数据(临时接口,用于解决出国记录列表显示问题) */ - @SaCheckPermission("rs:overseas:record:add") + @SaCheckPermission("rs:overseas:add") @PostMapping("/initTestData") public R initTestData() { try { diff --git a/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/domain/RsOverseasRecord.java b/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/domain/RsOverseasRecord.java index 42a45568..837ebd8d 100644 --- a/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/domain/RsOverseasRecord.java +++ b/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/domain/RsOverseasRecord.java @@ -140,7 +140,7 @@ public class RsOverseasRecord extends BaseEntity { private String transportationPlan; /** - * 完成状态:0-进行中,1-已完成,2-提前结束 + * 完成状态:1-已完成,2-已拒绝 */ @ExcelProperty(value = "完成状态") private String completionStatus; diff --git a/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/domain/RsTrainingRecord.java b/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/domain/RsTrainingRecord.java index c2b5a953..1bdc0d87 100644 --- a/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/domain/RsTrainingRecord.java +++ b/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/domain/RsTrainingRecord.java @@ -52,6 +52,37 @@ public class RsTrainingRecord extends BaseEntity { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date endTime; + /** + * 完成状态:0=进行中,1=已完成,2=未完成 + */ + private String completionStatus; + + /** + * 完成时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date completionTime; + + /** + * 成绩/分数 + */ + private BigDecimal score; + + /** + * 证书路径 + */ + private String certificatePath; + + /** + * 证书编号 + */ + private String certificateNumber; + + /** + * 反馈意见 + */ + private String feedback; + private String tenantId; private Long createDept; private String courseName; diff --git a/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/domain/vo/RsOverseasRecordVo.java b/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/domain/vo/RsOverseasRecordVo.java index d73553c0..edf94076 100644 --- a/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/domain/vo/RsOverseasRecordVo.java +++ b/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/domain/vo/RsOverseasRecordVo.java @@ -226,12 +226,10 @@ public class RsOverseasRecordVo implements Serializable { return "未知状态"; } switch (this.completionStatus) { - case "0": - return "进行中"; case "1": return "已完成"; case "2": - return "提前结束"; + return "已拒绝"; default: return "未知状态"; } diff --git a/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/service/impl/RsOverseasRecordServiceImpl.java b/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/service/impl/RsOverseasRecordServiceImpl.java index 6815b8c7..aaaeab70 100644 --- a/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/service/impl/RsOverseasRecordServiceImpl.java +++ b/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/service/impl/RsOverseasRecordServiceImpl.java @@ -183,9 +183,12 @@ public class RsOverseasRecordServiceImpl implements IRsOverseasRecordService { record.setItinerary(application.getItinerary()); record.setAccommodationPlan(application.getAccommodationPlan()); record.setTransportationPlan(application.getTransportationPlan()); - record.setCompletionStatus("0"); // 设置为进行中 - log.info("准备插入出国记录,申请ID: {}, 申请人: {}, 目的地: {}", + // 修复:审批通过的申请创建记录时应该设置为已完成状态 + // 因为审批通过意味着出国活动已经完成 + record.setCompletionStatus("1"); // 设置为已完成 + + log.info("准备插入出国记录,申请ID: {}, 申请人: {}, 目的地: {}, 状态: 已完成", applicationId, application.getApplicantName(), application.getDestination()); boolean insertResult = baseMapper.insert(record) > 0; diff --git a/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/service/impl/RsTrainingRecordServiceImpl.java b/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/service/impl/RsTrainingRecordServiceImpl.java index 7b288185..9006a19b 100644 --- a/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/service/impl/RsTrainingRecordServiceImpl.java +++ b/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/service/impl/RsTrainingRecordServiceImpl.java @@ -131,6 +131,13 @@ public class RsTrainingRecordServiceImpl implements IRsTrainingRecordService { public int updateCompletionStatus(Long recordId, String completionStatus) { RsTrainingRecord record = trainingRecordMapper.selectById(recordId); if (record != null) { + record.setCompletionStatus(completionStatus); + + // 如果状态改为已完成,自动设置完成时间 + if ("1".equals(completionStatus)) { + record.setCompletionTime(DateUtils.getNowDate()); + } + record.setUpdateTime(DateUtils.getNowDate()); return trainingRecordMapper.updateById(record); } @@ -149,6 +156,8 @@ public class RsTrainingRecordServiceImpl implements IRsTrainingRecordService { public int uploadCertificate(Long recordId, String certificatePath, String certificateNumber) { RsTrainingRecord record = trainingRecordMapper.selectById(recordId); if (record != null) { + record.setCertificatePath(certificatePath); + record.setCertificateNumber(certificateNumber); record.setUpdateTime(DateUtils.getNowDate()); return trainingRecordMapper.updateById(record); } @@ -164,6 +173,7 @@ public class RsTrainingRecordServiceImpl implements IRsTrainingRecordService { lqw.like(record.getCourseName() != null, RsTrainingRecord::getCourseName, record.getCourseName()); lqw.eq(record.getUserId() != null, RsTrainingRecord::getUserId, record.getUserId()); lqw.like(record.getUserName() != null, RsTrainingRecord::getUserName, record.getUserName()); + lqw.eq(record.getCompletionStatus() != null, RsTrainingRecord::getCompletionStatus, record.getCompletionStatus()); lqw.eq(record.getStatus() != null, RsTrainingRecord::getStatus, record.getStatus()); return lqw; } diff --git a/backend/ruoyi-modules/ruoyi-rs/src/main/resources/mapper/rs/RsOverseasApprovalMapper.xml b/backend/ruoyi-modules/ruoyi-rs/src/main/resources/mapper/rs/RsOverseasApprovalMapper.xml index 17ae716e..011013e9 100644 --- a/backend/ruoyi-modules/ruoyi-rs/src/main/resources/mapper/rs/RsOverseasApprovalMapper.xml +++ b/backend/ruoyi-modules/ruoyi-rs/src/main/resources/mapper/rs/RsOverseasApprovalMapper.xml @@ -94,15 +94,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND oa.approval_level = #{approvalLevel} - - - - AND oa.approval_status = #{approvalStatus} - - - AND oa.approval_status IN ('1', '2') - - + + + AND oa.approval_status = #{approvalStatus} + AND oa.approval_time >= #{approvalTimeBegin} diff --git a/backend/ruoyi-modules/ruoyi-rs/src/main/resources/mapper/rs/RsTrainingRecordMapper.xml b/backend/ruoyi-modules/ruoyi-rs/src/main/resources/mapper/rs/RsTrainingRecordMapper.xml index 42a9c56a..692b99c2 100644 --- a/backend/ruoyi-modules/ruoyi-rs/src/main/resources/mapper/rs/RsTrainingRecordMapper.xml +++ b/backend/ruoyi-modules/ruoyi-rs/src/main/resources/mapper/rs/RsTrainingRecordMapper.xml @@ -20,6 +20,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + @@ -37,14 +43,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/docs/变更管理/code-adjust-record-2025-01-07-weizzzz.md b/docs/变更管理/code-adjust-record-2025-01-07-weizzzz.md index 781a5054..94a599f2 100644 --- a/docs/变更管理/code-adjust-record-2025-01-07-weizzzz.md +++ b/docs/变更管理/code-adjust-record-2025-01-07-weizzzz.md @@ -1,233 +1,123 @@ # 代码调整记录 - 2025-01-07 - weizzzz -## 📊 出国记录选项卡显示已完成审批数据实现 +## 📋 变更概述 +- **变更时间**: 2025-01-07 15:30:00 +- **变更人员**: weizzzz +- **变更类型**: 前端路由修复 +- **影响模块**: 人事系统 - 出国审批管理 -### 🎯 调整目标 -实现出国记录选项卡显示已完成审批的申请数据,使其与申请记录选项卡形成完整的数据流转机制。 +## 🔍 问题描述 -### 📋 问题分析 +### 发现的问题 +用户反馈出国审批页面显示标题错误: +- **期望显示**: "待审批申请" +- **实际显示**: "出国审批" -#### 申请记录选项卡现有机制 -1. **状态过滤**:`AND oa.status != '1'` 排除已通过的申请 -2. **数据范围**:显示草稿、待审核、已拒绝、已取消等状态 -3. **业务逻辑**:已通过的申请不在申请记录中重复显示 +### 问题分析 +通过深入分析发现系统中存在**双重路径问题**: -#### 出国记录选项卡原有限制 -1. **数据源单一**:仅查询 `rs_overseas_record` 表 -2. **数据缺失**:已通过审批但未创建记录的申请无法显示 -3. **用户体验问题**:用户无法看到已通过的申请数据 +1. **错误路径**(当前菜单指向): + - 组件路径: `web/src/views/rs/overseasApproval/index.vue` + - 菜单配置: menu_id `2140` → `rs/overseasApproval/index` + - 页面标题: "出国审批" ❌ -### 🔧 技术实现方案 +2. **正确路径**(应该使用的): + - 组件路径: `web/src/views/rs/overseas/approval.vue` + - 菜单配置: menu_id `2220` → `rs/overseas/approval` + - 页面标题: "待审批申请" ✅ -#### 1. 数据库层面 - 联合查询 (RsOverseasRecordMapper.xml) +### 根本原因 +开发过程中创建了两套出国审批系统,导致菜单配置指向了错误的组件。 -```xml - - - -- 查询已创建的出国记录 - select ors.*, 'record' as data_source - from rs_overseas_record ors - where ors.deleted = '0' - - UNION ALL - - -- 查询已通过审批但未创建记录的申请 - select - NULL as record_id, - oa.application_id, oa.applicant_id, oa.applicant_name, ... - oa.start_date as actual_start_date, oa.end_date as actual_end_date, - 'approved_application' as data_source - from rs_overseas_application oa - where oa.deleted = '0' - AND oa.status = '1' -- 已通过审批 - AND NOT EXISTS ( - SELECT 1 FROM rs_overseas_record ors - WHERE ors.application_id = oa.application_id - ) - +## 🔧 解决方案 - - +### 采用方案1: 修改菜单配置 +将错误的菜单配置修改为指向正确的组件路径。 + +### 具体修改内容 + +#### 数据库变更 +```sql +-- 修改前 +menu_id: 2140 +menu_name: "出国审批" +path: "overseasApproval" +component: "rs/overseasApproval/index" + +-- 修改后 +menu_id: 2140 +menu_name: "待审批申请" +path: "overseas/approval" +component: "rs/overseas/approval" ``` -#### 2. 实体层面 - 扩展VO类 (RsOverseasRecordVo.java) - -```java -/** - * 数据来源标识 - */ -private String dataSource; - -/** - * 获取数据来源说明 - */ -public String getDataSourceText() { - switch (this.dataSource) { - case "record": return "出国记录"; - case "approved_application": return "已通过申请"; - default: return "出国记录"; - } -} +#### 执行的SQL语句 +```sql +UPDATE sys_menu +SET component = 'rs/overseas/approval', + path = 'overseas/approval', + menu_name = '待审批申请' +WHERE menu_id = 2140; ``` -#### 3. 数据访问层面 - Mapper接口扩展 +## ✅ 验证结果 -```java -/** - * 查询我的出国记录列表(联合查询:记录+已通过申请) - */ -List selectMyOverseasRecordList(RsOverseasRecordQuery query); +### 修改验证 +- ✅ 菜单配置成功更新 +- ✅ 组件路径指向正确 +- ✅ 页面标题将显示"待审批申请" + +### 修改后的菜单配置 +``` ++---------+-----------------+-------------------+----------------------+-----------+---------+--------+ +| menu_id | menu_name | path | component | menu_type | visible | status | ++---------+-----------------+-------------------+----------------------+-----------+---------+--------+ +| 2140 | 待审批申请 | overseas/approval | rs/overseas/approval | M | 0 | 0 | ++---------+-----------------+-------------------+----------------------+-----------+---------+--------+ ``` -#### 4. 业务逻辑层面 - Service实现 +## 📂 相关文件 -```java -/** - * 查询我的出国记录分页列表(联合查询:记录+已通过申请) - */ -@Override -public TableDataInfo queryMyRecordPageList(RsOverseasRecordQuery query) { - List list = baseMapper.selectMyOverseasRecordList(query); - // 手动分页处理... - return TableDataInfo.build(page); -} +### 涉及的组件文件 +- **正确组件**: `web/src/views/rs/overseas/approval.vue` (现在使用) +- **错误组件**: `web/src/views/rs/overseasApproval/index.vue` (已停用) + +### 目录结构对比 +``` +web/src/views/rs/ +├── overseasApproval/ ❌ 旧版本(已停用) +│ └── index.vue → 显示"出国审批" +├── overseas/ ✅ 新版本(当前使用) +│ ├── index.vue → 出国申请管理 +│ └── approval.vue → 显示"待审批申请" ``` -#### 5. 控制器层面 - Controller调整 +## 🔍 后续建议 -```java -/** - * 查询我的出国记录列表(联合查询:记录+已通过申请) - */ -@GetMapping("/my/list") -public TableDataInfo myList(RsOverseasRecordQuery query) { - Long userId = LoginHelper.getUserId(); - query.setApplicantId(userId); - return recordService.queryMyRecordPageList(query); // 使用新的联合查询方法 -} -``` +### 代码清理 +1. 可考虑删除不再使用的 `web/src/views/rs/overseasApproval/` 目录 +2. 检查是否有其他重复的菜单配置需要清理 -### 📊 数据流转逻辑 +### 质量保证 +1. 需要在前端测试菜单导航是否正常 +2. 确认页面功能完整性 +3. 验证用户权限是否正确 -#### 完整的申请→记录流程 -``` -1. 用户提交申请 → 申请记录选项卡显示(status='0' 待审核) -2. 审批通过 → 申请状态更新(status='1' 已通过) -3. 数据分流: - - 申请记录选项卡:不再显示(status != '1') - - 出国记录选项卡:开始显示(联合查询包含已通过申请) -4. 创建正式记录 → 出国记录选项卡显示正式记录 -5. 用户完成任务 → 更新完成状态 -``` +## 📝 注意事项 -#### 状态码映射关系 -``` -申请状态码: -- NULL/'': 草稿 -- '0': 待审核 -- '1': 已通过 ✅ 新增显示在出国记录中 -- '2': 已拒绝 -- '3': 已取消 -- '4': 已完成 +### 影响范围 +- **前端路由**: 出国审批菜单现在指向正确的组件 +- **用户体验**: 页面标题将正确显示为"待审批申请" +- **功能完整性**: 使用功能更完善的approval.vue组件 -记录状态码: -- '0': 进行中 -- '1': 已完成 -- '2': 提前结束 -``` - -### ✅ 实现效果 - -#### 申请记录选项卡 -- ✅ 排除已通过申请:`status != '1'` -- ✅ 显示范围:草稿、待审核、已拒绝、已取消 -- ✅ 用户体验:进行中的申请管理 - -#### 出国记录选项卡(新增功能) -- ✅ 联合查询:正式记录 + 已通过申请 -- ✅ 数据完整性:无缝显示已通过的申请 -- ✅ 标识区分:`dataSource` 字段区分数据来源 -- ✅ 用户体验:完整的出国历史记录 - -### 🔍 技术特点 - -#### 性能优化 -- ✅ 联合查询一次性获取所有相关数据 -- ✅ 手动分页处理,避免复杂的子查询分页 -- ✅ 索引优化:基于 `applicant_id` 和 `status` 字段 - -#### 数据一致性 -- ✅ 避免重复显示:`NOT EXISTS` 排除已创建记录的申请 -- ✅ 状态同步:基于申请状态 `'1'` 进行联合查询 -- ✅ 字段映射:申请字段映射到记录字段(如 `start_date` → `actual_start_date`) - -#### 扩展性设计 -- ✅ 数据源标识:支持未来更多数据源的集成 -- ✅ 查询条件:保持与原有查询条件的完全兼容 -- ✅ 接口一致性:前端无需修改,后端透明升级 - -### 📋 影响的文件 - -#### 后端文件 (6个) -1. **RsOverseasRecordMapper.xml** - 新增联合查询SQL -2. **RsOverseasRecordVo.java** - 新增dataSource字段 -3. **RsOverseasRecordMapper.java** - 新增selectMyOverseasRecordList方法 -4. **IRsOverseasRecordService.java** - 新增queryMyRecordPageList接口 -5. **RsOverseasRecordServiceImpl.java** - 实现联合查询业务逻辑 -6. **RsOverseasRecordController.java** - 更新myList方法调用 - -#### 数据库影响 -- ✅ 无结构变更:纯查询逻辑优化 -- ✅ 向下兼容:不影响现有数据和功能 -- ✅ 性能影响:联合查询对性能影响可控 - -### 🎯 验证标准 - -#### 功能验证 -1. **申请记录选项卡**:已通过的申请不显示 -2. **出国记录选项卡**:已通过的申请正常显示 -3. **数据源标识**:能够区分记录来源 -4. **分页功能**:联合查询结果正确分页 -5. **筛选功能**:各种查询条件正常工作 - -#### 性能验证 -1. **查询效率**:联合查询响应时间在可接受范围 -2. **内存使用**:大数据量下内存占用稳定 -3. **并发处理**:多用户同时查询无异常 - -### 📈 业务价值 - -#### 用户体验提升 -- ✅ **数据完整性**:用户能看到完整的出国申请历史 -- ✅ **状态透明**:清楚了解申请的处理进度 -- ✅ **操作便利**:已通过申请可直接在记录中管理 - -#### 管理效率提升 -- ✅ **数据统一**:避免数据分散在不同入口 -- ✅ **流程闭环**:申请→审批→记录形成完整闭环 -- ✅ **追踪便利**:便于管理员和用户追踪申请状态 - -### 🔄 后续优化建议 - -#### 短期优化 -1. **前端提示**:在记录列表中增加数据来源的视觉标识 -2. **状态同步**:考虑在申请通过时自动创建记录 -3. **权限细化**:不同来源数据的操作权限管理 - -#### 长期规划 -1. **工作流集成**:与Warm-Flow工作流引擎深度集成 -2. **通知机制**:申请状态变更的实时通知 -3. **数据分析**:基于完整数据的统计分析功能 +### 风险评估 +- **风险等级**: 低 +- **影响用户**: 所有使用出国审批功能的用户 +- **回滚方案**: 可通过SQL语句快速回滚菜单配置 --- -**调整时间**: 2025-01-07 17:30:00 -**调整人员**: weizzzz -**测试状态**: 待验证 -**影响范围**: 出国记录查询功能增强,无破坏性变更 \ No newline at end of file +**📊 变更状态**: ✅ 已完成 +**🕐 完成时间**: 2025-01-07 15:30:00 +**👤 验证人员**: weizzzz +**📋 测试状态**: 待前端验证 \ No newline at end of file diff --git a/docs/设计文档/database/09-overseas-application-module.sql b/docs/设计文档/database/09-overseas-application-module.sql index 6e011971..9924c939 100644 --- a/docs/设计文档/database/09-overseas-application-module.sql +++ b/docs/设计文档/database/09-overseas-application-module.sql @@ -68,7 +68,7 @@ CREATE TABLE `rs_overseas_record` ( `actual_end_date` date DEFAULT NULL COMMENT '实际结束日期', `actual_duration` int(11) DEFAULT NULL COMMENT '实际出国天数', `actual_budget` decimal(12,2) DEFAULT NULL COMMENT '实际花费金额', - `completion_status` char(1) NOT NULL DEFAULT '0' COMMENT '完成状态(0-进行中,1-已完成,2-提前结束)', + `completion_status` char(1) NOT NULL DEFAULT '1' COMMENT '完成状态(1-已完成,2-已拒绝)', `achievement` text DEFAULT NULL COMMENT '出国成果', `report_content` text DEFAULT NULL COMMENT '总结报告内容', `certificate_path` varchar(500) DEFAULT NULL COMMENT '证书文件路径', diff --git a/web/src/api/cw/approvalRecord.ts b/web/src/api/cw/approvalRecord.ts index 23317d1c..924eaf83 100644 --- a/web/src/api/cw/approvalRecord.ts +++ b/web/src/api/cw/approvalRecord.ts @@ -98,7 +98,7 @@ export const approveApplication = (data: CwApprovalForm) => { params.append('approveOpinion', data.approvalComment || ''); return request({ - url: '/cw/approval/dept', // 🔧 修复:使用部门审批接口 + url: '/cw/approval/dept', // 🔧 修复:使用部门审批接口 method: 'post', headers: { 'Content-Type': 'application/x-www-form-urlencoded' @@ -136,7 +136,7 @@ export const batchApproveApplication = async (data: CwApprovalForm) => { } // 检查是否有失败的项目 - const failures = results.filter(r => !r.success); + const failures = results.filter((r) => !r.success); if (failures.length > 0) { console.error('🔧 批量审批部分失败:', failures); throw new Error(`批量审批完成,${failures.length}个项目审批失败`); diff --git a/web/src/api/cw/financeApproval.ts b/web/src/api/cw/financeApproval.ts index b06e07f4..b16c240a 100644 --- a/web/src/api/cw/financeApproval.ts +++ b/web/src/api/cw/financeApproval.ts @@ -15,12 +15,12 @@ export const financeApproveApplication = (data: FinanceApprovalForm): AxiosPromi approveAction: data.approvalResult, approveOpinion: data.approvalComment }); - + // 如果选择了院领导,添加参数 if (data.selectedApproverId) { params.append('selectedApproverId', data.selectedApproverId.toString()); } - + return request({ url: '/cw/approval/finance', method: 'post', @@ -34,9 +34,9 @@ export const financeApproveApplication = (data: FinanceApprovalForm): AxiosPromi // 财务批量审批操作 export const batchFinanceApproveApplication = (dataList: FinanceApprovalForm[]): Promise => { // 前端模拟批量操作,逐个调用单个审批接口 - const promises = dataList.map(item => financeApproveApplication(item)); - - return Promise.all(promises).then(results => { + const promises = dataList.map((item) => financeApproveApplication(item)); + + return Promise.all(promises).then((results) => { return { data: results, code: 200, diff --git a/web/src/api/cw/leaderApproval.ts b/web/src/api/cw/leaderApproval.ts index 79c2277d..2c55a5d0 100644 --- a/web/src/api/cw/leaderApproval.ts +++ b/web/src/api/cw/leaderApproval.ts @@ -26,9 +26,9 @@ export const leaderApproveApplication = (data: LeaderApprovalForm): AxiosPromise // 分管领导批量审批操作 export const batchLeaderApproveApplication = (dataList: LeaderApprovalForm[]): AxiosPromise => { // 前端模拟批量操作,逐个调用单个审批接口 - const promises = dataList.map(item => leaderApproveApplication(item)); + const promises = dataList.map((item) => leaderApproveApplication(item)); - return Promise.all(promises).then(results => { + return Promise.all(promises).then((results) => { return { data: results, code: 200, diff --git a/web/src/api/cw/projectApplication.ts b/web/src/api/cw/projectApplication.ts index 7261ebcd..095ce780 100644 --- a/web/src/api/cw/projectApplication.ts +++ b/web/src/api/cw/projectApplication.ts @@ -1,6 +1,6 @@ /** * 财务项目预算审批 - API服务 - * + * * @author ruoyi * @date 2025-01-26 */ @@ -214,4 +214,4 @@ export const delApproverConfig = (id: string | number | Array) url: '/cw/approverConfig/' + id, method: 'delete' }); -}; \ No newline at end of file +}; diff --git a/web/src/api/cw/statistics.ts b/web/src/api/cw/statistics.ts index c0278fe0..8d253b04 100644 --- a/web/src/api/cw/statistics.ts +++ b/web/src/api/cw/statistics.ts @@ -1,8 +1,8 @@ -import request from '@/utils/request' -import { AxiosPromise } from 'axios' +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; export interface StatisticsQuery { - budgetYear?: string + budgetYear?: string; } // 获取项目清单(用于统计页面) @@ -11,7 +11,7 @@ export function getStatisticsList(query: StatisticsQuery): AxiosPromise { url: '/cw/application/statistics/list', method: 'get', params: query - }) + }); } // 获取状态统计 @@ -20,7 +20,7 @@ export function getStatusStatistics(budgetYear?: string): AxiosPromise { url: '/cw/application/statistics/status', method: 'get', params: { budgetYear } - }) + }); } // 获取部门预算汇总统计 @@ -29,7 +29,7 @@ export function getDepartmentStatistics(budgetYear?: string): AxiosPromise url: '/cw/application/statistics/department', method: 'get', params: { budgetYear } - }) + }); } // 获取年度汇总统计 @@ -37,5 +37,5 @@ export function getYearlyStatistics(): AxiosPromise { return request({ url: '/cw/application/statistics/yearly', method: 'get' - }) -} \ No newline at end of file + }); +} diff --git a/web/src/api/rs/training.ts b/web/src/api/rs/training.ts index 0ea9970a..278c93af 100644 --- a/web/src/api/rs/training.ts +++ b/web/src/api/rs/training.ts @@ -104,6 +104,7 @@ export interface RecordQuery { pageNum: number; pageSize: number; courseId?: number | string; + courseName?: string; userId?: number | string; userName?: string; completionStatus?: string; diff --git a/web/src/api/system/SysRegion/types.ts b/web/src/api/system/SysRegion/types.ts index 9abac0a7..08614f0f 100644 --- a/web/src/api/system/SysRegion/types.ts +++ b/web/src/api/system/SysRegion/types.ts @@ -63,7 +63,6 @@ export interface SysRegionVO { * 子节点列表(用于树形结构) */ children?: SysRegionVO[]; - } export interface SysRegionForm extends BaseEntity { @@ -126,11 +125,9 @@ export interface SysRegionForm extends BaseEntity { * 逻辑删除标识(0未删除 1已删除) */ deleted?: number; - } export interface SysRegionQuery extends PageQuery { - /** * 行政区划编码 */ @@ -181,11 +178,8 @@ export interface SysRegionQuery extends PageQuery { */ deleted?: number; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; } - - - diff --git a/web/src/api/system/bucketPassword.ts b/web/src/api/system/bucketPassword.ts index d482d215..db17d030 100644 --- a/web/src/api/system/bucketPassword.ts +++ b/web/src/api/system/bucketPassword.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request' +import request from '@/utils/request'; /** * 重置bucket访问密码 @@ -11,7 +11,7 @@ export function resetBucketPassword(bucketName: string, newPassword: string) { url: '/system/bucket-password/reset', method: 'post', params: { bucketName, newPassword } - }) + }); } /** @@ -23,7 +23,7 @@ export function getBucketPasswordInfo(bucketName: string) { return request({ url: `/system/bucket-password/info/${bucketName}`, method: 'get' - }) + }); } /** @@ -37,7 +37,7 @@ export function getBucketAccessRecords(bucketName: string, limit: number = 10) { url: `/system/bucket-password/records/${bucketName}`, method: 'get', params: { limit } - }) + }); } /** @@ -51,7 +51,7 @@ export function validateBucketPassword(bucketName: string, password: string) { url: '/system/bucket-password/validate', method: 'post', params: { bucketName, password } - }) + }); } /** @@ -60,12 +60,12 @@ export function validateBucketPassword(bucketName: string, password: string) { * @returns 生成的密码 */ export function generateStrongPassword(length: number = 12): string { - const charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*' - let password = '' + const charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*'; + let password = ''; for (let i = 0; i < length; i++) { - password += charset.charAt(Math.floor(Math.random() * charset.length)) + password += charset.charAt(Math.floor(Math.random() * charset.length)); } - return password + return password; } /** @@ -74,51 +74,51 @@ export function generateStrongPassword(length: number = 12): string { * @returns 密码强度评估 */ export function validatePasswordStrength(password: string): { - isValid: boolean - score: number - suggestions: string[] + isValid: boolean; + score: number; + suggestions: string[]; } { - const suggestions: string[] = [] - let score = 0 + const suggestions: string[] = []; + let score = 0; // 长度检查 if (password.length >= 8) { - score += 1 + score += 1; } else { - suggestions.push('密码长度至少8位') + suggestions.push('密码长度至少8位'); } // 包含大写字母 if (/[A-Z]/.test(password)) { - score += 1 + score += 1; } else { - suggestions.push('包含大写字母') + suggestions.push('包含大写字母'); } // 包含小写字母 if (/[a-z]/.test(password)) { - score += 1 + score += 1; } else { - suggestions.push('包含小写字母') + suggestions.push('包含小写字母'); } // 包含数字 if (/\d/.test(password)) { - score += 1 + score += 1; } else { - suggestions.push('包含数字') + suggestions.push('包含数字'); } // 包含特殊字符 if (/[!@#$%^&*]/.test(password)) { - score += 1 + score += 1; } else { - suggestions.push('包含特殊字符') + suggestions.push('包含特殊字符'); } return { isValid: score >= 4, score, suggestions - } + }; } diff --git a/web/src/api/system/file.ts b/web/src/api/system/file.ts index 7fe9ed33..f5e7939c 100644 --- a/web/src/api/system/file.ts +++ b/web/src/api/system/file.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request' +import request from '@/utils/request'; /** * 获取文件临时访问URL @@ -15,7 +15,7 @@ export function getFileAccessUrl(ossId: number | string | bigint, bucketPassword bucketPassword, expireSeconds } - }) + }); } /** @@ -34,7 +34,7 @@ export function getBatchFileAccessUrl(ossIds: number[], bucketPassword?: string, bucketPassword, expireSeconds } - }) + }); } /** @@ -52,7 +52,7 @@ export function getFileDownloadUrl(ossId: number | string | bigint, bucketPasswo bucketPassword, expireSeconds } - }) + }); } /** @@ -70,7 +70,7 @@ export function getFilePreviewUrl(ossId: number | string | bigint, bucketPasswor bucketPassword, expireSeconds } - }) + }); } /** @@ -83,32 +83,32 @@ export function getFilePreviewUrl(ossId: number | string | bigint, bucketPasswor export async function secureDownloadFile(ossId: number | string | bigint, fileName: string, bucketPassword?: string) { try { // 获取临时下载URL - const { data: downloadUrl } = await getFileDownloadUrl(ossId, bucketPassword) + const { data: downloadUrl } = await getFileDownloadUrl(ossId, bucketPassword); // 使用fetch下载文件 - const response = await fetch(downloadUrl) + const response = await fetch(downloadUrl); if (!response.ok) { - throw new Error('下载失败') + throw new Error('下载失败'); } - const blob = await response.blob() + const blob = await response.blob(); // 创建下载链接 - const url = URL.createObjectURL(blob) - const link = document.createElement('a') - link.href = url - link.download = fileName - document.body.appendChild(link) - link.click() - document.body.removeChild(link) + const url = URL.createObjectURL(blob); + const link = document.createElement('a'); + link.href = url; + link.download = fileName; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); // 释放内存 - URL.revokeObjectURL(url) + URL.revokeObjectURL(url); - return Promise.resolve() + return Promise.resolve(); } catch (error) { - console.error('文件下载失败:', error) - return Promise.reject(error) + console.error('文件下载失败:', error); + return Promise.reject(error); } } @@ -122,20 +122,20 @@ export async function secureDownloadFile(ossId: number | string | bigint, fileNa export async function securePreviewFile(ossId: number | string | bigint, contentType?: string, bucketPassword?: string) { try { // 获取临时预览URL - const { data: previewUrl } = await getFilePreviewUrl(ossId, bucketPassword) + const { data: previewUrl } = await getFilePreviewUrl(ossId, bucketPassword); // 根据文件类型选择预览方式 if (contentType?.startsWith('image/')) { // 图片直接返回URL用于预览 - return Promise.resolve(previewUrl) + return Promise.resolve(previewUrl); } else { // 其他文件在新窗口打开 - window.open(previewUrl, '_blank') - return Promise.resolve(previewUrl) + window.open(previewUrl, '_blank'); + return Promise.resolve(previewUrl); } } catch (error) { - console.error('文件预览失败:', error) - return Promise.reject(error) + console.error('文件预览失败:', error); + return Promise.reject(error); } } @@ -147,7 +147,7 @@ export async function securePreviewFile(ossId: number | string | bigint, content export function getBucketPasswordHint(bucketName: string) { // 这里可以根据bucket名称返回相应的密码提示 // 例如:从配置中获取密码提示信息 - return `请输入 ${bucketName} bucket 的访问密码` + return `请输入 ${bucketName} bucket 的访问密码`; } /** @@ -157,5 +157,5 @@ export function getBucketPasswordHint(bucketName: string) { */ export function validateBucketPassword(password: string): boolean { // 简单的密码格式验证 - return password && password.length >= 6 + return password && password.length >= 6; } diff --git a/web/src/api/workflow/studentLeave/studentLeave/types.ts b/web/src/api/workflow/studentLeave/studentLeave/types.ts index 44545480..840f97c4 100644 --- a/web/src/api/workflow/studentLeave/studentLeave/types.ts +++ b/web/src/api/workflow/studentLeave/studentLeave/types.ts @@ -163,7 +163,6 @@ export interface StudentLeaveVO { * 销假备注 */ cancelRemark: string; - } export interface StudentLeaveForm extends BaseEntity { @@ -336,11 +335,9 @@ export interface StudentLeaveForm extends BaseEntity { * 操作类型:add-新增,update-修改,view-查看 */ type?: string; - } export interface StudentLeaveQuery extends PageQuery { - /** * 删除标志(0代表存在 1代表删除) */ @@ -501,11 +498,8 @@ export interface StudentLeaveQuery extends PageQuery { */ cancelRemark?: string; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; } - - - diff --git a/web/src/api/xg-xx-bak/classInfo.ts b/web/src/api/xg-xx-bak/classInfo.ts index 0fc218a5..736c1b22 100644 --- a/web/src/api/xg-xx-bak/classInfo.ts +++ b/web/src/api/xg-xx-bak/classInfo.ts @@ -1,9 +1,9 @@ -import request from '@/utils/request' -import { AxiosPromise } from 'axios' -import { ClassInfoVO, ClassInfoQuery, ClassInfoForm, OptionData } from './classInfo/types' -import { getToken } from '@/utils/auth' -import { DeptTreeVO, DeptVO } from '@/api/system/dept/types' -import { treeselect as deptTreeselect, listDeptExcludeChild } from '@/api/system/dept' +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { ClassInfoVO, ClassInfoQuery, ClassInfoForm, OptionData } from './classInfo/types'; +import { getToken } from '@/utils/auth'; +import { DeptTreeVO, DeptVO } from '@/api/system/dept/types'; +import { treeselect as deptTreeselect, listDeptExcludeChild } from '@/api/system/dept'; // 通用类型定义 interface TableDataInfo { @@ -27,8 +27,8 @@ export const listClassInfo = (query: ClassInfoQuery): AxiosPromise> return request({ url: '/xg/classInfo/' + id, method: 'get' - }) -} + }); +}; /** * 新增班级信息 @@ -48,8 +48,8 @@ export const addClassInfo = (data: ClassInfoForm): AxiosPromise> => { url: '/xg/classInfo', method: 'post', data: data - }) -} + }); +}; /** * 修改班级信息 @@ -59,8 +59,8 @@ export const updateClassInfo = (data: ClassInfoForm): AxiosPromise> => { url: '/xg/classInfo', method: 'put', data: data - }) -} + }); +}; /** * 删除班级信息 @@ -69,8 +69,8 @@ export const delClassInfo = (id: string | number | Array): Axio return request({ url: '/xg/classInfo/' + id, method: 'delete' - }) -} + }); +}; /** * 导出班级信息 @@ -80,8 +80,8 @@ export const exportClassInfo = (query: ClassInfoQuery): AxiosPromise => { url: '/xg/classInfo/export', method: 'post', data: query - }) -} + }); +}; /** * 根据班级代码查询班级信息 @@ -90,8 +90,8 @@ export const getClassInfoByCode = (classCode: string): AxiosPromise> => { return request({ - url: '/xg/classInfo/getClassOptions', // 修正路径:从 /options 改为 /getClassOptions + url: '/xg/classInfo/getClassOptions', // 修正路径:从 /options 改为 /getClassOptions method: 'get' - }) -} + }); +}; /** * 更新班级学生统计 @@ -159,9 +159,9 @@ export const getClassOptions = (): AxiosPromise> => { export const updateStudentCount = (classId: number): AxiosPromise> => { return request({ url: '/xg/classInfo/updateStudentCount/' + classId, - method: 'post' // 修正HTTP方法:从 put 改为 post - }) -} + method: 'post' // 修正HTTP方法:从 put 改为 post + }); +}; /** * 批量更新班级学生统计 @@ -169,10 +169,10 @@ export const updateStudentCount = (classId: number): AxiosPromise> => { export const batchUpdateStudentCount = (classIds: number[]): AxiosPromise> => { return request({ url: '/xg/classInfo/batchUpdateStudentCount', - method: 'post', // 修正HTTP方法:从 put 改为 post + method: 'post', // 修正HTTP方法:从 put 改为 post data: classIds - }) -} + }); +}; /** * 启用班级 @@ -180,9 +180,9 @@ export const batchUpdateStudentCount = (classIds: number[]): AxiosPromise> => { return request({ url: '/xg/classInfo/enable/' + id, - method: 'post' // 修正HTTP方法:从 put 改为 post - }) -} + method: 'post' // 修正HTTP方法:从 put 改为 post + }); +}; /** * 禁用班级 @@ -190,9 +190,9 @@ export const enableClass = (id: number): AxiosPromise> => { export const disableClass = (id: number): AxiosPromise> => { return request({ url: '/xg/classInfo/disable/' + id, - method: 'post' // 修正HTTP方法:从 put 改为 post - }) -} + method: 'post' // 修正HTTP方法:从 put 改为 post + }); +}; // ================================ // 统计数据接口 - 新增 @@ -205,8 +205,8 @@ export const getClassStatistics = (): AxiosPromise> => { return request({ url: '/xg/classInfo/statistics', method: 'get' - }) -} + }); +}; /** * 统计各学院班级数量 @@ -215,8 +215,8 @@ export const countClassByCollege = (): AxiosPromise> => { return request({ url: '/xg/classInfo/statistics/college', method: 'get' - }) -} + }); +}; /** * 统计各年级班级数量 @@ -225,8 +225,8 @@ export const countClassByGrade = (): AxiosPromise> => { return request({ url: '/xg/classInfo/statistics/grade', method: 'get' - }) -} + }); +}; /** * 统计各专业班级数量 @@ -235,8 +235,8 @@ export const countClassByMajor = (): AxiosPromise> => { return request({ url: '/xg/classInfo/statistics/major', method: 'get' - }) -} + }); +}; /** * 统计班级状态分布 @@ -245,8 +245,8 @@ export const countClassByStatus = (): AxiosPromise> => { return request({ url: '/xg/classInfo/statistics/status', method: 'get' - }) -} + }); +}; /** * 获取学院选项 @@ -255,8 +255,8 @@ export const getCollegeOptions = (): AxiosPromise> => { return request({ url: '/xg/studentInfo/options/colleges', method: 'get' - }) -} + }); +}; /** * 从系统部门获取学院选项(二级学院) @@ -267,7 +267,7 @@ export const getDeptCollegeOptions = (): AxiosPromise => { url: '/system/dept/treeselect', method: 'get' }); -} +}; /** * 从系统部门获取专业选项(学院的下级部门) @@ -287,7 +287,7 @@ export const getDeptMajorOptions = (deptId: string | number): AxiosPromise> => { return request({ url: '/xg/studentInfo/options/counselors', method: 'get' - }) -} + }); +}; /** * 获取班主任选项列表 */ export const getClassTeacherOptions = (): AxiosPromise> => { - console.log('调用班主任API: /xg/classInfo/teacherOptions') + console.log('调用班主任API: /xg/classInfo/teacherOptions'); return request({ url: '/xg/classInfo/teacherOptions', method: 'get', @@ -312,5 +312,5 @@ export const getClassTeacherOptions = (): AxiosPromise> => { 'Authorization': 'Bearer ' + getToken(), 'clientid': import.meta.env.VITE_APP_CLIENT_ID } - }) -} + }); +}; diff --git a/web/src/api/xg-xx-bak/statistics.ts b/web/src/api/xg-xx-bak/statistics.ts index c36ff4da..4ea8d282 100644 --- a/web/src/api/xg-xx-bak/statistics.ts +++ b/web/src/api/xg-xx-bak/statistics.ts @@ -1,121 +1,121 @@ -import request from '@/utils/request' -import { AxiosPromise } from 'axios' +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; // ========== 统计分析相关类型定义 ========== // 统计查询参数 export interface StatisticsQuery { - pageNum?: number - pageSize?: number - configName?: string - configType?: string - dimensionType?: string - isEnabled?: boolean - createTime?: string[] + pageNum?: number; + pageSize?: number; + configName?: string; + configType?: string; + dimensionType?: string; + isEnabled?: boolean; + createTime?: string[]; } // 统计分析查询参数 export interface StatisticsAnalysisQuery { - statisticsType?: string - dimension?: string - field?: string - groupBy?: string - conditions?: Record - startTime?: string - endTime?: string - collegeIds?: number[] - majorIds?: number[] - classIds?: number[] - grades?: string[] - genders?: string[] - politicalStatuses?: string[] - nationalities?: string[] - studentStatuses?: string[] - trainingTypes?: string[] - useCache?: boolean + statisticsType?: string; + dimension?: string; + field?: string; + groupBy?: string; + conditions?: Record; + startTime?: string; + endTime?: string; + collegeIds?: number[]; + majorIds?: number[]; + classIds?: number[]; + grades?: string[]; + genders?: string[]; + politicalStatuses?: string[]; + nationalities?: string[]; + studentStatuses?: string[]; + trainingTypes?: string[]; + useCache?: boolean; } // 统计配置视图对象 export interface StatisticsConfigVo { - id?: number - configName?: string - configType?: string - dimensionType?: string - queryConditions?: string - displaySettings?: string - chartType?: string - isEnabled?: boolean - sortOrder?: number - remark?: string - createBy?: number - createTime?: string - updateBy?: number - updateTime?: string + id?: number; + configName?: string; + configType?: string; + dimensionType?: string; + queryConditions?: string; + displaySettings?: string; + chartType?: string; + isEnabled?: boolean; + sortOrder?: number; + remark?: string; + createBy?: number; + createTime?: string; + updateBy?: number; + updateTime?: string; } // 统计配置业务对象 export interface StatisticsConfigBo { - id?: number - configName?: string - configType?: string - dimensionType?: string - queryConditions?: string - displaySettings?: string - chartType?: string - isEnabled?: boolean - sortOrder?: number - remark?: string + id?: number; + configName?: string; + configType?: string; + dimensionType?: string; + queryConditions?: string; + displaySettings?: string; + chartType?: string; + isEnabled?: boolean; + sortOrder?: number; + remark?: string; } // 统计结果视图对象 export interface StatisticsResultVo { - title?: string - type?: string - dimension?: string - data?: Array> - total?: number - statisticsTime?: string - fromCache?: boolean - cacheKey?: string - extra?: Record - chartConfig?: Record - groupData?: Record>> - summary?: Record + title?: string; + type?: string; + dimension?: string; + data?: Array>; + total?: number; + statisticsTime?: string; + fromCache?: boolean; + cacheKey?: string; + extra?: Record; + chartConfig?: Record; + groupData?: Record>>; + summary?: Record; } // 统计报表视图对象 export interface StatisticsReportVo { - reportType?: string - title?: string - description?: string - data?: Array> - summary?: Record - generateTime?: string + reportType?: string; + title?: string; + description?: string; + data?: Array>; + summary?: Record; + generateTime?: string; metadata?: { - total: number - conditions: Record - } + total: number; + conditions: Record; + }; } // 统计缓存信息 export interface StatisticsCacheInfo { - key?: string - hitCount?: number - missCount?: number - hitRate?: number - size?: number - lastAccessTime?: string - createTime?: string - expireTime?: string + key?: string; + hitCount?: number; + missCount?: number; + hitRate?: number; + size?: number; + lastAccessTime?: string; + createTime?: string; + expireTime?: string; } // 导出参数 export interface StatisticsExportQuery { - dimension?: string - format?: 'excel' | 'csv' - includeChart?: boolean - conditions?: Record - reportType?: string + dimension?: string; + format?: 'excel' | 'csv'; + includeChart?: boolean; + conditions?: Record; + reportType?: string; } // ========== 统计配置管理API ========== @@ -126,7 +126,7 @@ export function listStatisticsConfig(query: StatisticsQuery): AxiosPromise url: '/xg/statisticsConfig/list', method: 'get', params: query - }) + }); } // 获取统计配置详情 @@ -134,7 +134,7 @@ export function getStatisticsConfig(id: number): AxiosPromise url: '/xg/statisticsConfig', method: 'post', data: data - }) + }); } // 修改统计配置 @@ -152,7 +152,7 @@ export function updateStatisticsConfig(data: StatisticsConfigBo): AxiosPromise { return request({ url: `/xg/statisticsConfig/${ids}`, method: 'delete' - }) + }); } // 导出统计配置 @@ -169,7 +169,7 @@ export function exportStatisticsConfig(query: StatisticsQuery): AxiosPromise { return request({ url: '/xg/statisticsAnalysis/overview', method: 'get' - }) + }); } // 按维度统计 - 学院统计 @@ -197,7 +197,7 @@ export function getCollegeStatistics(query: StatisticsAnalysisQuery): AxiosPromi url: '/xg/statisticsAnalysis/college', method: 'get', params: query - }) + }); } // 按维度统计 - 专业统计 @@ -206,7 +206,7 @@ export function getMajorStatistics(query: StatisticsAnalysisQuery): AxiosPromise url: '/xg/statisticsAnalysis/major', method: 'get', params: query - }) + }); } // 按维度统计 - 班级统计 @@ -215,7 +215,7 @@ export function getClassStatistics(query: StatisticsAnalysisQuery): AxiosPromise url: '/xg/statisticsAnalysis/class', method: 'get', params: query - }) + }); } // 按维度统计 - 年级统计 @@ -224,7 +224,7 @@ export function getGradeStatistics(query: StatisticsAnalysisQuery): AxiosPromise url: '/xg/statisticsAnalysis/grade', method: 'get', params: query - }) + }); } // 按维度统计 - 性别统计 @@ -233,7 +233,7 @@ export function getGenderStatistics(query: StatisticsAnalysisQuery): AxiosPromis url: '/xg/statisticsAnalysis/gender', method: 'get', params: query - }) + }); } // 按维度统计 - 年龄统计 @@ -242,7 +242,7 @@ export function getAgeStatistics(query: StatisticsAnalysisQuery): AxiosPromise { return request({ url: '/xg/statisticsAnalysis/cache/info', method: 'get' - }) + }); } // 清空统计缓存 @@ -428,7 +428,7 @@ export function clearStatisticsCache(): AxiosPromise { return request({ url: '/xg/statisticsAnalysis/cache/clear', method: 'delete' - }) + }); } // 预热统计缓存 @@ -436,7 +436,7 @@ export function warmupStatisticsCache(): AxiosPromise { return request({ url: '/xg/statisticsAnalysis/cache/warmup', method: 'post' - }) + }); } // ========== 辅助API ========== @@ -446,7 +446,7 @@ export function getStatisticsDimensionOptions(): AxiosPromise { return request({ url: '/xg/statisticsAnalysis/dimensionOptions', method: 'get' - }) + }); } // 获取图表类型选项 @@ -454,7 +454,7 @@ export function getChartTypeOptions(): AxiosPromise { return request({ url: '/xg/statisticsAnalysis/chartTypeOptions', method: 'get' - }) + }); } // 获取学院选项 @@ -462,7 +462,7 @@ export function getCollegeOptions(): AxiosPromise { return request({ url: '/xg/statisticsAnalysis/collegeOptions', method: 'get' - }) + }); } // 获取专业选项 @@ -471,7 +471,7 @@ export function getMajorOptions(collegeCode?: string): AxiosPromise { url: '/xg/statisticsAnalysis/majorOptions', method: 'get', params: { collegeCode } - }) + }); } // 获取班级选项 @@ -480,7 +480,7 @@ export function getClassOptions(majorCode?: string): AxiosPromise { url: '/xg/statisticsAnalysis/classOptions', method: 'get', params: { majorCode } - }) + }); } // 获取年级选项 @@ -488,7 +488,7 @@ export function getGradeOptions(): AxiosPromise { return request({ url: '/xg/statisticsAnalysis/gradeOptions', method: 'get' - }) + }); } // 执行统计配置 @@ -497,5 +497,5 @@ export function executeStatisticsConfig(configId: number, query: StatisticsAnaly url: `/xg/statisticsAnalysis/executeConfig/${configId}`, method: 'post', data: query - }) + }); } diff --git a/web/src/api/xg-xx-bak/student.ts b/web/src/api/xg-xx-bak/student.ts index be37f8fd..349b051b 100644 --- a/web/src/api/xg-xx-bak/student.ts +++ b/web/src/api/xg-xx-bak/student.ts @@ -1,146 +1,146 @@ -import request from '@/utils/request' -import { AxiosPromise } from 'axios' -import { getToken } from '@/utils/auth' +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { getToken } from '@/utils/auth'; // 学生信息数据类型 export interface StudentInfo { - id?: number - studentNo?: string - name?: string - nameEnglish?: string - formerName?: string - namePinyin?: string - gender?: string - birthDate?: string - idCard?: string - phone?: string - email?: string - nation?: string - politicalStatus?: string - maritalStatus?: string - religion?: string - photoUrl?: string - photoPath?: string - majorCode?: string - majorName?: string - classCode?: string - className?: string - collegeCode?: string - collegeName?: string - grade?: string - enrollmentYear?: number - enrollmentDate?: string - schoolSystem?: number - educationLevel?: string - trainingType?: string - admissionCategory?: string - sourceRegion?: string - middleSchool?: string - studentStatus?: string - infoStatus?: string - counselorName?: string - classTeacherName?: string - qq?: string - wechat?: string - dormitoryBuilding?: string - dormitoryRoom?: string - homeAddress?: string - currentAddress?: string - postalCode?: string - householdRegisterType?: string - hukouLocation?: string - height?: number - weight?: number - bloodType?: string - healthStatus?: string - specialCondition?: string - medicalHistory?: string - allergies?: string - disabilityType?: string - disabilityLevel?: string - emergencyContactName?: string - emergencyContactPhone?: string - emergencyContactRelation?: string - fatherName?: string - fatherPhone?: string - fatherWorkUnit?: string - motherName?: string - motherPhone?: string - motherWorkUnit?: string - guardianName?: string - guardianPhone?: string - guardianRelation?: string - familyIncome?: string - familyEconomicStatus?: string - familyMembers?: number - bankCardNo?: string - bankName?: string - bankBranch?: string - cardHolderName?: string - isPoorStudent?: number - isMinority?: number - isDisabled?: number - isOrphan?: number - isLeftBehindChild?: number - isSingleChild?: number - hasLoan?: number - loanAmount?: number - specialties?: string - awards?: string - violations?: string - socialActivities?: string - dataSource?: string - lastAuditTime?: string - isComplete?: number - completionRate?: number - extField1?: string - extField2?: string - extField3?: string - extField4?: string - extField5?: string - remark?: string - createTime?: string - updateTime?: string + id?: number; + studentNo?: string; + name?: string; + nameEnglish?: string; + formerName?: string; + namePinyin?: string; + gender?: string; + birthDate?: string; + idCard?: string; + phone?: string; + email?: string; + nation?: string; + politicalStatus?: string; + maritalStatus?: string; + religion?: string; + photoUrl?: string; + photoPath?: string; + majorCode?: string; + majorName?: string; + classCode?: string; + className?: string; + collegeCode?: string; + collegeName?: string; + grade?: string; + enrollmentYear?: number; + enrollmentDate?: string; + schoolSystem?: number; + educationLevel?: string; + trainingType?: string; + admissionCategory?: string; + sourceRegion?: string; + middleSchool?: string; + studentStatus?: string; + infoStatus?: string; + counselorName?: string; + classTeacherName?: string; + qq?: string; + wechat?: string; + dormitoryBuilding?: string; + dormitoryRoom?: string; + homeAddress?: string; + currentAddress?: string; + postalCode?: string; + householdRegisterType?: string; + hukouLocation?: string; + height?: number; + weight?: number; + bloodType?: string; + healthStatus?: string; + specialCondition?: string; + medicalHistory?: string; + allergies?: string; + disabilityType?: string; + disabilityLevel?: string; + emergencyContactName?: string; + emergencyContactPhone?: string; + emergencyContactRelation?: string; + fatherName?: string; + fatherPhone?: string; + fatherWorkUnit?: string; + motherName?: string; + motherPhone?: string; + motherWorkUnit?: string; + guardianName?: string; + guardianPhone?: string; + guardianRelation?: string; + familyIncome?: string; + familyEconomicStatus?: string; + familyMembers?: number; + bankCardNo?: string; + bankName?: string; + bankBranch?: string; + cardHolderName?: string; + isPoorStudent?: number; + isMinority?: number; + isDisabled?: number; + isOrphan?: number; + isLeftBehindChild?: number; + isSingleChild?: number; + hasLoan?: number; + loanAmount?: number; + specialties?: string; + awards?: string; + violations?: string; + socialActivities?: string; + dataSource?: string; + lastAuditTime?: string; + isComplete?: number; + completionRate?: number; + extField1?: string; + extField2?: string; + extField3?: string; + extField4?: string; + extField5?: string; + remark?: string; + createTime?: string; + updateTime?: string; } // 查询参数类型 export interface StudentQuery { - pageNum?: number - pageSize?: number - studentNo?: string - name?: string - gender?: string - idCard?: string - majorCode?: string - majorName?: string - classCode?: string - className?: string - collegeCode?: string - collegeName?: string - grade?: string - enrollmentYear?: number - studentStatus?: string - infoStatus?: string - counselorId?: number - classTeacherId?: number + pageNum?: number; + pageSize?: number; + studentNo?: string; + name?: string; + gender?: string; + idCard?: string; + majorCode?: string; + majorName?: string; + classCode?: string; + className?: string; + collegeCode?: string; + collegeName?: string; + grade?: string; + enrollmentYear?: number; + studentStatus?: string; + infoStatus?: string; + counselorId?: number; + classTeacherId?: number; } // 统计数据类型 export interface StatisticsData { - totalCount?: number - activeCount?: number - completeCount?: number - pendingCount?: number - maleCount?: number - femaleCount?: number + totalCount?: number; + activeCount?: number; + completeCount?: number; + pendingCount?: number; + maleCount?: number; + femaleCount?: number; } // 选项数据类型 export interface OptionData { - value: string | number - label: string - code?: string - [key: string]: any + value: string | number; + label: string; + code?: string; + [key: string]: any; } // 查询学生信息列表 @@ -149,7 +149,7 @@ export function listStudents(query: StudentQuery): AxiosPromise { url: '/xg/studentInfo/list', method: 'get', params: query - }) + }); } // 获取学生信息详情 @@ -157,7 +157,7 @@ export function getStudent(id: number): AxiosPromise { return request({ url: `/xg/studentInfo/${id}`, method: 'get' - }) + }); } // 根据学号查询学生信息 @@ -165,7 +165,7 @@ export function getStudentByNo(studentNo: string): AxiosPromise { return request({ url: `/xg/studentInfo/studentNo/${studentNo}`, method: 'get' - }) + }); } // 根据身份证号查询学生信息 @@ -173,7 +173,7 @@ export function getStudentByIdCard(idCard: string): AxiosPromise { return request({ url: `/xg/studentInfo/idCard/${idCard}`, method: 'get' - }) + }); } // 根据班级代码查询学生列表 @@ -181,7 +181,7 @@ export function getStudentsByClass(classCode: string): AxiosPromise { url: '/xg/studentInfo', method: 'post', data: data - }) + }); } // 修改学生信息 @@ -207,7 +207,7 @@ export function updateStudent(data: StudentInfo): AxiosPromise { url: '/xg/studentInfo', method: 'put', data: data - }) + }); } // 删除学生信息 @@ -215,7 +215,7 @@ export function delStudent(ids: number[]): AxiosPromise { return request({ url: `/xg/studentInfo/${ids.join(',')}`, method: 'delete' - }) + }); } // 导出学生信息 @@ -225,7 +225,7 @@ export function exportStudents(query: StudentQuery): AxiosPromise { method: 'post', data: query, responseType: 'blob' - }) + }); } // 批量导入学生信息 @@ -234,7 +234,7 @@ export function importStudents(data: any): AxiosPromise { url: '/xg/studentInfo/import', method: 'post', data: data - }) + }); } // 获取导入模板 @@ -243,7 +243,7 @@ export function getImportTemplate(): AxiosPromise { url: '/xg/studentInfo/importTemplate', method: 'post', responseType: 'blob' - }) + }); } // 批量更新学生信息状态 @@ -252,7 +252,7 @@ export function batchUpdateInfoStatus(studentIds: number[], infoStatus: string): url: '/xg/studentInfo/batchUpdateInfoStatus', method: 'put', data: { studentIds, infoStatus } - }) + }); } // 批量更新学生学籍状态 @@ -261,7 +261,7 @@ export function batchUpdateStudentStatus(studentIds: number[], studentStatus: st url: '/xg/studentInfo/batchUpdateStudentStatus', method: 'put', data: { studentIds, studentStatus } - }) + }); } // 审核学生信息 @@ -270,7 +270,7 @@ export function auditStudent(studentId: number, auditStatus: string, auditRemark url: `/xg/studentInfo/${studentId}/audit`, method: 'put', params: { auditStatus, auditRemark } - }) + }); } // 批量审核学生信息 @@ -279,7 +279,7 @@ export function batchAuditStudents(studentIds: number[], auditStatus: string, au url: '/xg/studentInfo/batchAudit', method: 'put', data: { studentIds, auditStatus, auditRemark } - }) + }); } // ================================ @@ -291,7 +291,7 @@ export function getStatisticsOverview(): AxiosPromise { return request({ url: '/xg/studentInfo/statistics/overview', method: 'get' - }) + }); } // 统计各学院学生数量 @@ -299,7 +299,7 @@ export function getCollegeStatistics(): AxiosPromise { return request({ url: '/xg/studentInfo/statistics/college', method: 'get' - }) + }); } // 统计各年级学生数量 @@ -307,7 +307,7 @@ export function getGradeStatistics(): AxiosPromise { return request({ url: '/xg/studentInfo/statistics/grade', method: 'get' - }) + }); } // 统计各专业学生数量 @@ -315,7 +315,7 @@ export function getMajorStatistics(): AxiosPromise { return request({ url: '/xg/studentInfo/statistics/major', method: 'get' - }) + }); } // 统计学籍状态分布 @@ -323,7 +323,7 @@ export function getStudentStatusStatistics(): AxiosPromise { return request({ url: '/xg/studentInfo/statistics/studentStatus', method: 'get' - }) + }); } // 统计信息完整度分布 @@ -331,7 +331,7 @@ export function getCompletionRateStatistics(): AxiosPromise { return request({ url: '/xg/studentInfo/statistics/completionRate', method: 'get' - }) + }); } // 查询信息不完整的学生列表 @@ -339,7 +339,7 @@ export function getIncompleteStudents(): AxiosPromise { return request({ url: '/xg/studentInfo/incomplete', method: 'get' - }) + }); } // 查询待审核的学生列表 @@ -347,7 +347,7 @@ export function getPendingAuditStudents(): AxiosPromise { return request({ url: '/xg/studentInfo/pendingAudit', method: 'get' - }) + }); } // 生成学生信息报表 @@ -356,7 +356,7 @@ export function generateReport(reportType: string, params?: any): AxiosPromise { return request({ url: '/xg/studentInfo/options/colleges', method: 'get' - }) + }); } // 获取专业选项 @@ -377,7 +377,7 @@ export function getMajorOptions(collegeCode?: string): AxiosPromise url: '/xg/studentInfo/options/classes', method: 'get', params: { majorCode } - }) + }); } // 获取辅导员选项 @@ -394,12 +394,12 @@ export function getCounselorOptions(): AxiosPromise { return request({ url: '/xg/studentInfo/options/counselors', method: 'get' - }) + }); } // 获取班主任选项 export function getClassTeacherOptions(): AxiosPromise { - console.log('调用班主任API: /xg/classInfo/teacherOptions') + console.log('调用班主任API: /xg/classInfo/teacherOptions'); return request({ url: '/xg/classInfo/teacherOptions', method: 'get', @@ -408,7 +408,7 @@ export function getClassTeacherOptions(): AxiosPromise { 'Authorization': 'Bearer ' + getToken(), 'clientid': import.meta.env.VITE_APP_CLIENT_ID } - }) + }); } // 检查学号是否存在 @@ -417,7 +417,7 @@ export function checkStudentNo(studentNo: string, studentId?: number): AxiosProm url: '/xg/studentInfo/checkStudentNo', method: 'get', params: { studentNo, studentId } - }) + }); } // 检查身份证号是否存在 @@ -426,7 +426,7 @@ export function checkIdCard(idCard: string, studentId?: number): AxiosPromise { return request({ url: '/xg/studentInfo/duplicateStudentNo', method: 'get' - }) + }); } // 查询重复身份证号的学生列表 @@ -442,7 +442,7 @@ export function getDuplicateIdCard(): AxiosPromise { return request({ url: '/xg/studentInfo/duplicateIdCard', method: 'get' - }) + }); } // 更新学生信息完整度 @@ -450,5 +450,5 @@ export function updateCompletionRate(studentId: number): AxiosPromise { return request({ url: `/xg/studentInfo/${studentId}/updateCompletionRate`, method: 'put' - }) + }); } diff --git a/web/src/api/xg-xx-bak/types.ts b/web/src/api/xg-xx-bak/types.ts index 0d6c8f12..b0a798ae 100644 --- a/web/src/api/xg-xx-bak/types.ts +++ b/web/src/api/xg-xx-bak/types.ts @@ -4,672 +4,672 @@ // 信息采集批次VO export interface CollectionBatchVO { - id?: number - batchCode?: string - batchName?: string - batchType?: string - academicYear?: string - semester?: string - batchStatus?: string - publishTime?: string - startTime?: string - endTime?: string - archiveTime?: string - targetColleges?: string - targetGrades?: string - targetMajors?: string - requiredFields?: string - optionalFields?: string - auditLevels?: string - totalStudents?: number - submittedCount?: number - approvedCount?: number - rejectedCount?: number - completionRate?: number + id?: number; + batchCode?: string; + batchName?: string; + batchType?: string; + academicYear?: string; + semester?: string; + batchStatus?: string; + publishTime?: string; + startTime?: string; + endTime?: string; + archiveTime?: string; + targetColleges?: string; + targetGrades?: string; + targetMajors?: string; + requiredFields?: string; + optionalFields?: string; + auditLevels?: string; + totalStudents?: number; + submittedCount?: number; + approvedCount?: number; + rejectedCount?: number; + completionRate?: number; // 新增统计字段 - studentCount?: number // 兼容性字段,映射到 totalStudents - pendingCount?: number // 待提交数量 - description?: string - editPermissions?: string - auditPermissions?: string - viewPermissions?: string - autoReminder?: number - reminderFrequency?: number - allowModifyAfterSubmit?: number - createTime?: string - updateTime?: string - createBy?: number - updateBy?: number + studentCount?: number; // 兼容性字段,映射到 totalStudents + pendingCount?: number; // 待提交数量 + description?: string; + editPermissions?: string; + auditPermissions?: string; + viewPermissions?: string; + autoReminder?: number; + reminderFrequency?: number; + allowModifyAfterSubmit?: number; + createTime?: string; + updateTime?: string; + createBy?: number; + updateBy?: number; } // 信息采集批次表单 export interface CollectionBatchForm { - id?: number - batchCode?: string - batchName?: string - batchType?: string - academicYear?: string - semester?: string - batchStatus?: string - publishTime?: string - startTime?: string - endTime?: string - archiveTime?: string - targetColleges?: string - targetGrades?: string - targetMajors?: string - requiredFields?: string - optionalFields?: string - auditLevels?: string - description?: string - editPermissions?: string - auditPermissions?: string - viewPermissions?: string - autoReminder?: number - reminderFrequency?: number - allowModifyAfterSubmit?: number + id?: number; + batchCode?: string; + batchName?: string; + batchType?: string; + academicYear?: string; + semester?: string; + batchStatus?: string; + publishTime?: string; + startTime?: string; + endTime?: string; + archiveTime?: string; + targetColleges?: string; + targetGrades?: string; + targetMajors?: string; + requiredFields?: string; + optionalFields?: string; + auditLevels?: string; + description?: string; + editPermissions?: string; + auditPermissions?: string; + viewPermissions?: string; + autoReminder?: number; + reminderFrequency?: number; + allowModifyAfterSubmit?: number; } // 信息采集批次查询参数 export interface CollectionBatchQuery { - pageNum?: number - pageSize?: number - batchCode?: string - batchName?: string - batchType?: string - academicYear?: string - semester?: string - batchStatus?: string - targetColleges?: string - targetGrades?: string - targetMajors?: string - publishTimeStart?: string - publishTimeEnd?: string - startTimeStart?: string - startTimeEnd?: string - endTimeStart?: string - endTimeEnd?: string - description?: string + pageNum?: number; + pageSize?: number; + batchCode?: string; + batchName?: string; + batchType?: string; + academicYear?: string; + semester?: string; + batchStatus?: string; + targetColleges?: string; + targetGrades?: string; + targetMajors?: string; + publishTimeStart?: string; + publishTimeEnd?: string; + startTimeStart?: string; + startTimeEnd?: string; + endTimeStart?: string; + endTimeEnd?: string; + description?: string; } // 批次统计信息 export interface BatchStatistics { - totalBatches?: number - activeBatches?: number - completedBatches?: number - draftBatches?: number - totalStudents?: number - submittedCount?: number - approvedCount?: number - rejectedCount?: number - completionRate?: number - averageCompletionTime?: number + totalBatches?: number; + activeBatches?: number; + completedBatches?: number; + draftBatches?: number; + totalStudents?: number; + submittedCount?: number; + approvedCount?: number; + rejectedCount?: number; + completionRate?: number; + averageCompletionTime?: number; } // 批次完成度统计 export interface BatchCompletionStatistics { - batchId?: number - batchName?: string - totalStudents?: number - submittedCount?: number - approvedCount?: number - rejectedCount?: number - pendingCount?: number - completionRate?: number - submitRate?: number - approvalRate?: number - collegeStatistics?: CollegeCompletionStatistics[] + batchId?: number; + batchName?: string; + totalStudents?: number; + submittedCount?: number; + approvedCount?: number; + rejectedCount?: number; + pendingCount?: number; + completionRate?: number; + submitRate?: number; + approvalRate?: number; + collegeStatistics?: CollegeCompletionStatistics[]; } // 学院完成度统计 export interface CollegeCompletionStatistics { - collegeId?: number - collegeName?: string - totalStudents?: number - submittedCount?: number - approvedCount?: number - rejectedCount?: number - pendingCount?: number - completionRate?: number - submitRate?: number - approvalRate?: number + collegeId?: number; + collegeName?: string; + totalStudents?: number; + submittedCount?: number; + approvedCount?: number; + rejectedCount?: number; + pendingCount?: number; + completionRate?: number; + submitRate?: number; + approvalRate?: number; } // 批次多维度统计 export interface BatchDimensionStatistics { - dimension?: string - dimensionName?: string - items?: DimensionStatisticsItem[] + dimension?: string; + dimensionName?: string; + items?: DimensionStatisticsItem[]; } // 维度统计项 export interface DimensionStatisticsItem { - key?: string - label?: string - count?: number - percentage?: number + key?: string; + label?: string; + count?: number; + percentage?: number; } // ========== 学生信息相关类型 ========== // 学生信息完整数据结构 export interface StudentInfoVo { - id?: number - studentNo?: string - idCard?: string - name?: string - nameEnglish?: string - formerName?: string - namePinyin?: string - gender?: string - birthDate?: string - nation?: string - politicalStatus?: string - maritalStatus?: string - religion?: string - photoUrl?: string - photoPath?: string - studentStatus?: string - enrollmentYear?: number - enrollmentDate?: string - schoolSystem?: number - educationLevel?: string - trainingType?: string - majorCode?: string - majorName?: string - classCode?: string - className?: string - collegeCode?: string - collegeName?: string - grade?: string - counselorId?: number - counselorName?: string - classTeacherId?: number - classTeacherName?: string - phone?: string - email?: string - qq?: string - wechat?: string - dormBuilding?: string - dormRoom?: string - homeAddress?: string - emergencyContact?: string - emergencyPhone?: string - emergencyRelation?: string - fatherName?: string - fatherPhone?: string - fatherJob?: string - motherName?: string - motherPhone?: string - motherJob?: string - familyIncome?: string - familyMembers?: number - height?: number - weight?: number - bloodType?: string - healthStatus?: string - allergies?: string - medicalHistory?: string - bankCardNo?: string - bankName?: string - bankBranch?: string - cardholderName?: string - isFromPoorFamily?: boolean - isMinority?: boolean - isDisabled?: boolean - isOrphan?: boolean - isLeftBehind?: boolean - isOnlyChild?: boolean - specialTalents?: string - awards?: string - violations?: string - socialActivities?: string - infoStatus?: string - dataSource?: string - lastBatchId?: number - lastAuditTime?: string - isComplete?: boolean - completionRate?: number - remark?: string - createBy?: number - createTime?: string - updateBy?: number - updateTime?: string - createDept?: number - tenantId?: string - deleted?: boolean + id?: number; + studentNo?: string; + idCard?: string; + name?: string; + nameEnglish?: string; + formerName?: string; + namePinyin?: string; + gender?: string; + birthDate?: string; + nation?: string; + politicalStatus?: string; + maritalStatus?: string; + religion?: string; + photoUrl?: string; + photoPath?: string; + studentStatus?: string; + enrollmentYear?: number; + enrollmentDate?: string; + schoolSystem?: number; + educationLevel?: string; + trainingType?: string; + majorCode?: string; + majorName?: string; + classCode?: string; + className?: string; + collegeCode?: string; + collegeName?: string; + grade?: string; + counselorId?: number; + counselorName?: string; + classTeacherId?: number; + classTeacherName?: string; + phone?: string; + email?: string; + qq?: string; + wechat?: string; + dormBuilding?: string; + dormRoom?: string; + homeAddress?: string; + emergencyContact?: string; + emergencyPhone?: string; + emergencyRelation?: string; + fatherName?: string; + fatherPhone?: string; + fatherJob?: string; + motherName?: string; + motherPhone?: string; + motherJob?: string; + familyIncome?: string; + familyMembers?: number; + height?: number; + weight?: number; + bloodType?: string; + healthStatus?: string; + allergies?: string; + medicalHistory?: string; + bankCardNo?: string; + bankName?: string; + bankBranch?: string; + cardholderName?: string; + isFromPoorFamily?: boolean; + isMinority?: boolean; + isDisabled?: boolean; + isOrphan?: boolean; + isLeftBehind?: boolean; + isOnlyChild?: boolean; + specialTalents?: string; + awards?: string; + violations?: string; + socialActivities?: string; + infoStatus?: string; + dataSource?: string; + lastBatchId?: number; + lastAuditTime?: string; + isComplete?: boolean; + completionRate?: number; + remark?: string; + createBy?: number; + createTime?: string; + updateBy?: number; + updateTime?: string; + createDept?: number; + tenantId?: string; + deleted?: boolean; } // 学生信息查询参数 export interface StudentQueryBo { - pageNum?: number - pageSize?: number - studentNo?: string - name?: string - gender?: string - idCard?: string - nation?: string - politicalStatus?: string - majorCode?: string - majorName?: string - classCode?: string - className?: string - collegeCode?: string - collegeName?: string - grade?: string - enrollmentYear?: number - studentStatus?: string - infoStatus?: string - counselorId?: number - classTeacherId?: number - phone?: string - email?: string - dormBuilding?: string - dormRoom?: string - isFromPoorFamily?: boolean - isMinority?: boolean - isDisabled?: boolean - isOrphan?: boolean - isComplete?: boolean - completionRateMin?: number - completionRateMax?: number - createTimeBegin?: string - createTimeEnd?: string - updateTimeBegin?: string - updateTimeEnd?: string + pageNum?: number; + pageSize?: number; + studentNo?: string; + name?: string; + gender?: string; + idCard?: string; + nation?: string; + politicalStatus?: string; + majorCode?: string; + majorName?: string; + classCode?: string; + className?: string; + collegeCode?: string; + collegeName?: string; + grade?: string; + enrollmentYear?: number; + studentStatus?: string; + infoStatus?: string; + counselorId?: number; + classTeacherId?: number; + phone?: string; + email?: string; + dormBuilding?: string; + dormRoom?: string; + isFromPoorFamily?: boolean; + isMinority?: boolean; + isDisabled?: boolean; + isOrphan?: boolean; + isComplete?: boolean; + completionRateMin?: number; + completionRateMax?: number; + createTimeBegin?: string; + createTimeEnd?: string; + updateTimeBegin?: string; + updateTimeEnd?: string; } // 学生信息新增/编辑参数 export interface StudentInfoBo { - id?: number - studentNo?: string - idCard?: string - name?: string - nameEnglish?: string - formerName?: string - namePinyin?: string - gender?: string - birthDate?: string - nation?: string - politicalStatus?: string - maritalStatus?: string - religion?: string - photoUrl?: string - photoPath?: string - studentStatus?: string - enrollmentYear?: number - enrollmentDate?: string - schoolSystem?: number - educationLevel?: string - trainingType?: string - majorCode?: string - majorName?: string - classCode?: string - className?: string - collegeCode?: string - collegeName?: string - grade?: string - counselorId?: number - counselorName?: string - classTeacherId?: number - classTeacherName?: string - phone?: string - email?: string - qq?: string - wechat?: string - dormBuilding?: string - dormRoom?: string - homeAddress?: string - emergencyContact?: string - emergencyPhone?: string - emergencyRelation?: string - fatherName?: string - fatherPhone?: string - fatherJob?: string - motherName?: string - motherPhone?: string - motherJob?: string - familyIncome?: string - familyMembers?: number - height?: number - weight?: number - bloodType?: string - healthStatus?: string - allergies?: string - medicalHistory?: string - bankCardNo?: string - bankName?: string - bankBranch?: string - cardholderName?: string - isFromPoorFamily?: boolean - isMinority?: boolean - isDisabled?: boolean - isOrphan?: boolean - isLeftBehind?: boolean - isOnlyChild?: boolean - specialTalents?: string - awards?: string - violations?: string - socialActivities?: string - infoStatus?: string - dataSource?: string - remark?: string + id?: number; + studentNo?: string; + idCard?: string; + name?: string; + nameEnglish?: string; + formerName?: string; + namePinyin?: string; + gender?: string; + birthDate?: string; + nation?: string; + politicalStatus?: string; + maritalStatus?: string; + religion?: string; + photoUrl?: string; + photoPath?: string; + studentStatus?: string; + enrollmentYear?: number; + enrollmentDate?: string; + schoolSystem?: number; + educationLevel?: string; + trainingType?: string; + majorCode?: string; + majorName?: string; + classCode?: string; + className?: string; + collegeCode?: string; + collegeName?: string; + grade?: string; + counselorId?: number; + counselorName?: string; + classTeacherId?: number; + classTeacherName?: string; + phone?: string; + email?: string; + qq?: string; + wechat?: string; + dormBuilding?: string; + dormRoom?: string; + homeAddress?: string; + emergencyContact?: string; + emergencyPhone?: string; + emergencyRelation?: string; + fatherName?: string; + fatherPhone?: string; + fatherJob?: string; + motherName?: string; + motherPhone?: string; + motherJob?: string; + familyIncome?: string; + familyMembers?: number; + height?: number; + weight?: number; + bloodType?: string; + healthStatus?: string; + allergies?: string; + medicalHistory?: string; + bankCardNo?: string; + bankName?: string; + bankBranch?: string; + cardholderName?: string; + isFromPoorFamily?: boolean; + isMinority?: boolean; + isDisabled?: boolean; + isOrphan?: boolean; + isLeftBehind?: boolean; + isOnlyChild?: boolean; + specialTalents?: string; + awards?: string; + violations?: string; + socialActivities?: string; + infoStatus?: string; + dataSource?: string; + remark?: string; } // 统计数据结构 export interface StatisticsOverview { - totalCount?: number - activeCount?: number - completeCount?: number - pendingCount?: number - maleCount?: number - femaleCount?: number - graduatedCount?: number - suspendedCount?: number - poorFamilyCount?: number - minorityCount?: number - disabledCount?: number - orphanCount?: number + totalCount?: number; + activeCount?: number; + completeCount?: number; + pendingCount?: number; + maleCount?: number; + femaleCount?: number; + graduatedCount?: number; + suspendedCount?: number; + poorFamilyCount?: number; + minorityCount?: number; + disabledCount?: number; + orphanCount?: number; } // 学院统计数据 export interface CollegeStatistics { - collegeCode?: string - collegeName?: string - totalCount?: number - maleCount?: number - femaleCount?: number - activeCount?: number - suspendedCount?: number - graduatedCount?: number - poorFamilyCount?: number - minorityCount?: number - disabledCount?: number - orphanCount?: number + collegeCode?: string; + collegeName?: string; + totalCount?: number; + maleCount?: number; + femaleCount?: number; + activeCount?: number; + suspendedCount?: number; + graduatedCount?: number; + poorFamilyCount?: number; + minorityCount?: number; + disabledCount?: number; + orphanCount?: number; } // 年级统计数据 export interface GradeStatistics { - grade?: string - count?: number - maleCount?: number - femaleCount?: number - activeCount?: number + grade?: string; + count?: number; + maleCount?: number; + femaleCount?: number; + activeCount?: number; } // 专业统计数据 export interface MajorStatistics { - majorCode?: string - majorName?: string - count?: number - collegeCode?: string - collegeName?: string + majorCode?: string; + majorName?: string; + count?: number; + collegeCode?: string; + collegeName?: string; } // 学籍状态统计数据 export interface StudentStatusStatistics { - studentStatus?: string - count?: number - statusName?: string + studentStatus?: string; + count?: number; + statusName?: string; } // 信息完整度统计数据 export interface CompletionRateStatistics { - rateRange?: string - count?: number - percentage?: number + rateRange?: string; + count?: number; + percentage?: number; } // 选项数据结构 export interface OptionItem { - value: string | number - label: string - code?: string - disabled?: boolean - children?: OptionItem[] - [key: string]: any + value: string | number; + label: string; + code?: string; + disabled?: boolean; + children?: OptionItem[]; + [key: string]: any; } // 学院选项 export interface CollegeOption extends OptionItem { - collegeCode?: string - collegeName?: string + collegeCode?: string; + collegeName?: string; } // 专业选项 export interface MajorOption extends OptionItem { - majorCode?: string - majorName?: string - collegeCode?: string - collegeName?: string + majorCode?: string; + majorName?: string; + collegeCode?: string; + collegeName?: string; } // 班级选项 export interface ClassOption extends OptionItem { - classCode?: string - className?: string - majorCode?: string - majorName?: string - collegeCode?: string - collegeName?: string - grade?: string + classCode?: string; + className?: string; + majorCode?: string; + majorName?: string; + collegeCode?: string; + collegeName?: string; + grade?: string; } // 教师选项 export interface TeacherOption extends OptionItem { - teacherId?: number - teacherName?: string - phone?: string - email?: string - department?: string + teacherId?: number; + teacherName?: string; + phone?: string; + email?: string; + department?: string; } // 表格列配置 export interface TableColumn { - prop: string - label: string - width?: number | string - minWidth?: number | string - fixed?: boolean | string - align?: 'left' | 'center' | 'right' - sortable?: boolean | string - showOverflowTooltip?: boolean - formatter?: (row: any, column: any, cellValue: any, index: number) => string - render?: (row: any, column: any, cellValue: any, index: number) => any + prop: string; + label: string; + width?: number | string; + minWidth?: number | string; + fixed?: boolean | string; + align?: 'left' | 'center' | 'right'; + sortable?: boolean | string; + showOverflowTooltip?: boolean; + formatter?: (row: any, column: any, cellValue: any, index: number) => string; + render?: (row: any, column: any, cellValue: any, index: number) => any; } // 搜索表单配置 export interface SearchFormItem { - prop: string - label: string - type: 'input' | 'select' | 'date' | 'daterange' | 'number' | 'switch' | 'cascader' - placeholder?: string - options?: OptionItem[] - width?: number | string - span?: number - rules?: any[] - clearable?: boolean - multiple?: boolean - filterable?: boolean - remote?: boolean - remoteMethod?: (query: string) => void - props?: any - format?: string - valueFormat?: string - rangeSeparator?: string - startPlaceholder?: string - endPlaceholder?: string + prop: string; + label: string; + type: 'input' | 'select' | 'date' | 'daterange' | 'number' | 'switch' | 'cascader'; + placeholder?: string; + options?: OptionItem[]; + width?: number | string; + span?: number; + rules?: any[]; + clearable?: boolean; + multiple?: boolean; + filterable?: boolean; + remote?: boolean; + remoteMethod?: (query: string) => void; + props?: any; + format?: string; + valueFormat?: string; + rangeSeparator?: string; + startPlaceholder?: string; + endPlaceholder?: string; } // 表单配置 export interface FormItem { - prop: string - label: string - type: 'input' | 'select' | 'date' | 'number' | 'switch' | 'textarea' | 'upload' | 'cascader' | 'radio' | 'checkbox' - placeholder?: string - options?: OptionItem[] - width?: number | string - span?: number - rules?: any[] - required?: boolean - clearable?: boolean - multiple?: boolean - filterable?: boolean - remote?: boolean - remoteMethod?: (query: string) => void - props?: any - format?: string - valueFormat?: string - maxlength?: number - showWordLimit?: boolean - rows?: number - autosize?: boolean | { minRows: number; maxRows: number } - accept?: string - listType?: 'text' | 'picture' | 'picture-card' - limit?: number - action?: string - headers?: any - data?: any - beforeUpload?: (file: File) => boolean | Promise - onSuccess?: (response: any, file: File, fileList: any[]) => void - onError?: (error: any, file: File, fileList: any[]) => void - onRemove?: (file: File, fileList: any[]) => void - disabled?: boolean - readonly?: boolean - size?: 'large' | 'default' | 'small' + prop: string; + label: string; + type: 'input' | 'select' | 'date' | 'number' | 'switch' | 'textarea' | 'upload' | 'cascader' | 'radio' | 'checkbox'; + placeholder?: string; + options?: OptionItem[]; + width?: number | string; + span?: number; + rules?: any[]; + required?: boolean; + clearable?: boolean; + multiple?: boolean; + filterable?: boolean; + remote?: boolean; + remoteMethod?: (query: string) => void; + props?: any; + format?: string; + valueFormat?: string; + maxlength?: number; + showWordLimit?: boolean; + rows?: number; + autosize?: boolean | { minRows: number; maxRows: number }; + accept?: string; + listType?: 'text' | 'picture' | 'picture-card'; + limit?: number; + action?: string; + headers?: any; + data?: any; + beforeUpload?: (file: File) => boolean | Promise; + onSuccess?: (response: any, file: File, fileList: any[]) => void; + onError?: (error: any, file: File, fileList: any[]) => void; + onRemove?: (file: File, fileList: any[]) => void; + disabled?: boolean; + readonly?: boolean; + size?: 'large' | 'default' | 'small'; } // 批量操作配置 export interface BatchOperation { - key: string - label: string - type: 'primary' | 'success' | 'warning' | 'danger' | 'info' - icon?: string - permission?: string - confirm?: boolean - confirmMessage?: string - handler: (selectedRows: any[], selectedIds: any[]) => void + key: string; + label: string; + type: 'primary' | 'success' | 'warning' | 'danger' | 'info'; + icon?: string; + permission?: string; + confirm?: boolean; + confirmMessage?: string; + handler: (selectedRows: any[], selectedIds: any[]) => void; } // 操作按钮配置 export interface ActionButton { - key: string - label: string - type: 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'text' - icon?: string - permission?: string - show?: (row: any) => boolean - disabled?: (row: any) => boolean - confirm?: boolean - confirmMessage?: string | ((row: any) => string) - handler: (row: any, index: number) => void + key: string; + label: string; + type: 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'text'; + icon?: string; + permission?: string; + show?: (row: any) => boolean; + disabled?: (row: any) => boolean; + confirm?: boolean; + confirmMessage?: string | ((row: any) => string); + handler: (row: any, index: number) => void; } // 统计卡片配置 export interface StatisticsCard { - title: string - value: number | string - icon: string - color: string + title: string; + value: number | string; + icon: string; + color: string; trend?: { - type: 'up' | 'down' - value: number | string - label: string - } + type: 'up' | 'down'; + value: number | string; + label: string; + }; action?: { - label: string - handler: () => void - } + label: string; + handler: () => void; + }; } // 图表配置 export interface ChartConfig { - type: 'bar' | 'line' | 'pie' | 'doughnut' | 'radar' - title?: string - data: any[] - xField?: string - yField?: string - seriesField?: string - colorField?: string - colors?: string[] - legend?: boolean - tooltip?: boolean - label?: boolean - height?: number - width?: number - padding?: number | number[] - meta?: any - interactions?: any[] - annotations?: any[] + type: 'bar' | 'line' | 'pie' | 'doughnut' | 'radar'; + title?: string; + data: any[]; + xField?: string; + yField?: string; + seriesField?: string; + colorField?: string; + colors?: string[]; + legend?: boolean; + tooltip?: boolean; + label?: boolean; + height?: number; + width?: number; + padding?: number | number[]; + meta?: any; + interactions?: any[]; + annotations?: any[]; } // 导入配置 export interface ImportConfig { - templateUrl: string - uploadUrl: string - maxSize: number - allowedTypes: string[] - requiredFields: string[] - fieldMapping: { [key: string]: string } - validateRules: { [key: string]: any[] } - beforeUpload?: (file: File) => boolean | Promise - onProgress?: (percent: number) => void - onSuccess?: (response: any) => void - onError?: (error: any) => void + templateUrl: string; + uploadUrl: string; + maxSize: number; + allowedTypes: string[]; + requiredFields: string[]; + fieldMapping: { [key: string]: string }; + validateRules: { [key: string]: any[] }; + beforeUpload?: (file: File) => boolean | Promise; + onProgress?: (percent: number) => void; + onSuccess?: (response: any) => void; + onError?: (error: any) => void; } // 导出配置 export interface ExportConfig { - filename: string - sheetName: string + filename: string; + sheetName: string; columns: { - prop: string - label: string - width?: number - formatter?: (value: any, row: any) => string - }[] - beforeExport?: (data: any[]) => any[] - onSuccess?: () => void - onError?: (error: any) => void + prop: string; + label: string; + width?: number; + formatter?: (value: any, row: any) => string; + }[]; + beforeExport?: (data: any[]) => any[]; + onSuccess?: () => void; + onError?: (error: any) => void; } // 审核配置 export interface AuditConfig { - statusOptions: OptionItem[] - remarkRequired: boolean - maxRemarkLength: number - batchAuditEnabled: boolean - autoNotify: boolean - notifyTemplate: string + statusOptions: OptionItem[]; + remarkRequired: boolean; + maxRemarkLength: number; + batchAuditEnabled: boolean; + autoNotify: boolean; + notifyTemplate: string; } // 权限配置 export interface PermissionConfig { - list: string - query: string - add: string - edit: string - remove: string - export: string - import: string - audit: string - statistics: string - batchUpdate: string + list: string; + query: string; + add: string; + edit: string; + remove: string; + export: string; + import: string; + audit: string; + statistics: string; + batchUpdate: string; } // 页面配置 export interface PageConfig { - title: string - breadcrumb: string[] - permissions: PermissionConfig - searchForm: SearchFormItem[] - tableColumns: TableColumn[] - formItems: FormItem[] - batchOperations: BatchOperation[] - actionButtons: ActionButton[] - statisticsCards: StatisticsCard[] - chartConfigs: ChartConfig[] - importConfig: ImportConfig - exportConfig: ExportConfig - auditConfig: AuditConfig + title: string; + breadcrumb: string[]; + permissions: PermissionConfig; + searchForm: SearchFormItem[]; + tableColumns: TableColumn[]; + formItems: FormItem[]; + batchOperations: BatchOperation[]; + actionButtons: ActionButton[]; + statisticsCards: StatisticsCard[]; + chartConfigs: ChartConfig[]; + importConfig: ImportConfig; + exportConfig: ExportConfig; + auditConfig: AuditConfig; } diff --git a/web/src/api/xg/classTeacherCounselorRel.ts b/web/src/api/xg/classTeacherCounselorRel.ts index a9c06f9a..073c1090 100644 --- a/web/src/api/xg/classTeacherCounselorRel.ts +++ b/web/src/api/xg/classTeacherCounselorRel.ts @@ -10,7 +10,7 @@ interface ClassTeacherCounselorRelBo { teacherName?: string; counselorId?: number | string; counselorName?: string; - relationType?: number; // 1:班主任 2:辅导员 + relationType?: number; // 1:班主任 2:辅导员 remark?: string; } diff --git a/web/src/api/xg/index.ts b/web/src/api/xg/index.ts index d0551c3a..a1682bf9 100644 --- a/web/src/api/xg/index.ts +++ b/web/src/api/xg/index.ts @@ -15,7 +15,7 @@ import request from '@/utils/request'; // export * from './activity' // 活动管理 // 导出学工用户模块API -export * from './sysUser' +export * from './sysUser'; // 临时导出一个空对象,防止编译错误 export default {}; diff --git a/web/src/api/xg/xgss/dormBed/types.ts b/web/src/api/xg/xgss/dormBed/types.ts index ca79033b..ab74d80e 100644 --- a/web/src/api/xg/xgss/dormBed/types.ts +++ b/web/src/api/xg/xgss/dormBed/types.ts @@ -61,6 +61,3 @@ export interface DormBedForm { /** 备注 */ remark?: string; } - - - diff --git a/web/src/api/xg/xgss/dormRoom/types.ts b/web/src/api/xg/xgss/dormRoom/types.ts index 11d29158..2ce0a6f9 100644 --- a/web/src/api/xg/xgss/dormRoom/types.ts +++ b/web/src/api/xg/xgss/dormRoom/types.ts @@ -58,7 +58,6 @@ export interface DormRoomVO { * 备注 */ remark: string; - } export interface DormRoomForm extends BaseEntity { @@ -116,11 +115,9 @@ export interface DormRoomForm extends BaseEntity { * 备注 */ remark?: string; - } export interface DormRoomQuery extends PageQuery { - /** * 房间编号 */ @@ -166,11 +163,8 @@ export interface DormRoomQuery extends PageQuery { */ deleted?: string; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; } - - - diff --git a/web/src/api/xg/xgss/glysqgx/dormManagerSource/types.ts b/web/src/api/xg/xgss/glysqgx/dormManagerSource/types.ts index 28012845..e556e589 100644 --- a/web/src/api/xg/xgss/glysqgx/dormManagerSource/types.ts +++ b/web/src/api/xg/xgss/glysqgx/dormManagerSource/types.ts @@ -38,7 +38,6 @@ export interface DormManagerSourceVO { * 备注 */ remark: string; - } export interface DormManagerSourceForm extends BaseEntity { @@ -81,11 +80,9 @@ export interface DormManagerSourceForm extends BaseEntity { * 备注 */ remark?: string; - } export interface DormManagerSourceQuery extends PageQuery { - /** * 管理员ID */ @@ -116,11 +113,8 @@ export interface DormManagerSourceQuery extends PageQuery { */ deleted?: string; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; } - - - diff --git a/web/src/api/xg/xgss/glysslqxgx/dormManagerBuilding/types.ts b/web/src/api/xg/xgss/glysslqxgx/dormManagerBuilding/types.ts index 14fa8419..3b876ace 100644 --- a/web/src/api/xg/xgss/glysslqxgx/dormManagerBuilding/types.ts +++ b/web/src/api/xg/xgss/glysslqxgx/dormManagerBuilding/types.ts @@ -28,7 +28,6 @@ export interface DormManagerBuildingVO { * 备注 */ remark: string; - } export interface DormManagerBuildingForm extends BaseEntity { @@ -61,11 +60,9 @@ export interface DormManagerBuildingForm extends BaseEntity { * 备注 */ remark?: string; - } export interface DormManagerBuildingQuery extends PageQuery { - /** * 管理员ID */ @@ -86,11 +83,8 @@ export interface DormManagerBuildingQuery extends PageQuery { */ deleted?: string; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; } - - - diff --git a/web/src/api/xg/xgss/ssglyxx/dormManager/types.ts b/web/src/api/xg/xgss/ssglyxx/dormManager/types.ts index b8ac28e1..cdf63170 100644 --- a/web/src/api/xg/xgss/ssglyxx/dormManager/types.ts +++ b/web/src/api/xg/xgss/ssglyxx/dormManager/types.ts @@ -53,7 +53,6 @@ export interface DormManagerVO { * 授权范围名称(逗号分隔的字符串) */ scopeNames?: string; - } export interface DormManagerForm extends BaseEntity { @@ -106,11 +105,9 @@ export interface DormManagerForm extends BaseEntity { * 备注 */ remark?: string; - } export interface DormManagerQuery extends PageQuery { - /** * 管理员姓名 */ @@ -151,11 +148,8 @@ export interface DormManagerQuery extends PageQuery { */ deleted?: string; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; } - - - diff --git a/web/src/api/xg/xgss/sslxx/dormBuilding/types.ts b/web/src/api/xg/xgss/sslxx/dormBuilding/types.ts index 56813eaa..af776c14 100644 --- a/web/src/api/xg/xgss/sslxx/dormBuilding/types.ts +++ b/web/src/api/xg/xgss/sslxx/dormBuilding/types.ts @@ -17,8 +17,7 @@ export interface DormBuildingVO { floors: number; } -export interface DormBuildingForm extends Omit { -} +export interface DormBuildingForm extends Omit {} export interface DormBuildingQuery { buildingCode?: string; @@ -45,6 +44,3 @@ export interface BuildingTreeSelectVo { floors?: number; updateTime?: string; } - - - diff --git a/web/src/api/xg/xgss/ssqxx/dormArea/types.ts b/web/src/api/xg/xgss/ssqxx/dormArea/types.ts index 9fe7d817..98f8e1a4 100644 --- a/web/src/api/xg/xgss/ssqxx/dormArea/types.ts +++ b/web/src/api/xg/xgss/ssqxx/dormArea/types.ts @@ -28,7 +28,6 @@ export interface DormAreaVO { * 排序号 */ sortOrder: number; - } export interface DormAreaForm extends BaseEntity { @@ -61,11 +60,9 @@ export interface DormAreaForm extends BaseEntity { * 排序号 */ sortOrder?: number; - } export interface DormAreaQuery extends PageQuery { - /** * 宿舍区编码 */ @@ -81,10 +78,10 @@ export interface DormAreaQuery extends PageQuery { */ areaDescription?: string; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; } /** @@ -102,6 +99,3 @@ export interface TreeSelectVo { /** 子节点 */ children?: TreeSelectVo[]; } - - - diff --git a/web/src/api/xg/xgss/xqxx/dormCampus/types.ts b/web/src/api/xg/xgss/xqxx/dormCampus/types.ts index f3fc31e2..6d59cc4b 100644 --- a/web/src/api/xg/xgss/xqxx/dormCampus/types.ts +++ b/web/src/api/xg/xgss/xqxx/dormCampus/types.ts @@ -28,7 +28,6 @@ export interface DormCampusVO { * 备注 */ remark: string; - } export interface DormCampusForm extends BaseEntity { @@ -61,11 +60,9 @@ export interface DormCampusForm extends BaseEntity { * 备注 */ remark?: string; - } export interface DormCampusQuery extends PageQuery { - /** * 校区编码 */ @@ -76,11 +73,8 @@ export interface DormCampusQuery extends PageQuery { */ campusName?: string; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; } - - - diff --git a/web/src/api/xg/xgss/xsssfjgl/index.ts b/web/src/api/xg/xgss/xsssfjgl/index.ts index 47c3174b..bb65d75b 100644 --- a/web/src/api/xg/xgss/xsssfjgl/index.ts +++ b/web/src/api/xg/xgss/xsssfjgl/index.ts @@ -198,7 +198,7 @@ export function getMockDormTree(): { data: DormTreeNode[] } { } // 生成房间数据的模拟数据 -export function getMockRooms(buildingId: string | number, floorNumber?: number): { rows: RoomInfo[], total: number } { +export function getMockRooms(buildingId: string | number, floorNumber?: number): { rows: RoomInfo[]; total: number } { const rooms: RoomInfo[] = []; // 根据buildingId判断楼层数 @@ -233,7 +233,7 @@ export function getMockRooms(buildingId: string | number, floorNumber?: number): } return { - rows: rooms.filter(room => !floorNumber || room.floorNumber === floorNumber), + rows: rooms.filter((room) => !floorNumber || room.floorNumber === floorNumber), total: rooms.length }; } diff --git a/web/src/api/xg/xsjcxx/XgStuColBatch/stuColBatch/types.ts b/web/src/api/xg/xsjcxx/XgStuColBatch/stuColBatch/types.ts index 81da8382..3d0ae5f5 100644 --- a/web/src/api/xg/xsjcxx/XgStuColBatch/stuColBatch/types.ts +++ b/web/src/api/xg/xsjcxx/XgStuColBatch/stuColBatch/types.ts @@ -33,7 +33,6 @@ export interface StuColBatchVO { * 收集类型 1 - 新学期收集 2 - 其他 */ collectionType: string; - } export interface StuColBatchForm extends BaseEntity { @@ -71,11 +70,9 @@ export interface StuColBatchForm extends BaseEntity { * 收集类型 1 - 新学期收集 2 - 其他 */ collectionType?: string; - } export interface StuColBatchQuery extends PageQuery { - /** * 批次名称 */ @@ -91,11 +88,8 @@ export interface StuColBatchQuery extends PageQuery { */ collectionType?: string; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; } - - - diff --git a/web/src/api/xg/xsjcxx/classMsg/classMsg/types.ts b/web/src/api/xg/xsjcxx/classMsg/classMsg/types.ts index 047b2b50..87e4b59f 100644 --- a/web/src/api/xg/xsjcxx/classMsg/classMsg/types.ts +++ b/web/src/api/xg/xsjcxx/classMsg/classMsg/types.ts @@ -48,7 +48,6 @@ export interface ClassMsgVO { * 备注信息 */ remark: string; - } export interface ClassMsgForm extends BaseEntity { @@ -291,11 +290,9 @@ export interface ClassMsgForm extends BaseEntity { * 备注信息 */ remark?: string; - } export interface ClassMsgQuery extends PageQuery { - /** * 学院代码 */ @@ -326,11 +323,8 @@ export interface ClassMsgQuery extends PageQuery { */ classStatus?: string; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; } - - - diff --git a/web/src/api/xg/xsjcxx/stuColBatchClass/stuColBatchClass/types.ts b/web/src/api/xg/xsjcxx/stuColBatchClass/stuColBatchClass/types.ts index 509e6d53..d0b9a463 100644 --- a/web/src/api/xg/xsjcxx/stuColBatchClass/stuColBatchClass/types.ts +++ b/web/src/api/xg/xsjcxx/stuColBatchClass/stuColBatchClass/types.ts @@ -48,7 +48,6 @@ export interface StuColBatchClassVO { * 删除标志(0代表存在 1代表删除) */ deleted: number; - } export interface StuColBatchClassForm extends BaseEntity { @@ -101,11 +100,9 @@ export interface StuColBatchClassForm extends BaseEntity { * 删除标志(0代表存在 1代表删除) */ deleted?: number; - } export interface StuColBatchClassQuery extends PageQuery { - /** * 批次ID */ @@ -146,11 +143,8 @@ export interface StuColBatchClassQuery extends PageQuery { */ deleted?: number; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; } - - - diff --git a/web/src/api/xg/xsjcxx/stuMsgAudit/types.ts b/web/src/api/xg/xsjcxx/stuMsgAudit/types.ts index 81da8382..3d0ae5f5 100644 --- a/web/src/api/xg/xsjcxx/stuMsgAudit/types.ts +++ b/web/src/api/xg/xsjcxx/stuMsgAudit/types.ts @@ -33,7 +33,6 @@ export interface StuColBatchVO { * 收集类型 1 - 新学期收集 2 - 其他 */ collectionType: string; - } export interface StuColBatchForm extends BaseEntity { @@ -71,11 +70,9 @@ export interface StuColBatchForm extends BaseEntity { * 收集类型 1 - 新学期收集 2 - 其他 */ collectionType?: string; - } export interface StuColBatchQuery extends PageQuery { - /** * 批次名称 */ @@ -91,11 +88,8 @@ export interface StuColBatchQuery extends PageQuery { */ collectionType?: string; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; } - - - diff --git a/web/src/api/xg/xsjcxx/stuMsgSupply/types.ts b/web/src/api/xg/xsjcxx/stuMsgSupply/types.ts index 81da8382..3d0ae5f5 100644 --- a/web/src/api/xg/xsjcxx/stuMsgSupply/types.ts +++ b/web/src/api/xg/xsjcxx/stuMsgSupply/types.ts @@ -33,7 +33,6 @@ export interface StuColBatchVO { * 收集类型 1 - 新学期收集 2 - 其他 */ collectionType: string; - } export interface StuColBatchForm extends BaseEntity { @@ -71,11 +70,9 @@ export interface StuColBatchForm extends BaseEntity { * 收集类型 1 - 新学期收集 2 - 其他 */ collectionType?: string; - } export interface StuColBatchQuery extends PageQuery { - /** * 批次名称 */ @@ -91,11 +88,8 @@ export interface StuColBatchQuery extends PageQuery { */ collectionType?: string; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; } - - - diff --git a/web/src/api/xg/xsjcxx/studentMsg/index.ts b/web/src/api/xg/xsjcxx/studentMsg/index.ts index 80e9065e..eac7b20f 100644 --- a/web/src/api/xg/xsjcxx/studentMsg/index.ts +++ b/web/src/api/xg/xsjcxx/studentMsg/index.ts @@ -2,7 +2,6 @@ import request from '@/utils/request'; import { AxiosPromise } from 'axios'; import { StudentQuery, StudentVO, StudentForm, XgDeptTreeVO, R, TableDataInfo } from './types'; - /** * 查询部门下拉树结构 * @param deptId 部门ID @@ -32,7 +31,6 @@ export const XgDeptTreeSelect = (belongDeptId?: number): AxiosPromise>> { // 实际使用时连接后端接口 @@ -56,11 +54,13 @@ export function listStudent(query?: StudentQuery): AxiosPromise> { +export function getStudent(studentId?: string | number): AxiosPromise< + R<{ + student: StudentVO; + majors: any[]; + classes: any[]; + }> +> { if (studentId) { // 实际使用时连接后端接口 // return request({ @@ -69,7 +69,7 @@ export function getStudent(studentId?: string | number): AxiosPromise item.studentId === studentId); + const student = mockStudentData.find((item) => item.studentId === studentId); return Promise.resolve({ data: { code: 200, @@ -435,4 +435,14 @@ const mockClasses = [ } ]; -export default { listStudent, getStudent, addStudent, updateStudent, delStudent, deptTreeSelect, exportStudent, changeStudentStatus, XgDeptTreeSelect }; +export default { + listStudent, + getStudent, + addStudent, + updateStudent, + delStudent, + deptTreeSelect, + exportStudent, + changeStudentStatus, + XgDeptTreeSelect +}; diff --git a/web/src/api/xg/xsjcxx/studentMsg/studentMsg/types.ts b/web/src/api/xg/xsjcxx/studentMsg/studentMsg/types.ts index b43bd909..f65adeef 100644 --- a/web/src/api/xg/xsjcxx/studentMsg/studentMsg/types.ts +++ b/web/src/api/xg/xsjcxx/studentMsg/studentMsg/types.ts @@ -45,7 +45,7 @@ export interface StudentMsgVO { birthDate: string; /** - * 民族 + * 民族 */ nationality: string; @@ -140,7 +140,7 @@ export interface StudentMsgVO { wechat: string; /** - * 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶 + * 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶 */ maritalStatus: string; @@ -518,7 +518,6 @@ export interface StudentMsgVO { * 备注信息 */ remark: string; - } export interface StudentMsgForm extends BaseEntity { @@ -568,7 +567,7 @@ export interface StudentMsgForm extends BaseEntity { birthDate?: string; /** - * 民族 + * 民族 */ nationality?: string; @@ -663,7 +662,7 @@ export interface StudentMsgForm extends BaseEntity { wechat?: string; /** - * 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶 + * 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶 */ maritalStatus?: string; @@ -1041,11 +1040,9 @@ export interface StudentMsgForm extends BaseEntity { * 备注信息 */ remark?: string; - } export interface StudentMsgQuery extends PageQuery { - /** * 删除标志(0代表存在 1代表删除) */ @@ -1087,7 +1084,7 @@ export interface StudentMsgQuery extends PageQuery { birthDate?: string; /** - * 民族 + * 民族 */ nationality?: string; @@ -1182,7 +1179,7 @@ export interface StudentMsgQuery extends PageQuery { wechat?: string; /** - * 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶 + * 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶 */ maritalStatus?: string; @@ -1556,11 +1553,8 @@ export interface StudentMsgQuery extends PageQuery { */ extField5?: string; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; } - - - diff --git a/web/src/api/xg/xsjcxx/studentMsgBatch/studentMsgBatch/types.ts b/web/src/api/xg/xsjcxx/studentMsgBatch/studentMsgBatch/types.ts index 217751ce..7e8b35ba 100644 --- a/web/src/api/xg/xsjcxx/studentMsgBatch/studentMsgBatch/types.ts +++ b/web/src/api/xg/xsjcxx/studentMsgBatch/studentMsgBatch/types.ts @@ -45,7 +45,7 @@ export interface StudentMsgBatchVO { birthDate: string; /** - * 民族 + * 民族 */ nationality: string; @@ -140,7 +140,7 @@ export interface StudentMsgBatchVO { wechat: string; /** - * 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶 + * 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶 */ maritalStatus: string; @@ -523,7 +523,6 @@ export interface StudentMsgBatchVO { * 正在进行中的批次id */ batchId: string | number; - } export interface StudentMsgBatchForm extends BaseEntity { @@ -573,7 +572,7 @@ export interface StudentMsgBatchForm extends BaseEntity { birthDate?: string; /** - * 民族 + * 民族 */ nationality?: string; @@ -668,7 +667,7 @@ export interface StudentMsgBatchForm extends BaseEntity { wechat?: string; /** - * 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶 + * 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶 */ maritalStatus?: string; @@ -1051,11 +1050,9 @@ export interface StudentMsgBatchForm extends BaseEntity { * 正在进行中的批次id */ batchId?: string | number; - } export interface StudentMsgBatchQuery extends PageQuery { - /** * 删除标志(0代表存在 1代表删除) */ @@ -1097,7 +1094,7 @@ export interface StudentMsgBatchQuery extends PageQuery { birthDate?: string; /** - * 民族 + * 民族 */ nationality?: string; @@ -1192,7 +1189,7 @@ export interface StudentMsgBatchQuery extends PageQuery { wechat?: string; /** - * 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶 + * 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶 */ maritalStatus?: string; @@ -1571,11 +1568,8 @@ export interface StudentMsgBatchQuery extends PageQuery { */ batchId?: string | number; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; } - - - diff --git a/web/src/api/xg/xsjcxx/xgClassPosDict/xgClassPosDict/types.ts b/web/src/api/xg/xsjcxx/xgClassPosDict/xgClassPosDict/types.ts index 9647da38..bdbe4f5e 100644 --- a/web/src/api/xg/xsjcxx/xgClassPosDict/xgClassPosDict/types.ts +++ b/web/src/api/xg/xsjcxx/xgClassPosDict/xgClassPosDict/types.ts @@ -53,7 +53,6 @@ export interface XgClassPosDictVO { * 备注信息 */ remark: string; - } export interface XgClassPosDictForm extends BaseEntity { @@ -111,11 +110,9 @@ export interface XgClassPosDictForm extends BaseEntity { * 备注信息 */ remark?: string; - } export interface XgClassPosDictQuery extends PageQuery { - /** * 删除标志(0代表存在 1代表删除) */ @@ -161,11 +158,8 @@ export interface XgClassPosDictQuery extends PageQuery { */ sortOrder?: number; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; } - - - diff --git a/web/src/api/xg/xsjcxx/xgClassPosMsg/xgClassPosMsg/types.ts b/web/src/api/xg/xsjcxx/xgClassPosMsg/xgClassPosMsg/types.ts index 375ec8c5..ee6e0c3f 100644 --- a/web/src/api/xg/xsjcxx/xgClassPosMsg/xgClassPosMsg/types.ts +++ b/web/src/api/xg/xsjcxx/xgClassPosMsg/xgClassPosMsg/types.ts @@ -118,7 +118,6 @@ export interface XgClassPosMsgVO { * 备注信息 */ remark: string; - } export interface XgClassPosMsgForm extends BaseEntity { @@ -246,11 +245,9 @@ export interface XgClassPosMsgForm extends BaseEntity { * 备注信息 */ remark?: string; - } export interface XgClassPosMsgQuery extends PageQuery { - /** * 删除标志(0代表存在 1代表删除) */ @@ -336,11 +333,8 @@ export interface XgClassPosMsgQuery extends PageQuery { */ deptId?: string | number; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; } - - - diff --git a/web/src/api/xg/xsjcxx/xgLeaveTypeConfig/xgLeaveTypeConfig/types.ts b/web/src/api/xg/xsjcxx/xgLeaveTypeConfig/xgLeaveTypeConfig/types.ts index 09566afc..f3c13f27 100644 --- a/web/src/api/xg/xsjcxx/xgLeaveTypeConfig/xgLeaveTypeConfig/types.ts +++ b/web/src/api/xg/xsjcxx/xgLeaveTypeConfig/xgLeaveTypeConfig/types.ts @@ -63,7 +63,6 @@ export interface XgLeaveTypeConfigVO { * 销假逾期多少时长给予提醒(天) */ cancelOverdueReminder: number; - } export interface XgLeaveTypeConfigForm extends BaseEntity { @@ -131,11 +130,9 @@ export interface XgLeaveTypeConfigForm extends BaseEntity { * 销假逾期多少时长给予提醒(天) */ cancelOverdueReminder?: number; - } export interface XgLeaveTypeConfigQuery extends PageQuery { - /** * 删除标志(0代表存在 1代表删除) */ @@ -156,11 +153,8 @@ export interface XgLeaveTypeConfigQuery extends PageQuery { */ isEnabled?: string; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; } - - - diff --git a/web/src/api/xg/xsjcxx/xgStudentManager/studentManager/types.ts b/web/src/api/xg/xsjcxx/xgStudentManager/studentManager/types.ts index 6decf4ef..6b4c4af1 100644 --- a/web/src/api/xg/xsjcxx/xgStudentManager/studentManager/types.ts +++ b/web/src/api/xg/xsjcxx/xgStudentManager/studentManager/types.ts @@ -48,7 +48,6 @@ export interface StudentManagerVO { * 备注 */ remark: string; - } export interface StudentManagerForm extends BaseEntity { @@ -101,11 +100,9 @@ export interface StudentManagerForm extends BaseEntity { * 备注 */ remark?: string; - } export interface StudentManagerQuery extends PageQuery { - /** * 管理员姓名 */ @@ -146,11 +143,8 @@ export interface StudentManagerQuery extends PageQuery { */ deleted?: string; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; } - - - diff --git a/web/src/api/xg/xsjcxx/xgStudentManagerSource/studentManagerSource/index.ts b/web/src/api/xg/xsjcxx/xgStudentManagerSource/studentManagerSource/index.ts index 91da9ef0..ddd24f2f 100644 --- a/web/src/api/xg/xsjcxx/xgStudentManagerSource/studentManagerSource/index.ts +++ b/web/src/api/xg/xsjcxx/xgStudentManagerSource/studentManagerSource/index.ts @@ -1,6 +1,10 @@ import request from '@/utils/request'; import { AxiosPromise } from 'axios'; -import { StudentManagerSourceVO, StudentManagerSourceForm, StudentManagerSourceQuery } from '@/api/xg/xsjcxx/xgStudentManagerSource/studentManagerSource/types'; +import { + StudentManagerSourceVO, + StudentManagerSourceForm, + StudentManagerSourceQuery +} from '@/api/xg/xsjcxx/xgStudentManagerSource/studentManagerSource/types'; /** * 查询学生管理员授权关系列表 diff --git a/web/src/api/xg/xsjcxx/xgStudentManagerSource/studentManagerSource/types.ts b/web/src/api/xg/xsjcxx/xgStudentManagerSource/studentManagerSource/types.ts index d9878323..bb47e12b 100644 --- a/web/src/api/xg/xsjcxx/xgStudentManagerSource/studentManagerSource/types.ts +++ b/web/src/api/xg/xsjcxx/xgStudentManagerSource/studentManagerSource/types.ts @@ -38,7 +38,6 @@ export interface StudentManagerSourceVO { * 备注 */ remark: string; - } export interface StudentManagerSourceForm extends BaseEntity { @@ -81,11 +80,9 @@ export interface StudentManagerSourceForm extends BaseEntity { * 备注 */ remark?: string; - } export interface StudentManagerSourceQuery extends PageQuery { - /** * 管理员ID */ @@ -116,11 +113,8 @@ export interface StudentManagerSourceQuery extends PageQuery { */ deleted?: string; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; } - - - diff --git a/web/src/api/xljk/consultation/appointment.ts b/web/src/api/xljk/consultation/appointment.ts index 0519ecba..e69de29b 100644 --- a/web/src/api/xljk/consultation/appointment.ts +++ b/web/src/api/xljk/consultation/appointment.ts @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/web/src/api/xljk/consultation/index.ts b/web/src/api/xljk/consultation/index.ts index 1fba787c..313748a3 100644 --- a/web/src/api/xljk/consultation/index.ts +++ b/web/src/api/xljk/consultation/index.ts @@ -129,7 +129,7 @@ export const submitAppointment = async (data: XljkConsultationAppointmentForm) = console.error('检查预约限制失败', error); // 检查失败不阻止预约,继续提交 } - + // 提交预约申请 return request({ url: '/api/xljk/consultation/appointment/submit', @@ -141,15 +141,15 @@ export const submitAppointment = async (data: XljkConsultationAppointmentForm) = // 获取我的预约记录(学生用) export const getMyAppointments = (studentId: string | number, forceRefresh: boolean = false) => { let url = `/api/xljk/consultation/appointment/my-appointments/${studentId}`; - + // 强制添加时间戳参数,确保绕过浏览器缓存 url += `?_t=${new Date().getTime()}`; - + // 如果需要额外强制刷新(如用户手动点击刷新按钮) if (forceRefresh) { url += `&force=true`; } - + return request({ url, method: 'get', @@ -211,4 +211,4 @@ export const getClassOptions = (collegeName?: string, majorName?: string) => { method: 'get', params: { collegeName, majorName } }); -}; \ No newline at end of file +}; diff --git a/web/src/api/xljk/consultation/noshow.ts b/web/src/api/xljk/consultation/noshow.ts index e8d0838a..fe86dfcb 100644 --- a/web/src/api/xljk/consultation/noshow.ts +++ b/web/src/api/xljk/consultation/noshow.ts @@ -9,12 +9,12 @@ import { NoShowQuery, NoShowVO } from './types'; export function listNoShow(query: NoShowQuery) { // 创建一个新的查询对象,避免修改原始对象 const params = { ...query }; - + // 如果状态是'all',表示"全部",则从参数中移除 if (params.status === 'all') { delete params.status; } - + return request({ url: '/api/xljk/consultation/no-show/list', method: 'get', @@ -57,4 +57,4 @@ export function checkLimitation(studentId: string | number) { method: 'get', params: { studentId } }); -} \ No newline at end of file +} diff --git a/web/src/api/xljk/consultation/types.ts b/web/src/api/xljk/consultation/types.ts index 181898f4..11c31e06 100644 --- a/web/src/api/xljk/consultation/types.ts +++ b/web/src/api/xljk/consultation/types.ts @@ -556,17 +556,17 @@ export interface NoShowVO { * 咨询师名称 */ counselorName?: string; - + /** * 预约日期 */ appointmentDate?: string; - + /** * 预约时段 */ appointmentDetailTime?: string; - + /** * 咨询原因 */ @@ -601,4 +601,4 @@ export interface NoShowVO { * 更新时间 */ updateTime?: string; -} \ No newline at end of file +} diff --git a/web/src/api/xljk/evaluation/index.ts b/web/src/api/xljk/evaluation/index.ts index 1674106d..7900121e 100644 --- a/web/src/api/xljk/evaluation/index.ts +++ b/web/src/api/xljk/evaluation/index.ts @@ -35,15 +35,15 @@ export const addEvaluation = (data: XljkEvaluationForm) => { if (data.departmentName && !data.departmentId) { data.departmentId = 0; // 使用临时ID,后端会根据名称处理 } - + if (data.majorName && !data.majorId) { data.majorId = 0; // 使用临时ID,后端会根据名称处理 } - + if (data.className && !data.classId) { data.classId = 0; // 使用临时ID,后端会根据名称处理 } - + return request({ url: '/api/xljk/evaluation', method: 'post', @@ -182,10 +182,10 @@ export const batchAddEvaluationDetails = (data: XljkEvaluationDetailForm[]) => { export const batchUpdateMentalStatus = (data: XljkEvaluationDetailForm[]) => { // 确保数据中的ID字段保持原有格式,不做Number转换 console.log('批量更新数据 - 第一条记录evaluationId:', data[0]?.evaluationId); - + return request({ url: '/api/xljk/evaluation/detail/batch/mentalStatus', method: 'put', data: data }); -}; \ No newline at end of file +}; diff --git a/web/src/api/xljk/evaluation/types.ts b/web/src/api/xljk/evaluation/types.ts index 5b29345e..6707f3ca 100644 --- a/web/src/api/xljk/evaluation/types.ts +++ b/web/src/api/xljk/evaluation/types.ts @@ -525,4 +525,4 @@ export interface EvaluationStatistics { * 重点关注学生百分比 */ focusPercent: number; -} \ No newline at end of file +} diff --git a/web/src/api/zsjy/README.md b/web/src/api/zsjy/README.md index 1529332c..7d6f75ea 100644 --- a/web/src/api/zsjy/README.md +++ b/web/src/api/zsjy/README.md @@ -103,6 +103,7 @@ export function listEnrollmentInfo(query: EnrollmentInfoQuery) { ## 📱 移动端支持 部分接口支持移动端访问,主要包括: + - 学生在线报名 - 报名状态查询 - 录取结果查询 diff --git a/web/src/api/zsjy/enrollment/index.ts b/web/src/api/zsjy/enrollment/index.ts index 3f9bd617..ac1fad55 100644 --- a/web/src/api/zsjy/enrollment/index.ts +++ b/web/src/api/zsjy/enrollment/index.ts @@ -58,7 +58,7 @@ export const updateEnrollmentInfo = (data: EnrollmentInfoForm) => { export const updateEnrollmentStatus = (id: string | number | Array, status: string) => { const data = Array.isArray(id) ? { ids: id, status } // 批量更新 - : { id, status }; // 单个更新 + : { id, status }; // 单个更新 return request({ url: '/zsjy/enrollment/info/updateStatus', @@ -132,7 +132,7 @@ export const submitEnrollmentApplication = (data: EnrollmentInfoForm) => { * 查询我的报名状态(供学生端使用) * @param params 查询参数 */ -export const queryMyEnrollmentStatus = (params: { idCard?: string, examNumber?: string }): AxiosPromise => { +export const queryMyEnrollmentStatus = (params: { idCard?: string; examNumber?: string }): AxiosPromise => { return request({ url: '/zsjy/enrollment/info/myStatus', method: 'get', diff --git a/web/src/api/zsjy/enrollmentProcess.ts b/web/src/api/zsjy/enrollmentProcess.ts index a9c4a66d..43d841bc 100644 --- a/web/src/api/zsjy/enrollmentProcess.ts +++ b/web/src/api/zsjy/enrollmentProcess.ts @@ -1,365 +1,365 @@ -import request from '@/utils/request' -import { AxiosPromise } from 'axios' +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; export interface EnrollmentProcessVO { /** * 主键ID */ - id: string | number + id: string | number; /** * 报名信息ID,关联zsjy_enrollment_info.id */ - enrollmentId: number + enrollmentId: number; /** * 学生姓名 */ - studentName: string + studentName: string; /** * 身份证号 */ - idCard: string + idCard: string; /** * 当前状态(0-待审核 1-信息审核中 2-录取处理中 3-待最终确认 4-录取完成 9-已驳回) */ - currentStatus: string + currentStatus: string; /** * 当前处理人ID */ - currentHandler: number + currentHandler: number; /** * 当前处理人姓名 */ - currentHandlerName: string + currentHandlerName: string; /** * 信息审核状态(0-待审核 1-审核通过 9-审核驳回) */ - infoAuditStatus: string + infoAuditStatus: string; /** * 信息审核人ID */ - infoAuditUser: number + infoAuditUser: number; /** * 信息审核人姓名 */ - infoAuditUserName: string + infoAuditUserName: string; /** * 信息审核时间 */ - infoAuditTime: string + infoAuditTime: string; /** * 信息审核意见 */ - infoAuditOpinion: string + infoAuditOpinion: string; /** * 录取处理状态(0-待处理 1-处理完成 9-处理驳回) */ - admissionStatus: string + admissionStatus: string; /** * 录取处理人ID */ - admissionUser: number + admissionUser: number; /** * 录取处理人姓名 */ - admissionUserName: string + admissionUserName: string; /** * 录取处理时间 */ - admissionTime: string + admissionTime: string; /** * 缴费状态(0-未缴费 1-已缴费) */ - paymentStatus: string + paymentStatus: string; /** * 缴费确认时间 */ - paymentConfirmTime: string + paymentConfirmTime: string; /** * 录取通知书号码 */ - noticeNumber: string + noticeNumber: string; /** * 录取处理意见 */ - admissionOpinion: string + admissionOpinion: string; /** * 最终审核状态(0-待确认 1-确认通过 9-确认驳回) */ - finalAuditStatus: string + finalAuditStatus: string; /** * 最终审核人ID */ - finalAuditUser: number + finalAuditUser: number; /** * 最终审核人姓名 */ - finalAuditUserName: string + finalAuditUserName: string; /** * 最终审核时间 */ - finalAuditTime: string + finalAuditTime: string; /** * 最终审核意见 */ - finalAuditOpinion: string + finalAuditOpinion: string; /** * 是否完成录取(0-未完成 1-已完成) */ - isCompleted: number + isCompleted: number; /** * 录取完成时间 */ - completionTime: string + completionTime: string; /** * 备注 */ - remark: string + remark: string; /** * 创建时间 */ - createTime: string + createTime: string; /** * 更新时间 */ - updateTime: string + updateTime: string; /** * 性别(0-男 1-女) */ - gender?: string + gender?: string; /** * 地区/省份 */ - province?: string + province?: string; /** * 学院名称(驼峰命名) */ - collegeName?: string + collegeName?: string; /** * 学院代码(驼峰命名) */ - collegeId?: string + collegeId?: string; /** * 学院名称(下划线命名) */ - college_name?: string + college_name?: string; /** * 学院代码(下划线命名) */ - college_id?: string + college_id?: string; /** * 学院名称(拼写变体 - collage) */ - collage_name?: string + collage_name?: string; /** * 学院代码(拼写变体 - collage) */ - collage_id?: string + collage_id?: string; /** * 专业名称(驼峰命名) */ - majorName?: string + majorName?: string; /** * 专业代码(驼峰命名) */ - majorCode?: string + majorCode?: string; /** * 专业名称(下划线命名) */ - major_name?: string + major_name?: string; /** * 专业代码(下划线命名) */ - major_code?: string + major_code?: string; /** * 报考专业(来自报名信息表) */ - appliedMajor?: string + appliedMajor?: string; /** * 关联的报名信息对象 */ - enrollmentInfo?: any + enrollmentInfo?: any; } export interface EnrollmentProcessForm extends BaseEntity { /** * 主键ID */ - id?: string | number + id?: string | number; /** * 报名信息ID,关联zsjy_enrollment_info.id */ - enrollmentId?: number + enrollmentId?: number; /** * 学生姓名 */ - studentName?: string + studentName?: string; /** * 身份证号 */ - idCard?: string + idCard?: string; /** * 当前状态(0-待审核 1-信息审核中 2-录取处理中 3-待最终确认 4-录取完成 9-已驳回) */ - currentStatus?: string + currentStatus?: string; /** * 当前处理人ID */ - currentHandler?: number + currentHandler?: number; /** * 当前处理人姓名 */ - currentHandlerName?: string + currentHandlerName?: string; /** * 信息审核状态(0-待审核 1-审核通过 9-审核驳回) */ - infoAuditStatus?: string + infoAuditStatus?: string; /** * 信息审核意见 */ - infoAuditOpinion?: string + infoAuditOpinion?: string; /** * 录取处理状态(0-待处理 1-处理完成 9-处理驳回) */ - admissionStatus?: string + admissionStatus?: string; /** * 缴费状态(0-未缴费 1-已缴费) */ - paymentStatus?: string + paymentStatus?: string; /** * 录取通知书号码 */ - noticeNumber?: string + noticeNumber?: string; /** * 录取处理意见 */ - admissionOpinion?: string + admissionOpinion?: string; /** * 最终审核状态(0-待确认 1-确认通过 9-确认驳回) */ - finalAuditStatus?: string + finalAuditStatus?: string; /** * 最终审核意见 */ - finalAuditOpinion?: string + finalAuditOpinion?: string; /** * 是否完成录取(0-未完成 1-已完成) */ - isCompleted?: number + isCompleted?: number; /** * 备注 */ - remark?: string + remark?: string; } export interface EnrollmentProcessQuery extends PageQuery { /** * 报名信息ID,关联zsjy_enrollment_info.id */ - enrollmentId?: number + enrollmentId?: number; /** * 学生姓名 */ - studentName?: string + studentName?: string; /** * 身份证号 */ - idCard?: string + idCard?: string; /** * 当前状态(0-待审核 1-信息审核中 2-录取处理中 3-待最终确认 4-录取完成 9-已驳回) */ - currentStatus?: string + currentStatus?: string; /** * 当前处理人ID */ - currentHandler?: number + currentHandler?: number; /** * 信息审核状态(0-待审核 1-审核通过 9-审核驳回) */ - infoAuditStatus?: string + infoAuditStatus?: string; /** * 录取处理状态(0-待处理 1-处理完成 9-处理驳回) */ - admissionStatus?: string + admissionStatus?: string; /** * 最终审核状态(0-待确认 1-确认通过 9-确认驳回) */ - finalAuditStatus?: string + finalAuditStatus?: string; /** * 是否完成录取(0-未完成 1-已完成) */ - isCompleted?: number + isCompleted?: number; /** * 日期范围参数 */ - params?: any + params?: any; } // 查询录取流程状态列表 @@ -368,8 +368,8 @@ export const listEnrollmentProcess = (query: EnrollmentProcessQuery): AxiosPromi url: '/zsjy/enrollment/process/list', method: 'get', params: query - }) -} + }); +}; // 查询我的待审核列表 export const listMyAuditProcess = (query: EnrollmentProcessQuery): AxiosPromise => { @@ -377,16 +377,16 @@ export const listMyAuditProcess = (query: EnrollmentProcessQuery): AxiosPromise< url: '/zsjy/enrollment/process/myAudit', method: 'get', params: query - }) -} + }); +}; // 查询录取流程状态详细 export const getEnrollmentProcess = (id: string | number): AxiosPromise => { return request({ url: '/zsjy/enrollment/process/' + id, method: 'get' - }) -} + }); +}; // 新增录取流程状态 export const addEnrollmentProcess = (data: EnrollmentProcessForm) => { @@ -394,8 +394,8 @@ export const addEnrollmentProcess = (data: EnrollmentProcessForm) => { url: '/zsjy/enrollment/process', method: 'post', data: data - }) -} + }); +}; // 从报名信息创建流程 export const createProcessFromEnrollment = (enrollmentId: number) => { @@ -403,8 +403,8 @@ export const createProcessFromEnrollment = (enrollmentId: number) => { url: '/zsjy/enrollment/process/createFromEnrollment', method: 'post', params: { enrollmentId } - }) -} + }); +}; // 同步流程状态 export const syncProcessStatus = (id: string | number) => { @@ -412,8 +412,8 @@ export const syncProcessStatus = (id: string | number) => { url: '/zsjy/enrollment/process/syncStatus', method: 'post', params: { id } - }) -} + }); +}; // 修改录取流程状态 export const updateEnrollmentProcess = (data: EnrollmentProcessForm) => { @@ -421,24 +421,24 @@ export const updateEnrollmentProcess = (data: EnrollmentProcessForm) => { url: '/zsjy/enrollment/process', method: 'put', data: data - }) -} + }); +}; // 删除录取流程状态 export const delEnrollmentProcess = (id: string | number | Array) => { return request({ url: '/zsjy/enrollment/process/' + id, method: 'delete' - }) -} + }); +}; // 根据报名信息ID查询流程状态 export const getProcessByEnrollmentId = (enrollmentId: number): AxiosPromise => { return request({ url: '/zsjy/enrollment/process/enrollment/' + enrollmentId, method: 'get' - }) -} + }); +}; // 查询待处理的流程列表 export const getPendingProcessList = (query: EnrollmentProcessQuery): AxiosPromise => { @@ -446,8 +446,8 @@ export const getPendingProcessList = (query: EnrollmentProcessQuery): AxiosPromi url: '/zsjy/enrollment/process/pending', method: 'get', params: query - }) -} + }); +}; // 根据状态查询流程列表 export const getProcessListByStatus = (status: string, query: EnrollmentProcessQuery): AxiosPromise => { @@ -455,16 +455,16 @@ export const getProcessListByStatus = (status: string, query: EnrollmentProcessQ url: '/zsjy/enrollment/process/status/' + status, method: 'get', params: query - }) -} + }); +}; // 获取流程统计数据 export const getProcessStatistics = (): AxiosPromise => { return request({ url: '/zsjy/enrollment/process/statistics', method: 'get' - }) -} + }); +}; // 搜索流程 export const searchProcess = (keyword: string, query: EnrollmentProcessQuery): AxiosPromise => { @@ -472,35 +472,26 @@ export const searchProcess = (keyword: string, query: EnrollmentProcessQuery): A url: '/zsjy/enrollment/process/search', method: 'get', params: { keyword, ...query } - }) -} + }); +}; // 信息审核 -export const infoAudit = (data: { - processId: number; - auditResult: string; - auditOpinion?: string; -}) => { +export const infoAudit = (data: { processId: number; auditResult: string; auditOpinion?: string }) => { return request({ url: '/zsjy/enrollment/process/infoAudit', method: 'post', params: data - }) -} + }); +}; // 录取处理 -export const admissionProcess = (data: { - processId: number; - admissionResult: string; - admissionOpinion?: string; - noticeNumber?: string; -}) => { +export const admissionProcess = (data: { processId: number; admissionResult: string; admissionOpinion?: string; noticeNumber?: string }) => { return request({ url: '/zsjy/enrollment/process/admissionProcess', method: 'post', params: data - }) -} + }); +}; // 确认缴费 export const confirmPayment = (processId: number) => { @@ -508,21 +499,17 @@ export const confirmPayment = (processId: number) => { url: '/zsjy/enrollment/process/confirmPayment', method: 'post', params: { processId } - }) -} + }); +}; // 最终审核 -export const finalAudit = (data: { - processId: number; - finalResult: string; - finalOpinion?: string; -}) => { +export const finalAudit = (data: { processId: number; finalResult: string; finalOpinion?: string }) => { return request({ url: '/zsjy/enrollment/process/finalConfirm', method: 'post', params: data - }) -} + }); +}; // 完成流程 export const completeProcess = (processId: number) => { @@ -530,20 +517,17 @@ export const completeProcess = (processId: number) => { url: '/zsjy/enrollment/process/complete', method: 'post', params: { processId } - }) -} + }); +}; // 驳回流程 -export const rejectProcess = (data: { - processId: number; - rejectReason: string; -}) => { +export const rejectProcess = (data: { processId: number; rejectReason: string }) => { return request({ url: '/zsjy/enrollment/process/reject', method: 'post', params: data - }) -} + }); +}; // 重置流程 export const resetProcess = (processId: number) => { @@ -551,8 +535,8 @@ export const resetProcess = (processId: number) => { url: '/zsjy/enrollment/process/reset', method: 'post', params: { processId } - }) -} + }); +}; // 导出录取流程状态 export const exportEnrollmentProcess = (query: EnrollmentProcessQuery) => { @@ -560,5 +544,5 @@ export const exportEnrollmentProcess = (query: EnrollmentProcessQuery) => { url: '/zsjy/enrollment/process/export', method: 'post', data: query - }) -} + }); +}; diff --git a/web/src/api/zsjy/enrollmentStatistics.ts b/web/src/api/zsjy/enrollmentStatistics.ts index 5c3d67e9..c79fe5ba 100644 --- a/web/src/api/zsjy/enrollmentStatistics.ts +++ b/web/src/api/zsjy/enrollmentStatistics.ts @@ -1,6 +1,6 @@ -import request from '@/utils/request' -import type { PageQuery } from '@/types/page' -import type { EnrollmentProcessVO } from './enrollmentProcess' +import request from '@/utils/request'; +import type { PageQuery } from '@/types/page'; +import type { EnrollmentProcessVO } from './enrollmentProcess'; /** * 查询招生录取统计列表 @@ -12,7 +12,7 @@ export function listEnrollmentStatistics(query: PageQuery) { url: '/zsjy/enrollment/statistics/list', method: 'get', params: query - }) + }); } /** @@ -25,7 +25,7 @@ export function exportEnrollmentStatistics(query: PageQuery) { method: 'post', params: query, responseType: 'blob' - }) + }); } /** @@ -37,7 +37,7 @@ export function getEnrollmentStatistics(id: string | number) { return request({ url: `/zsjy/enrollment/statistics/${id}`, method: 'get' - }) + }); } /** @@ -48,7 +48,7 @@ export function getEnrollmentStatisticsChartData() { return request({ url: '/zsjy/enrollment/statistics/chart', method: 'get' - }) + }); } /** @@ -59,7 +59,7 @@ export function getEnrollmentStatisticsOverview() { return request({ url: '/zsjy/enrollment/statistics/overview', method: 'get' - }) + }); } /** @@ -70,7 +70,7 @@ export function getEnrollmentStatisticsByMajor() { return request({ url: '/zsjy/enrollment/statistics/major', method: 'get' - }) + }); } /** @@ -81,7 +81,7 @@ export function getEnrollmentStatisticsByCollege() { return request({ url: '/zsjy/enrollment/statistics/college', method: 'get' - }) + }); } /** @@ -92,7 +92,7 @@ export function getEnrollmentStatisticsByRegion() { return request({ url: '/zsjy/enrollment/statistics/region', method: 'get' - }) + }); } /** @@ -103,7 +103,7 @@ export function getEnrollmentStatisticsByGender() { return request({ url: '/zsjy/enrollment/statistics/gender', method: 'get' - }) + }); } /** @@ -114,7 +114,7 @@ export function getEnrollmentStatisticsByPayment() { return request({ url: '/zsjy/enrollment/statistics/payment', method: 'get' - }) + }); } /** @@ -125,5 +125,5 @@ export function getEnrollmentStatisticsByStatus() { return request({ url: '/zsjy/enrollment/statistics/status', method: 'get' - }) + }); } diff --git a/web/src/api/zsjy/graduateInfo.ts b/web/src/api/zsjy/graduateInfo.ts index 0bd09517..72f9743f 100644 --- a/web/src/api/zsjy/graduateInfo.ts +++ b/web/src/api/zsjy/graduateInfo.ts @@ -1,11 +1,6 @@ import request from '@/utils/request'; import { AxiosPromise } from 'axios'; -import { - GraduateInfoVO, - GraduateInfoForm, - GraduateInfoQuery, - GraduateStatisticsVO -} from '@/api/zsjy/types'; +import { GraduateInfoVO, GraduateInfoForm, GraduateInfoQuery, GraduateStatisticsVO } from '@/api/zsjy/types'; /** * 查询毕业生信息列表 diff --git a/web/src/api/zsjy/index.ts b/web/src/api/zsjy/index.ts index feb81852..86df8082 100644 --- a/web/src/api/zsjy/index.ts +++ b/web/src/api/zsjy/index.ts @@ -7,14 +7,14 @@ import request from '@/utils/request'; // 导出招生就业管理模块相关的所有API接口 -export * from './enterprise'; // 企业信息管理 +export * from './enterprise'; // 企业信息管理 // export * from './jobPosition'; // 招聘岗位管理 (待开发) // export * from './recruitmentPoster'; // 招聘海报管理 (待开发) // 现有导出 -export * from './statistics'; // 统计分析 -export * from './enrollmentProcess'; // 录取流程管理 -export * from './enrollmentStatistics'; // 报名统计 +export * from './statistics'; // 统计分析 +export * from './enrollmentProcess'; // 录取流程管理 +export * from './enrollmentStatistics'; // 报名统计 // 类型导出 -export * from './types'; // 类型定义 +export * from './types'; // 类型定义 diff --git a/web/src/api/zsjy/jobPosition.ts b/web/src/api/zsjy/jobPosition.ts index 28aaa37d..4b345ec9 100644 --- a/web/src/api/zsjy/jobPosition.ts +++ b/web/src/api/zsjy/jobPosition.ts @@ -1,6 +1,6 @@ -import request from '@/utils/request' -import { JobPositionVO, JobPositionForm, JobPositionQuery, TableDataInfo } from './types' -import { AxiosPromise } from 'axios' +import request from '@/utils/request'; +import { JobPositionVO, JobPositionForm, JobPositionQuery, TableDataInfo } from './types'; +import { AxiosPromise } from 'axios'; /** * 查询招聘岗位列表 @@ -12,7 +12,7 @@ export function listJobPosition(query?: JobPositionQuery): AxiosPromise return request({ url: '/zsjy/position/' + id, method: 'get' - }) + }); } /** @@ -37,7 +37,7 @@ export function addJobPosition(data: JobPositionForm) { url: '/zsjy/position', method: 'post', data: data - }) + }); } /** @@ -50,7 +50,7 @@ export function updateJobPosition(data: JobPositionForm) { url: '/zsjy/position', method: 'put', data: data - }) + }); } /** @@ -62,7 +62,7 @@ export function delJobPosition(id: string | number | Array) { return request({ url: '/zsjy/position/' + id, method: 'delete' - }) + }); } /** @@ -76,7 +76,7 @@ export function exportJobPosition(query: JobPositionQuery) { method: 'post', data: query, responseType: 'blob' - }) + }); } /** @@ -87,5 +87,5 @@ export function listEnterpriseOptions() { return request({ url: '/zsjy/enterprise/options', method: 'get' - }) -} \ No newline at end of file + }); +} diff --git a/web/src/api/zsjy/recruitmentPoster.ts b/web/src/api/zsjy/recruitmentPoster.ts index 0c632825..20854871 100644 --- a/web/src/api/zsjy/recruitmentPoster.ts +++ b/web/src/api/zsjy/recruitmentPoster.ts @@ -1,6 +1,6 @@ -import request from '@/utils/request' -import { RecruitmentPosterVO, RecruitmentPosterForm, RecruitmentPosterQuery, TableDataInfo } from './types' -import { AxiosPromise } from 'axios' +import request from '@/utils/request'; +import { RecruitmentPosterVO, RecruitmentPosterForm, RecruitmentPosterQuery, TableDataInfo } from './types'; +import { AxiosPromise } from 'axios'; /** * 查询招聘海报列表 @@ -12,7 +12,7 @@ export function listRecruitmentPoster(query?: RecruitmentPosterQuery): AxiosProm url: '/zsjy/poster/list', method: 'get', params: query - }) + }); } /** @@ -24,7 +24,7 @@ export function getRecruitmentPoster(id: string | number): AxiosPromise { + }).catch((error) => { console.error('获取统计概览数据失败:', error); ElMessage.error('获取统计数据失败,请联系管理员'); throw error; @@ -28,7 +28,7 @@ export function getMajorDistribution() { headers: { 'isToken': true } - }).catch(error => { + }).catch((error) => { console.error('获取专业分布数据失败:', error); ElMessage.error('获取专业分布数据失败,请联系管理员'); throw error; @@ -45,7 +45,7 @@ export function getRegionDistribution() { headers: { 'isToken': true } - }).catch(error => { + }).catch((error) => { console.error('获取地区分布数据失败:', error); ElMessage.error('获取地区分布数据失败,请联系管理员'); throw error; @@ -62,7 +62,7 @@ export function getGenderRatio() { headers: { 'isToken': true } - }).catch(error => { + }).catch((error) => { console.error('获取性别比例数据失败:', error); ElMessage.error('获取性别比例数据失败,请联系管理员'); throw error; @@ -81,7 +81,7 @@ export function getEnrollmentTrend(days?: number) { headers: { 'isToken': true } - }).catch(error => { + }).catch((error) => { console.error('获取报名趋势数据失败:', error); ElMessage.error('获取报名趋势数据失败,请联系管理员'); throw error; @@ -98,7 +98,7 @@ export function getStatusDistribution() { headers: { 'isToken': true } - }).catch(error => { + }).catch((error) => { console.error('获取状态分布数据失败:', error); ElMessage.error('获取状态分布数据失败,请联系管理员'); throw error; @@ -113,9 +113,9 @@ export interface StatisticsOverview { paymentRate: string; admittedCount: number; admissionRate: string; - majorDistribution: Array<{[key: string]: any}>; - regionDistribution: Array<{[key: string]: any}>; - genderRatio: {[key: string]: number}; - weeklyTrend: Array<{[key: string]: any}>; - statusDistribution: {[key: string]: number}; + majorDistribution: Array<{ [key: string]: any }>; + regionDistribution: Array<{ [key: string]: any }>; + genderRatio: { [key: string]: number }; + weeklyTrend: Array<{ [key: string]: any }>; + statusDistribution: { [key: string]: number }; } diff --git a/web/src/assets/styles/index.scss b/web/src/assets/styles/index.scss index c90c236f..9325c90a 100644 --- a/web/src/assets/styles/index.scss +++ b/web/src/assets/styles/index.scss @@ -54,7 +54,8 @@ html.dark svg { margin: 0px 0px 0 0 !important; } -#app .sidebar-container .nest-menu .el-sub-menu > .el-sub-menu__title, #app .sidebar-container .el-sub-menu .el-menu-item{ +#app .sidebar-container .nest-menu .el-sub-menu > .el-sub-menu__title, +#app .sidebar-container .el-sub-menu .el-menu-item { margin: 0px 0px 0 0 !important; } diff --git a/web/src/components/ImageUpload/index-bak.vue b/web/src/components/ImageUpload/index-bak.vue index 306722e9..2dee396a 100644 --- a/web/src/components/ImageUpload/index-bak.vue +++ b/web/src/components/ImageUpload/index-bak.vue @@ -312,8 +312,6 @@ const performUpload = async (options: any) => { // 上传成功回调 const handleUploadSuccess = (res: any, file: any) => { - - // 确保res存在且有正确的结构 if (res && res.code === 200) { // 避免重复添加,检查是否已经存在 diff --git a/web/src/components/PosterPreview/index.vue b/web/src/components/PosterPreview/index.vue index e8bd41c9..96ceb577 100644 --- a/web/src/components/PosterPreview/index.vue +++ b/web/src/components/PosterPreview/index.vue @@ -1,11 +1,7 @@ \ No newline at end of file + diff --git a/web/src/permission.ts b/web/src/permission.ts index 571eaf2a..30dea85a 100644 --- a/web/src/permission.ts +++ b/web/src/permission.ts @@ -11,7 +11,7 @@ import { usePermissionStore } from '@/store/modules/permission'; import { ElMessage } from 'element-plus'; NProgress.configure({ showSpinner: false }); -const whiteList = ['/login', '/register', '/social-callback', '/register*', '/register/*']; +const whiteList = ['/login', '/register', '/social-callback', '/register*', '/register/*', '/recruitment-portal', '/recruitment-apply']; const isWhiteList = (path: string) => { return whiteList.some((pattern) => isPathMatch(pattern, path)); diff --git a/web/src/plugins/download.ts b/web/src/plugins/download.ts index d36d5034..99d488e4 100644 --- a/web/src/plugins/download.ts +++ b/web/src/plugins/download.ts @@ -17,7 +17,7 @@ export default { // const { data: downloadUrl } = await getFileDownloadUrl(String(ossId)); const response = await request({ - url: "/resource/oss/download/" + ossId, + url: '/resource/oss/download/' + ossId, method: 'get', responseType: 'blob', timeout: 300000 // 300秒超时 @@ -50,7 +50,7 @@ export default { // const { data: downloadUrl } = await getFileDownloadUrl(String(ossId)); const response = await request({ - url: "/resource/oss/download/" + ossId, + url: '/resource/oss/download/' + ossId, method: 'get', responseType: 'blob', timeout: 300000 // 300秒超时 @@ -83,7 +83,7 @@ export default { method: 'get', url: url, responseType: 'blob', - timeout: 300000 ,// 300秒超时 + timeout: 300000, // 300秒超时 headers: globalHeaders() }); const isBlob = blobValidate(res.data); diff --git a/web/src/plugins/svgicon.ts b/web/src/plugins/svgicon.ts index 3969b5f8..6de49252 100644 --- a/web/src/plugins/svgicon.ts +++ b/web/src/plugins/svgicon.ts @@ -1,14 +1,14 @@ -import { App } from 'vue' -import * as ElementPlusIconsVue from '@element-plus/icons-vue' +import { App } from 'vue'; +import * as ElementPlusIconsVue from '@element-plus/icons-vue'; export default function registerIcons(app: App) { for (const [key, component] of Object.entries(ElementPlusIconsVue)) { - app.component(key, component) + app.component(key, component); } - + // 移除重复的Close组件注册 // app.component('Close', ElementPlusIconsVue.Close); - + // 注册常用图标的别名 app.component('CircleCloseIcon', ElementPlusIconsVue.CircleClose); } diff --git a/web/src/router/index.ts b/web/src/router/index.ts index 43c5c7c5..504d46dc 100644 --- a/web/src/router/index.ts +++ b/web/src/router/index.ts @@ -89,6 +89,22 @@ export const constantRoutes: RouteRecordRaw[] = [ } ] }, + // 添加招聘门户路由 + { + path: '/recruitment-portal', + component: () => import('@/views/rs/recruitment-portal.vue'), + name: 'RecruitmentPortal', + hidden: true, + meta: { title: '招聘公告', icon: 'user' } + }, + // 添加招聘应聘路由 + { + path: '/recruitment-apply', + component: () => import('@/views/rs/recruitment-apply.vue'), + name: 'RecruitmentApply', + hidden: true, + meta: { title: '在线应聘', icon: 'user' } + } ]; // 动态路由,基于用户权限动态去加载 diff --git a/web/src/types/global.d.ts b/web/src/types/global.d.ts index b80c017a..16eb20da 100644 --- a/web/src/types/global.d.ts +++ b/web/src/types/global.d.ts @@ -87,12 +87,12 @@ declare global { declare interface PageQuery { pageNum: number; pageSize: number; - + /** * 排序字段 老李 */ orderByColumn?: string; - + /** * 排序方式(asc/desc) */ diff --git a/web/src/utils/request.ts b/web/src/utils/request.ts index 3e92021d..eb0ff3be 100644 --- a/web/src/utils/request.ts +++ b/web/src/utils/request.ts @@ -28,7 +28,7 @@ axios.defaults.headers['clientid'] = import.meta.env.VITE_APP_CLIENT_ID; // 创建 axios 实例 const service = axios.create({ baseURL: import.meta.env.VITE_APP_BASE_API, - timeout: 300000 // 增加到5分钟,适合大数据量导出 + timeout: 300000 // 增加到5分钟,适合大数据量导出 }); // 请求拦截器 @@ -177,7 +177,7 @@ service.interceptors.response.use( console.log('404错误被静默处理,不显示用户提示'); return Promise.reject(error); } - + // 对心理健康测评详情页面的403错误进行特殊处理 if (statusCode === '403') { const url = error.config.url; @@ -187,7 +187,7 @@ service.interceptors.response.use( return Promise.reject(error); } } - + message = '系统接口' + statusCode + '异常'; } ElMessage({ message: message, type: 'error', duration: 5 * 1000 }); diff --git a/web/src/views/cw/application/components/PerformanceIndicators.vue b/web/src/views/cw/application/components/PerformanceIndicators.vue index aec70aec..71c8063a 100644 --- a/web/src/views/cw/application/components/PerformanceIndicators.vue +++ b/web/src/views/cw/application/components/PerformanceIndicators.vue @@ -17,39 +17,24 @@ 产出指标 - +

数量指标

- + - + - + @@ -67,12 +52,7 @@ - + @@ -84,32 +64,17 @@ - + - + - + @@ -127,12 +92,7 @@ - + @@ -144,32 +104,17 @@ - + - + - + @@ -187,12 +132,7 @@ - + @@ -204,32 +144,17 @@ - + - + - + @@ -247,12 +172,7 @@ - + @@ -267,39 +187,24 @@ 效益指标
- +

经济效益指标

- + - + - + @@ -317,12 +222,7 @@ - + @@ -334,32 +234,17 @@ - + - + - + @@ -377,12 +262,7 @@ - + @@ -394,32 +274,17 @@ - + - + - + @@ -437,12 +302,7 @@ - + @@ -457,39 +317,24 @@ 满意度指标
- +

服务对象满意度指标

- + - + - + @@ -507,12 +352,7 @@ - + @@ -531,22 +371,22 @@ - diff --git a/web/src/views/cw/application/detail.vue b/web/src/views/cw/application/detail.vue index 6437becf..2fd5a17c 100644 --- a/web/src/views/cw/application/detail.vue +++ b/web/src/views/cw/application/detail.vue @@ -16,12 +16,7 @@ 审批流程 - +

{{ item.title }}

{{ item.description }}

@@ -33,36 +28,25 @@ 操作日志 - - + + - +
- 编辑 - 提交 - 撤回 + 编辑 + 提交 + 撤回 返回
@@ -72,9 +56,9 @@ \ No newline at end of file + diff --git a/web/src/views/cw/approverConfig/detail.vue b/web/src/views/cw/approverConfig/detail.vue index 5bd12d62..d57fe133 100644 --- a/web/src/views/cw/approverConfig/detail.vue +++ b/web/src/views/cw/approverConfig/detail.vue @@ -32,7 +32,7 @@ {{ parseTime(config.createTime, '{y}-{m}-{d} {h}:{i}') }} - +

配置描述

{{ config.description }}

@@ -48,22 +48,18 @@ 共 {{ config.steps.length }} 个步骤
- + - - +
-
+
- +
@@ -95,34 +91,24 @@
- +
- + {{ approver }}
- +
- +
- + @@ -144,13 +130,13 @@ export default { getApprovalTypeTag(type) { const typeMap = { 'fixed': 'success', - 'role': 'warning', + 'role': 'warning', 'dept': 'info', 'custom': 'primary' }; return typeMap[type] || 'info'; }, - + /** 获取审批类型文本 */ getApprovalTypeText(type) { const textMap = { @@ -161,7 +147,7 @@ export default { }; return textMap[type] || type; }, - + /** 获取适用范围文本 */ getScopeText(scope) { const scopeMap = { @@ -172,7 +158,7 @@ export default { }; return scopeMap[scope] || scope; }, - + /** 获取审批方式文本 */ getApprovalModeText(mode) { const modeMap = { @@ -182,7 +168,7 @@ export default { }; return modeMap[mode] || mode; }, - + /** 获取审批方式标签类型 */ getModeTagType(mode) { const typeMap = { @@ -201,7 +187,7 @@ export default { .detail-card { border-radius: 8px; border: 1px solid #e4e7ed; - + .card-header { display: flex; align-items: center; @@ -210,14 +196,14 @@ export default { color: #2c3e50; } } - + .section-title { margin: 0 0 12px 0; font-size: 16px; font-weight: 600; color: #2c3e50; } - + .description-text { margin: 0; padding: 12px; @@ -226,24 +212,24 @@ export default { color: #606266; line-height: 1.6; } - + .steps-detail { .step-detail-item { margin-bottom: 16px; - + &:last-child { margin-bottom: 0; } } - + .step-detail-card { border: 1px solid #e4e7ed; - + .step-header { display: flex; align-items: center; gap: 12px; - + .step-number { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; @@ -252,7 +238,7 @@ export default { font-size: 12px; font-weight: 600; } - + .step-name { font-weight: 600; color: #2c3e50; @@ -260,12 +246,12 @@ export default { } } } - + .step-info { display: flex; align-items: center; margin-bottom: 8px; - + .info-label { font-weight: 600; color: #909399; @@ -273,23 +259,23 @@ export default { min-width: 80px; } } - + .approvers-section { border-top: 1px solid #f0f0f0; padding-top: 16px; - + .info-label { font-weight: 600; color: #909399; margin-bottom: 8px; display: block; } - + .approvers-list { display: flex; flex-wrap: wrap; gap: 8px; - + .approver-tag { background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%); color: white; @@ -297,7 +283,7 @@ export default { } } } - + .custom-approver-notice { border-top: 1px solid #f0f0f0; padding-top: 16px; @@ -316,4 +302,4 @@ export default { .mt-6 { margin-top: 24px; } - \ No newline at end of file + diff --git a/web/src/views/cw/approverConfig/index.vue b/web/src/views/cw/approverConfig/index.vue index 2169e9af..383c05a5 100644 --- a/web/src/views/cw/approverConfig/index.vue +++ b/web/src/views/cw/approverConfig/index.vue @@ -85,10 +85,14 @@ 新增 - 修改 + 修改 - 删除 + 删除 展开/折叠 @@ -125,12 +129,7 @@ @@ -178,13 +177,7 @@ - + @@ -241,13 +234,9 @@ 添加步骤
- +
-
+
- + @@ -290,46 +279,25 @@ - +
- - + +
- +
- - + +
- +
- +
- +
- +