lxm final

This commit is contained in:
李旭明 committed 2025-08-23 10:22:24 +08:00
commit e46971e383
2419 files changed
+296967 -243218

No files matched your search

@@ -0,0 +1,120 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { AssessmentApprovalQuery, AssessmentApprovalVO, AssessmentApprovalDetailVO, AssessmentApprovalSubmitBO, EvaluationLevelStatsVO } from './types';
/**
* 查询班主任考核审核列表
* @param query
* @returns {*}
*/
export const listAssessmentApproval = (query?: AssessmentApprovalQuery): AxiosPromise<AssessmentApprovalVO[]> => {
return request({
url: '/bzrkh/assessmentApproval/list',
method: 'get',
params: query
});
};
/**
* 获取考核审核详情
* @param planId 计划ID
* @param classId 班级ID
* @param evaluatedUserId 被评价用户ID
* @returns {*}
*/
export const getAssessmentApprovalDetail = (
planId: string | number,
classId: string | number,
evaluatedUserId: string | number
): AxiosPromise<AssessmentApprovalDetailVO> => {
return request({
url: '/bzrkh/assessmentApproval/detail',
method: 'get',
params: {
planId,
classId,
evaluatedUserId
}
});
};
/**
* 提交考核审核
* @param data 审核数据
* @returns {*}
*/
export const submitAssessmentApproval = (data: AssessmentApprovalSubmitBO): AxiosPromise<void> => {
return request({
url: '/bzrkh/assessmentApproval/submit',
method: 'post',
data: data
});
};
/**
* 批量审核通过
* @param ids 审核ID列表
* @returns {*}
*/
export const batchApproveAssessment = (ids: (string | number)[]): AxiosPromise<void> => {
return request({
url: '/bzrkh/assessmentApproval/batchApprove',
method: 'post',
data: { ids }
});
};
/**
* 批量审核拒绝
* @param ids 审核ID列表
* @param rejectReason 拒绝原因
* @returns {*}
*/
export const batchRejectAssessment = (ids: (string | number)[], rejectReason: string): AxiosPromise<void> => {
return request({
url: '/bzrkh/assessmentApproval/batchReject',
method: 'post',
data: {
ids,
rejectReason
}
});
};
/**
* 获取考核方案下拉选项
* @returns {*}
*/
export const getAssessmentSchemeOptions = (): AxiosPromise<any[]> => {
return request({
url: '/bzrkh/assessmentApproval/schemeOptions',
method: 'get'
});
};
/**
* 导出考核审核数据
* @param query 查询条件
* @returns {*}
*/
export const exportAssessmentApproval = (query?: AssessmentApprovalQuery): AxiosPromise<void> => {
return request({
url: '/bzrkh/assessmentApproval/export',
method: 'post',
data: query,
responseType: 'blob'
});
};
/**
* 获取评价等级统计数据
* @param planId 计划ID
* @returns {*}
*/
export const getEvaluationLevelStats = (planId: string | number): AxiosPromise<EvaluationLevelStatsVO> => {
return request({
url: '/bzrkh/assessmentApproval/evaluationStats',
method: 'get',
params: { planId }
});
};
@@ -0,0 +1,243 @@
/**
* 班主任考核审核相关类型定义
*/
/**
* 审核列表查询参数
*/
export interface AssessmentApprovalQuery {
pageNum?: number;
pageSize?: number;
planName?: string;
schemeName?: string;
auditStatus?: string;
className?: string;
teacherName?: string;
orderByColumn?: string;
isAsc?: string;
}
/**
* 审核列表VO
*/
export interface AssessmentApprovalVO {
id?: string | number;
planId?: string | number;
planName?: string;
planCode?: string;
schemeId?: string | number;
schemeName?: string;
academicYear?: string;
semester?: string;
classId?: string | number;
className?: string;
teacherId?: string | number;
teacherName?: string;
evaluatedUserId?: string | number;
evaluatedUserName?: string;
submitTime?: string;
auditStatus?: string;
auditStatusText?: string;
selfScore?: number;
superiorScore?: number;
finalScore?: number;
createTime?: string;
}
/**
* 审核详情VO - 继承自班主任提交的详情数据
*/
export interface AssessmentApprovalDetailVO {
id?: string | number;
planId?: string | number;
classId?: string | number;
/**
* 班级详细信息
*/
classDetail?: {
id?: string | number;
className?: string;
collegeName?: string;
majorName?: string;
classType?: string;
totalStudentCount?: number;
boardingStudentCount?: number;
};
/**
* 系数信息
*/
coefficient?: {
totalCoefficient?: number;
levelCoefficient?: number;
studentCountCoefficient?: number;
boardingCoefficient?: number;
};
/**
* 班主任常规工作指标列表 - 包含自评和上级评分
*/
routineWorkIndicators?: AssessmentApprovalIndicatorVO[];
/**
* 班级扣分指标 - 班级管理实效
*/
classDeductionIndicator?: AssessmentApprovalIndicatorVO;
/**
* 特色工作指标列表
*/
specialWorkIndicators?: AssessmentApprovalSpecialWorkVO[];
/**
* 自我总体评价
*/
selfOverallComment?: string;
/**
* 上级总体评价
*/
superiorOverallComment?: string;
/**
* 月考核得分
*/
monthlyScore?: number;
/**
* 审核状态
*/
auditStatus?: string;
/**
* 提交时间
*/
submitTime?: string;
}
/**
* 审核指标VO - 包含自评和上级评分
*/
export interface AssessmentApprovalIndicatorVO {
id?: string | number;
indicatorId?: string | number;
indicatorName?: string;
indicatorCode?: string;
description?: string;
score?: number; // 指标分值
maxScore?: number;
// 自评相关
selfScore?: number;
selfComment?: string;
// 上级评相关
superiorScore?: number;
superiorComment?: string;
// 审核状态
auditStatus?: string;
}
/**
* 特色工作审核VO
*/
export interface AssessmentApprovalSpecialWorkVO {
id?: string | number;
indicatorCode?: string;
indicatorName?: string;
// 自评相关
score?: number; // 自评分数 (兼容原有字段)
selfScore?: number; // 自评分数 (标准字段名)
selfComment?: string;
// 上级评相关
superiorScore?: number;
superiorComment?: string;
// 审核状态
auditStatus?: string;
}
/**
* 审核提交BO
*/
export interface AssessmentApprovalSubmitBO {
planId?: string | number;
classId?: string | number;
evaluatedUserId?: string | number;
/**
* 班主任常规工作审核数据
*/
routineWorkApproval?: AssessmentApprovalIndicatorSubmitVO[];
/**
* 班级管理实效审核数据
*/
classDeductionApproval?: AssessmentApprovalIndicatorSubmitVO;
/**
* 特色工作审核数据
*/
specialWorkApproval?: AssessmentApprovalSpecialWorkSubmitVO[];
/**
* 上级总体评价
*/
superiorOverallComment?: string;
/**
* 审核状态 0=待审核 1=审核通过 2=审核不通过
*/
auditStatus?: string;
/**
* 审核意见
*/
auditComment?: string;
}
/**
* 指标审核提交VO
*/
export interface AssessmentApprovalIndicatorSubmitVO {
id?: string | number;
indicatorId?: string | number;
superiorScore?: number;
superiorComment?: string;
}
/**
* 特色工作审核提交VO
*/
export interface AssessmentApprovalSpecialWorkSubmitVO {
id?: string | number;
indicatorCode?: string;
superiorScore?: number;
superiorComment?: string;
}
/**
* 评价等级统计数据
*/
export interface EvaluationLevelStatsVO {
totalTeachers: number; // 总班主任数量
scoreRankings: ScoreRankingVO[]; // 分数排名列表
evaluationLevelRules: { // 评价等级规则
aLevelMaxPercentage: number; // A等最大占比(如20%)
passScore: number; // 及格分数(如60分)
};
}
/**
* 分数排名VO
*/
export interface ScoreRankingVO {
score: number; // 考核得分
ranking: number; // 排名(从1开始)
percentage: number; // 百分比排名(前X%)
evaluatedUserId?: string | number; // 被评价用户ID(可选,用于标识当前用户)
}
@@ -0,0 +1,87 @@
import request from '@/utils/request';
import { AssessmentIndicatorVO, AssessmentIndicatorQuery, AssessmentIndicatorForm } from './types';
/**
* 查询班主任考核指标体系列表
* @param query 查询条件
* @returns
*/
export function listBmzrAssessmentIndicator(query?: AssessmentIndicatorQuery) {
return request({
url: '/bzrkh/assessmentIndicator/list',
method: 'get',
params: query
});
}
/**
* 查询班主任考核指标体系详细
* @param id 主键
* @returns
*/
export function getBmzrAssessmentIndicator(id: string | number) {
return request({
url: `/bzrkh/assessmentIndicator/${id}`,
method: 'get'
});
}
/**
* 新增班主任考核指标体系
* @param data 表单数据
* @returns
*/
export function addBmzrAssessmentIndicator(data: AssessmentIndicatorForm) {
return request({
url: '/bzrkh/assessmentIndicator',
method: 'post',
data: data
});
}
/**
* 修改班主任考核指标体系
* @param data 表单数据
* @returns
*/
export function updateBmzrAssessmentIndicator(data: AssessmentIndicatorForm) {
return request({
url: '/bzrkh/assessmentIndicator',
method: 'put',
data: data
});
}
/**
* 删除班主任考核指标体系
* @param ids 主键串
* @returns
*/
export function delBmzrAssessmentIndicator(ids: string | number | Array<string | number>) {
return request({
url: `/bzrkh/assessmentIndicator/${ids}`,
method: 'delete'
});
}
/**
* 获取指标类型选项
* @returns
*/
export function getIndicatorTypeOptions() {
return request({
url: '/bzrkh/assessmentIndicatorType/listAllIncludeDeleted',
method: 'get'
});
}
/**
* 获取父级指标选项
* @returns
*/
export function getParentIndicatorOptions() {
return request({
url: '/bzrkh/assessmentIndicator/treeselect',
method: 'get'
});
}
@@ -0,0 +1,237 @@
export interface AssessmentIndicatorVO {
/**
* 主键ID
*/
id: string | number;
/**
* 租户编号
*/
tenantId?: string;
/**
* 指标名称
*/
indicatorName?: string;
/**
* 指标编码
*/
indicatorCode?: string;
/**
* 指标类型
*/
indicatorType?: string;
/**
* 父级指标ID
*/
parentId?: string | number;
/**
* 排序
*/
sortOrder?: number;
/**
* 权重比例(0-1之间)
*/
weightRatio?: number;
/**
* 最高分值
*/
maxScore?: number;
/**
* 分值
*/
score?: number;
/**
* 允许自评(0=否 1=是)
*/
allowSelfEvaluation?: string;
/**
* 允许上级评(0=否 1=是)
*/
allowSuperiorEvaluation?: string;
/**
* 状态(0正常 1停用)
*/
status?: string;
/**
* 备注
*/
remark?: string;
/**
* 创建部门
*/
createDept?: string | number;
/**
* 创建者
*/
createBy?: string | number;
/**
* 创建时间
*/
createTime?: string;
/**
* 更新者
*/
updateBy?: string | number;
/**
* 更新时间
*/
updateTime?: string;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: number;
}
export interface AssessmentIndicatorForm {
/**
* 主键ID
*/
id?: string | number;
/**
* 租户编号
*/
tenantId?: string;
/**
* 指标名称
*/
indicatorName?: string;
/**
* 指标编码
*/
indicatorCode?: string;
/**
* 指标类型
*/
indicatorType?: string;
/**
* 父级指标ID
*/
parentId?: string | number;
/**
* 排序
*/
sortOrder?: number;
/**
* 权重比例(0-1之间)
*/
weightRatio?: number;
/**
* 最高分值
*/
maxScore?: number;
/**
* 分值
*/
score?: number;
/**
* 允许自评(0=否 1=是)
*/
allowSelfEvaluation?: string;
/**
* 允许上级评(0=否 1=是)
*/
allowSuperiorEvaluation?: string;
/**
* 状态(0正常 1停用)
*/
status?: string;
/**
* 备注
*/
remark?: string;
}
export interface AssessmentIndicatorQuery extends PageQuery {
/**
* 指标名称
*/
indicatorName?: string;
/**
* 指标编码
*/
indicatorCode?: string;
/**
* 指标类型
*/
indicatorType?: string;
/**
* 父级指标ID
*/
parentId?: string | number;
/**
* 允许自评(0=否 1=是)
*/
allowSelfEvaluation?: string;
/**
* 允许上级评(0=否 1=是)
*/
allowSuperiorEvaluation?: string;
/**
* 状态(0正常 1停用)
*/
status?: string;
/**
* 日期范围参数
*/
params?: any;
}
export interface AssessmentIndicatorTypeOption {
/**
* 主键ID
*/
id: string | number;
/**
* 指标类型名称
*/
indicatorTypeName: string;
/**
* 指标类型编码
*/
indicatorTypeCode: string;
/**
* 状态(0正常 1停用)
*/
status?: string;
}
@@ -0,0 +1,75 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { AssessmentIndicatorTypeVO, AssessmentIndicatorTypeForm, AssessmentIndicatorTypeQuery } from '@/api/bzrkh/assessmentIndicatorType/types';
/**
* 查询班主任考核指标类型列表
* @param query
* @returns {*}
*/
export const listAssessmentIndicatorType = (query?: AssessmentIndicatorTypeQuery): AxiosPromise<AssessmentIndicatorTypeVO[]> => {
return request({
url: '/bzrkh/assessmentIndicatorType/list',
method: 'get',
params: query
});
};
/**
* 查询所有班主任考核指标类型列表(包括已逻辑删除的)
* @param query
* @returns {*}
*/
export const listAllAssessmentIndicatorType = (query?: AssessmentIndicatorTypeQuery): AxiosPromise<AssessmentIndicatorTypeVO[]> => {
return request({
url: '/bzrkh/assessmentIndicatorType/listAllIncludeDeleted',
method: 'get',
params: query
});
};
/**
* 查询班主任考核指标类型详细
* @param id
*/
export const getAssessmentIndicatorType = (id: string | number): AxiosPromise<AssessmentIndicatorTypeVO> => {
return request({
url: '/bzrkh/assessmentIndicatorType/' + id,
method: 'get'
});
};
/**
* 新增班主任考核指标类型
* @param data
*/
export const addAssessmentIndicatorType = (data: AssessmentIndicatorTypeForm) => {
return request({
url: '/bzrkh/assessmentIndicatorType',
method: 'post',
data: data
});
};
/**
* 修改班主任考核指标类型
* @param data
*/
export const updateAssessmentIndicatorType = (data: AssessmentIndicatorTypeForm) => {
return request({
url: '/bzrkh/assessmentIndicatorType',
method: 'put',
data: data
});
};
/**
* 删除班主任考核指标类型
* @param id
*/
export const delAssessmentIndicatorType = (id: string | number | Array<string | number>) => {
return request({
url: '/bzrkh/assessmentIndicatorType/' + id,
method: 'delete'
});
};
@@ -0,0 +1,110 @@
export interface AssessmentIndicatorTypeVO {
/**
* 主键ID
*/
id: string | number;
/**
* 删除标志
*/
deleted: number;
/**
* 指标类型名称
*/
indicatorTypeName: string;
/**
* 指标类型编码
*/
indicatorTypeCode: string;
/**
* 状态
*/
status: string;
/**
* 备注
*/
remark: string;
/**
* 创建者
*/
createBy: number;
/**
* 创建时间
*/
createTime: string;
/**
* 更新者
*/
updateBy: number;
/**
* 更新时间
*/
updateTime: string;
}
export interface AssessmentIndicatorTypeForm extends BaseEntity {
/**
* 主键ID
*/
id?: string | number;
/**
* 删除标志
*/
deleted?: number;
/**
* 指标类型名称
*/
indicatorTypeName?: string;
/**
* 指标类型编码
*/
indicatorTypeCode?: string;
/**
* 状态
*/
status?: string;
/**
* 备注
*/
remark?: string;
}
export interface AssessmentIndicatorTypeQuery extends PageQuery {
/**
* 删除标志
*/
deleted?: number;
/**
* 指标类型名称
*/
indicatorTypeName?: string;
/**
* 指标类型编码
*/
indicatorTypeCode?: string;
/**
* 状态
*/
status?: string;
/**
* 日期范围参数
*/
params?: any;
}
+100
View File
@@ -0,0 +1,100 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { AssessmentPlanVO, AssessmentPlanForm, AssessmentPlanQuery, AssessmentSchemeOption } from './types';
/**
* 查询班主任考核计划列表
* @param query
* @returns {*}
*/
export const listAssessmentPlan = (query?: AssessmentPlanQuery): AxiosPromise<AssessmentPlanVO[]> => {
return request({
url: '/bzrkh/assessmentPlan/list',
method: 'get',
params: query
});
};
/**
* 查询班主任考核计划详细
* @param id
*/
export const getAssessmentPlan = (id: string | number): AxiosPromise<AssessmentPlanVO> => {
return request({
url: '/bzrkh/assessmentPlan/' + id,
method: 'get'
});
};
/**
* 新增班主任考核计划
* @param data
*/
export const addAssessmentPlan = (data: AssessmentPlanForm) => {
return request({
url: '/bzrkh/assessmentPlan',
method: 'post',
data: data
});
};
/**
* 修改班主任考核计划
* @param data
*/
export const updateAssessmentPlan = (data: AssessmentPlanForm) => {
return request({
url: '/bzrkh/assessmentPlan',
method: 'put',
data: data
});
};
/**
* 删除班主任考核计划
* @param id
*/
export const delAssessmentPlan = (id: string | number | Array<string | number>) => {
return request({
url: '/bzrkh/assessmentPlan/' + id,
method: 'delete'
});
};
/**
* 导出班主任考核计划
* @param query
*/
export const exportAssessmentPlan = (query?: AssessmentPlanQuery) => {
return request({
url: '/bzrkh/assessmentPlan/export',
method: 'post',
data: query
});
};
/**
* 获取可用的考核方案选项
*/
export const getAvailableSchemes = (): AxiosPromise<AssessmentSchemeOption[]> => {
return request({
url: '/bzrkh/assessmentPlan/schemes/options',
method: 'get'
});
};
/**
* 启用/禁用考核计划
* @param id
* @param status
*/
export const changeAssessmentPlanStatus = (id: string | number, status: string) => {
return request({
url: '/bzrkh/assessmentPlan/changeStatus',
method: 'put',
data: {
id,
planStatus: status
}
});
};
+240
View File
@@ -0,0 +1,240 @@
export interface AssessmentPlanVO {
/**
* 主键ID
*/
id?: string | number;
/**
* 租户编号
*/
tenantId?: string;
/**
* 计划名称
*/
planName?: string;
/**
* 计划编码
*/
planCode?: string;
/**
* 考核方案ID
*/
schemeId?: string | number;
/**
* 考核方案名称
*/
schemeName?: string;
/**
* 学年
*/
academicYear?: string;
/**
* 学期(1=上学期 2=下学期)
*/
semester?: string;
/**
* 计划开始时间
*/
planStartTime?: string;
/**
* 计划结束时间
*/
planEndTime?: string;
/**
* 数据提取开始时间
*/
dataExtractStartTime?: string;
/**
* 数据提取结束时间
*/
dataExtractEndTime?: string;
/**
* 计划状态(0=禁用 1=启用)
*/
planStatus?: string;
/**
* 计划描述
*/
description?: string;
/**
* 备注
*/
remark?: string;
/**
* 创建部门
*/
createDept?: string | number;
/**
* 创建者
*/
createBy?: string | number;
/**
* 创建时间
*/
createTime?: string;
/**
* 更新者
*/
updateBy?: string | number;
/**
* 更新时间
*/
updateTime?: string;
}
export interface AssessmentPlanForm {
/**
* 主键ID
*/
id?: string | number;
/**
* 计划名称
*/
planName?: string;
/**
* 计划编码
*/
planCode?: string;
/**
* 考核方案ID
*/
schemeId?: string | number;
/**
* 学年
*/
academicYear?: string;
/**
* 学期(1=上学期 2=下学期)
*/
semester?: string;
/**
* 计划开始时间
*/
planStartTime?: string;
/**
* 计划结束时间
*/
planEndTime?: string;
/**
* 数据提取开始时间
*/
dataExtractStartTime?: string;
/**
* 数据提取结束时间
*/
dataExtractEndTime?: string;
/**
* 计划状态(0=禁用 1=启用)
*/
planStatus?: string;
/**
* 计划描述
*/
description?: string;
/**
* 备注
*/
remark?: string;
}
export interface AssessmentPlanQuery extends PageQuery {
/**
* 计划名称
*/
planName?: string;
/**
* 计划编码
*/
planCode?: string;
/**
* 考核方案ID
*/
schemeId?: string | number;
/**
* 学年
*/
academicYear?: string;
/**
* 学期(1=上学期 2=下学期)
*/
semester?: string;
/**
* 计划状态(0=禁用 1=启用)
*/
planStatus?: string;
/**
* 创建时间范围
*/
params?: {
'beginCreateTime'?: string;
'endCreateTime'?: string;
};
}
export interface AssessmentSchemeOption {
/**
* 方案ID
*/
id?: string | number;
/**
* 方案名称
*/
schemeName?: string;
/**
* 方案编码
*/
schemeCode?: string;
/**
* 学年
*/
academicYear?: string;
/**
* 学期
*/
semester?: string;
/**
* 状态
*/
status?: string;
}
@@ -0,0 +1,74 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { BmzrAssessmentSchemeVO, BmzrAssessmentSchemeForm, BmzrAssessmentSchemeQuery } from '@/api/bzrkh/assessmentScheme/types';
/**
* 查询班主任考核方案列表
* @param query
* @returns {*}
*/
export const listBmzrAssessmentScheme = (query?: BmzrAssessmentSchemeQuery) => {
return request({
url: '/bzrkh/assessmentScheme/list',
method: 'get',
params: query
});
};
/**
* 查询班主任考核方案详细
* @param id
*/
export const getBmzrAssessmentScheme = (id: string | number): AxiosPromise<BmzrAssessmentSchemeVO> => {
return request({
url: '/bzrkh/assessmentScheme/' + id,
method: 'get'
});
};
/**
* 新增班主任考核方案
* @param data
*/
export const addBmzrAssessmentScheme = (data: BmzrAssessmentSchemeForm) => {
return request({
url: '/bzrkh/assessmentScheme',
method: 'post',
data: data
});
};
/**
* 修改班主任考核方案
* @param data
*/
export const updateBmzrAssessmentScheme = (data: BmzrAssessmentSchemeForm) => {
return request({
url: '/bzrkh/assessmentScheme',
method: 'put',
data: data
});
};
/**
* 删除班主任考核方案
* @param id
*/
export const delBmzrAssessmentScheme = (id: string | number | Array<string | number>) => {
return request({
url: '/bzrkh/assessmentScheme/' + id,
method: 'delete'
});
};
/**
* 导出班主任考核方案
* @param query
*/
export const exportBmzrAssessmentScheme = (query?: BmzrAssessmentSchemeQuery): AxiosPromise<any> => {
return request({
url: '/bzrkh/assessmentScheme/export',
method: 'post',
data: query
});
};
+185
View File
@@ -0,0 +1,185 @@
export interface BmzrAssessmentSchemeVO {
/**
* 主键ID
*/
id: string | number;
/**
* 租户编号
*/
tenantId: string;
/**
* 方案名称
*/
schemeName: string;
/**
* 方案编码
*/
schemeCode: string;
/**
* 学年
*/
academicYear: string;
/**
* 学期
*/
semester: string;
/**
* 方案描述
*/
schemeDescription: string;
/**
* 是否需要自评
*/
selfEvaluationRequired: string;
/**
* 是否需要上级评
*/
superiorEvaluationRequired: string;
/**
* 状态
*/
status: string;
/**
* 备注
*/
remark: string;
/**
* 创建部门
*/
createDept: number;
/**
* 创建者
*/
createBy: number;
/**
* 创建时间
*/
createTime: string;
/**
* 更新者
*/
updateBy: number;
/**
* 更新时间
*/
updateTime: string;
/**
* 删除标志
*/
deleted: number;
}
export interface BmzrAssessmentSchemeForm {
/**
* 主键ID
*/
id?: string | number;
/**
* 租户编号
*/
tenantId?: string;
/**
* 方案名称
*/
schemeName?: string;
/**
* 方案编码
*/
schemeCode?: string;
/**
* 学年
*/
academicYear?: string;
/**
* 学期
*/
semester?: string;
/**
* 方案描述
*/
schemeDescription?: string;
/**
* 是否需要自评
*/
selfEvaluationRequired?: string;
/**
* 是否需要上级评
*/
superiorEvaluationRequired?: string;
/**
* 状态
*/
status?: string;
/**
* 备注
*/
remark?: string;
}
export interface BmzrAssessmentSchemeQuery extends PageQuery {
/**
* 方案名称
*/
schemeName?: string;
/**
* 方案编码
*/
schemeCode?: string;
/**
* 学年
*/
academicYear?: string;
/**
* 学期
*/
semester?: string;
/**
* 状态
*/
status?: string;
/**
* 是否需要自评
*/
selfEvaluationRequired?: string;
/**
* 是否需要上级评
*/
superiorEvaluationRequired?: string;
/**
* 参数
*/
params?: any;
}
@@ -0,0 +1,91 @@
import request from '@/utils/request';
import { BmzrAssessmentSchemeIndicatorVO, BmzrAssessmentSchemeIndicatorQuery, BmzrAssessmentSchemeIndicatorForm } from './types';
/**
* 查询班主任考核方案指标关联列表
* @param query 查询条件
* @returns
*/
export function listBmzrAssessmentSchemeIndicator(query?: BmzrAssessmentSchemeIndicatorQuery) {
return request({
url: '/bzrkh/assessmentSchemeIndicator/list',
method: 'get',
params: query
});
}
/**
* 根据方案ID查询指标关联列表
* @param schemeId 方案ID
* @returns
*/
export function listBySchemeId(schemeId: string | number) {
return request({
url: `/bzrkh/assessmentSchemeIndicator/listBySchemeId/${schemeId}`,
method: 'get'
});
}
/**
* 查询班主任考核方案指标关联详细
* @param id 主键
* @returns
*/
export function getBmzrAssessmentSchemeIndicator(id: string | number) {
return request({
url: `/bzrkh/assessmentSchemeIndicator/${id}`,
method: 'get'
});
}
/**
* 新增班主任考核方案指标关联
* @param data 表单数据
* @returns
*/
export function addBmzrAssessmentSchemeIndicator(data: BmzrAssessmentSchemeIndicatorForm) {
return request({
url: '/bzrkh/assessmentSchemeIndicator',
method: 'post',
data: data
});
}
/**
* 修改班主任考核方案指标关联
* @param data 表单数据
* @returns
*/
export function updateBmzrAssessmentSchemeIndicator(data: BmzrAssessmentSchemeIndicatorForm) {
return request({
url: '/bzrkh/assessmentSchemeIndicator',
method: 'put',
data: data
});
}
/**
* 删除班主任考核方案指标关联
* @param ids 主键串
* @returns
*/
export function delBmzrAssessmentSchemeIndicator(ids: string | number | Array<string | number>) {
return request({
url: `/bzrkh/assessmentSchemeIndicator/${ids}`,
method: 'delete'
});
}
/**
* 批量保存方案指标关联
* @param schemeId 方案ID
* @param indicatorList 指标列表
* @returns
*/
export function batchSaveSchemeIndicators(schemeId: string | number, indicatorList: BmzrAssessmentSchemeIndicatorForm[]) {
return request({
url: `/bzrkh/assessmentSchemeIndicator/batchSave/${schemeId}`,
method: 'post',
data: indicatorList
});
}
@@ -0,0 +1,150 @@
export interface BmzrAssessmentSchemeIndicatorVO {
/**
* 主键ID
*/
id: string | number;
/**
* 租户编号
*/
tenantId: string;
/**
* 考核方案ID
*/
schemeId: string | number;
/**
* 考核指标ID
*/
indicatorId: string | number;
/**
* 指标名称
*/
indicatorName: string;
/**
* 指标编码
*/
indicatorCode: string;
/**
* 在方案中的权重比例
*/
weightRatio: number;
/**
* 自定义最高分值
*/
customMaxScore: number;
/**
* 分值
*/
score: number;
/**
* 排序
*/
sortOrder: number;
/**
* 备注
*/
remark: string;
/**
* 创建者
*/
createBy: number;
/**
* 创建时间
*/
createTime: string;
/**
* 更新者
*/
updateBy: number;
/**
* 更新时间
*/
updateTime: string;
/**
* 删除标志
*/
deleted: number;
}
export interface BmzrAssessmentSchemeIndicatorForm {
/**
* 主键ID
*/
id?: string | number;
/**
* 考核方案ID
*/
schemeId?: string | number;
/**
* 考核指标ID
*/
indicatorId?: string | number;
/**
* 在方案中的权重比例
*/
weightRatio?: number;
/**
* 自定义最高分值
*/
customMaxScore?: number;
/**
* 分值
*/
score?: number;
/**
* 排序
*/
sortOrder?: number;
/**
* 备注
*/
remark?: string;
}
export interface BmzrAssessmentSchemeIndicatorQuery extends PageQuery {
/**
* 考核方案ID
*/
schemeId?: string | number;
/**
* 考核指标ID
*/
indicatorId?: string | number;
/**
* 指标名称
*/
indicatorName?: string;
/**
* 排序
*/
sortOrder?: number;
/**
* 参数
*/
params?: any;
}
@@ -0,0 +1,124 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import {
TeacherClassVO,
TeacherAssessmentPlanVO,
TeacherAssessmentPlanQuery,
TeacherClassQuery,
AssessmentDetailVO,
AssessmentSubmitVO
} from './types';
/**
* 查询班主任管理的班级列表
* @param query
* @returns {*}
*/
export const listTeacherClasses = (query?: TeacherClassQuery): AxiosPromise<TeacherClassVO[]> => {
return request({
url: '/bzrkh/teacherAssessment/classes',
method: 'get',
params: query
});
};
/**
* 查询班主任考核计划列表(按班级)
* @param query
* @returns {*}
*/
export const listTeacherAssessmentPlans = (query?: TeacherAssessmentPlanQuery): AxiosPromise<TeacherAssessmentPlanVO[]> => {
return request({
url: '/bzrkh/teacherAssessment/plans',
method: 'get',
params: query
});
};
/**
* 提交考核
* @param planId 计划ID
* @param classId 班级ID
*/
export const submitAssessment = (planId: string | number, classId: string | number): AxiosPromise<void> => {
return request({
url: '/bzrkh/teacherAssessment/submit',
method: 'post',
data: {
planId,
classId
}
});
};
/**
* 查看考核详情
* @param planId 计划ID
* @param classId 班级ID
*/
export const getAssessmentDetail = (planId: string | number, classId: string | number): AxiosPromise<any> => {
return request({
url: '/bzrkh/teacherAssessment/detail',
method: 'get',
params: {
planId,
classId
}
});
};
/**
* 获取考核提交详情数据(用于提交弹窗)
* @param planId 计划ID
* @param classId 班级ID
*/
export const getAssessmentSubmitDetail = (planId: string | number, classId: string | number): AxiosPromise<AssessmentDetailVO> => {
return request({
url: '/bzrkh/teacherAssessment/submitDetail',
method: 'get',
params: {
planId,
classId
}
});
};
/**
* 提交考核评分数据
* @param data 考核提交数据
*/
export const submitAssessmentScore = (data: AssessmentSubmitVO): AxiosPromise<void> => {
return request({
url: '/bzrkh/teacherAssessment/submitScore',
method: 'post',
data
});
};
/**
* 查询班级学生违纪记录和奖励记录
* @param classId 班级ID
*/
export const getClassStudentRecords = (classId: string | number): AxiosPromise<any> => {
return request({
url: '/bzrkh/teacherAssessment/classStudentRecords',
method: 'get',
params: { classId }
});
};
/**
* 撤销考核提交
* @param planId 计划ID
* @param classId 班级ID
*/
export const withdrawAssessment = (planId: string | number, classId: string | number): AxiosPromise<void> => {
return request({
url: '/bzrkh/teacherAssessment/withdraw',
method: 'post',
data: {
planId,
classId
}
});
};
@@ -0,0 +1,584 @@
export interface TeacherClassVO {
/**
* 班级ID
*/
id?: string | number;
/**
* 班级代码
*/
classCode?: string;
/**
* 班级名称
*/
className?: string;
/**
* 班主任ID
*/
classTeacherId?: string | number;
/**
* 班主任姓名
*/
classTeacherName?: string;
/**
* 年级
*/
grade?: string;
/**
* 学院ID
*/
collegeId?: string | number;
/**
* 学院名称
*/
collegeName?: string;
/**
* 专业ID
*/
majorId?: string | number;
/**
* 专业名称
*/
majorName?: string;
/**
* 班级状态:1-正常,2-暂停,3-毕业,4-解散
*/
classStatus?: string;
/**
* 当前学生人数
*/
currentStudentCount?: number;
}
export interface TeacherAssessmentPlanVO {
/**
* 主键ID
*/
id?: string | number;
/**
* 计划名称
*/
planName?: string;
/**
* 计划编码
*/
planCode?: string;
/**
* 考核方案ID
*/
schemeId?: string | number;
/**
* 考核方案名称
*/
schemeName?: string;
/**
* 学年
*/
academicYear?: string;
/**
* 学期(1=上学期 2=下学期)
*/
semester?: string;
/**
* 计划开始时间
*/
planStartTime?: string;
/**
* 计划结束时间
*/
planEndTime?: string;
/**
* 数据提取开始时间
*/
dataExtractStartTime?: string;
/**
* 数据提取结束时间
*/
dataExtractEndTime?: string;
/**
* 计划状态(0=禁用 1=启用)
*/
planStatus?: string;
/**
* 计划描述
*/
description?: string;
/**
* 创建时间
*/
createTime?: string;
/**
* 备注
*/
remark?: string;
/**
* 审核状态(null=未提交,0=已提交待审核,1=审核通过,2=审核不通过)
*/
auditStatus?: string;
/**
* 提交时间
*/
submitTime?: string;
/**
* 是否已提交(用于前端按钮状态控制)
*/
submitted?: boolean;
}
export interface TeacherAssessmentPlanQuery {
/**
* 计划名称
*/
planName?: string;
/**
* 班级ID
*/
classId?: string | number;
/**
* 班主任ID
*/
teacherId?: string | number;
/**
* 学年
*/
academicYear?: string;
/**
* 学期(1=上学期 2=下学期)
*/
semester?: string;
/**
* 计划状态(0=禁用 1=启用)
*/
planStatus?: string;
/**
* 页码
*/
pageNum?: number;
/**
* 每页大小
*/
pageSize?: number;
/**
* 排序字段
*/
orderByColumn?: string;
/**
* 排序方向
*/
isAsc?: string;
/**
* 其他参数
*/
params?: Record<string, any>;
}
export interface TeacherClassQuery {
/**
* 班主任ID
*/
teacherId?: string | number;
/**
* 班级状态:1-正常,2-暂停,3-毕业,4-解散
*/
classStatus?: string;
}
// ========== 新增:考核提交相关类型定义 ==========
/**
* 班级详细信息
*/
export interface ClassDetailVO {
/**
* 班级ID
*/
id?: string | number;
/**
* 学院名称
*/
collegeName?: string;
/**
* 专业名称
*/
majorName?: string;
/**
* 班级名称
*/
className?: string;
/**
* 班级层次:1-中级工 2-高级工 3-预备技师 4-技师 5-中高职一体
*/
classType?: string;
/**
* 班级总人数
*/
totalStudentCount?: number;
/**
* 住校生人数
*/
boardingStudentCount?: number;
}
/**
* 系数信息
*/
export interface CoefficientVO {
/**
* 人数系数(K2)
*/
studentCountCoefficient?: number;
/**
* 住校生系数(K3)
*/
boardingCoefficient?: number;
/**
* 层次系数(K1)
*/
levelCoefficient?: number;
/**
* 总系数(K = K1 * (K2 + K3))
*/
totalCoefficient?: number;
}
/**
* 考核指标信息
*/
export interface AssessmentIndicatorVO {
/**
* 指标ID
*/
id?: string | number;
/**
* 指标名称
*/
indicatorName?: string;
/**
* 指标编码
*/
indicatorCode?: string;
/**
* 指标描述
*/
description?: string;
/**
* 指标分值
*/
score?: number;
/**
* 自评分数
*/
selfScore?: number;
/**
* 自评意见
*/
selfComment?: string;
/**
* 排序
*/
sortOrder?: number;
}
/**
* 特色工作指标
*/
export interface SpecialWorkIndicatorVO {
/**
* 指标编码
*/
indicatorCode?: string;
/**
* 指标名称
*/
indicatorName?: string;
/**
* 分值
*/
score?: number;
/**
* 自评意见
*/
selfComment?: string;
}
/**
* 考核提交数据
*/
export interface AssessmentSubmitVO {
/**
* 考核计划ID
*/
planId?: string | number;
/**
* 班级ID
*/
classId?: string | number;
/**
* 班主任常规工作指标评分
*/
routineWorkScores?: AssessmentIndicatorVO[];
/**
* 班级扣分
*/
classDeduction?: number;
/**
* 班级扣分意见
*/
classDeductionComment?: string;
/**
* 特色工作指标评分
*/
specialWorkScores?: SpecialWorkIndicatorVO[];
/**
* 总体评价
*/
overallComment?: string;
}
/**
* 考核详情数据
*/
export interface AssessmentDetailVO {
/**
* 班级详细信息
*/
classDetail?: ClassDetailVO;
/**
* 系数信息
*/
coefficient?: CoefficientVO;
/**
* 班主任常规工作指标列表
*/
routineWorkIndicators?: AssessmentIndicatorVO[];
/**
* 班级扣分指标
*/
classDeductionIndicator?: AssessmentIndicatorVO;
/**
* 特色工作指标列表
*/
specialWorkIndicators?: SpecialWorkIndicatorVO[];
/**
* 月考核得分
*/
monthlyScore?: number;
/**
* 总体评价
*/
overallComment?: string;
}
/**
* 班级学生违纪奖励记录
*/
export interface ClassStudentRecordsVO {
/**
* 班级名称
*/
className?: string;
/**
* 违纪记录数量
*/
disciplineCount?: number;
/**
* 奖励记录数量
*/
rewardCount?: number;
/**
* 违纪记录列表
*/
disciplineRecords?: StudentDisciplineRecordVO[];
/**
* 奖励记录列表
*/
rewardRecords?: StudentRewardRecordVO[];
}
/**
* 学生违纪记录
*/
export interface StudentDisciplineRecordVO {
/**
* 记录ID
*/
id?: string | number;
/**
* 学生ID
*/
studentId?: string | number;
/**
* 学号
*/
studentNo?: string;
/**
* 学生姓名
*/
studentName?: string;
/**
* 违纪类型ID
*/
disciplineTypeId?: string | number;
/**
* 违纪类型名称
*/
disciplineTypeName?: string;
/**
* 违纪日期
*/
disciplineDate?: string;
/**
* 违纪原因
*/
disciplineReason?: string;
/**
* 处分内容
*/
disciplineContent?: string;
/**
* 扣分分值
*/
scoreDeduction?: number;
/**
* 状态(1=生效 0=已撤销)
*/
status?: string;
}
/**
* 学生奖励记录
*/
export interface StudentRewardRecordVO {
/**
* 记录ID
*/
id?: string | number;
/**
* 学生ID
*/
studentId?: string | number;
/**
* 学号
*/
studentNo?: string;
/**
* 学生姓名
*/
studentName?: string;
/**
* 奖励类型ID
*/
rewardTypeId?: string | number;
/**
* 奖励类型名称
*/
rewardTypeName?: string;
/**
* 奖励日期
*/
rewardDate?: string;
/**
* 奖励内容
*/
rewardContent?: string;
/**
* 加分分值
*/
scoreAddition?: number;
/**
* 状态(1=生效 0=撤销)
*/
status?: string;
}
+92 -8
View File
@@ -82,20 +82,68 @@ export const getApprovalRecord = (id: string | number): AxiosPromise<CwApprovalR
// 审批申报(单个)
export const approveApplication = (data: CwApprovalForm) => {
// 🔧 修复:使用部门审批接口,将JSON数据转换为URL参数
const params = new URLSearchParams();
params.append('applicationId', String(data.applicationId || ''));
// 🔧 修复:正确处理审批结果映射
let approveAction = 'return'; // 默认为退回
if (data.approvalResult === 'approve') {
approveAction = 'approve';
} else if (data.approvalResult === 'return') {
approveAction = 'return';
}
params.append('approveAction', approveAction);
params.append('approveOpinion', data.approvalComment || '');
return request({
url: '/cw/approval/process',
url: '/cw/approval/dept', // 🔧 修复:使用部门审批接口
method: 'post',
data: data
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
data: params.toString()
});
};
// 批量审批申报
export const batchApproveApplication = (data: CwApprovalForm) => {
return request({
url: '/cw/approval/batchApprove',
method: 'post',
data: data
});
export const batchApproveApplication = async (data: CwApprovalForm) => {
// 🔧 修复:后端没有批量接口,改为逐个调用
if (!data.applicationIds || data.applicationIds.length === 0) {
throw new Error('未选择要审批的申报项目');
}
console.log('🔧 批量审批开始,项目数量:', data.applicationIds.length);
const results = [];
for (const applicationId of data.applicationIds) {
try {
const singleData = {
applicationId: applicationId,
approvalResult: data.approvalResult,
approvalComment: data.approvalComment,
nextApprover: data.nextApprover
};
console.log('🔧 处理项目ID:', applicationId);
const result = await approveApplication(singleData);
results.push({ applicationId, success: true, result });
} catch (error) {
console.error('🔧 项目审批失败,ID:', applicationId, 'Error:', error);
results.push({ applicationId, success: false, error });
}
}
// 检查是否有失败的项目
const failures = results.filter((r) => !r.success);
if (failures.length > 0) {
console.error('🔧 批量审批部分失败:', failures);
throw new Error(`批量审批完成,${failures.length}个项目审批失败`);
}
console.log('🔧 批量审批全部成功');
return { code: 200, msg: '批量审批成功', data: results };
};
// 获取审批历史记录
@@ -133,6 +181,42 @@ export const getDepartmentApprovals = (query: CwApprovalRecordQuery): AxiosPromi
});
};
// 获取财务审批待审批列表
export const getFinancePendingApprovals = (query: CwApprovalRecordQuery): AxiosPromise<CwApprovalRecordVO[]> => {
return request({
url: '/cw/approval/finance/pending',
method: 'get',
params: query
});
};
// 获取财务审批已审批列表
export const getFinanceApprovedRecords = (query: CwApprovalRecordQuery): AxiosPromise<CwApprovalRecordVO[]> => {
return request({
url: '/cw/approval/finance/approved',
method: 'get',
params: query
});
};
// 获取学院领导审批待审批列表
export const getLeaderPendingApprovals = (query: CwApprovalRecordQuery): AxiosPromise<CwApprovalRecordVO[]> => {
return request({
url: '/cw/approval/leader/pending',
method: 'get',
params: query
});
};
// 获取学院领导已审批列表
export const getLeaderApprovedApprovals = (query: CwApprovalRecordQuery): AxiosPromise<CwApprovalRecordVO[]> => {
return request({
url: '/cw/approval/leader/approved',
method: 'get',
params: query
});
};
// 获取可选审批人列表
export const getAvailableApprovers = (applicationId: string | number): AxiosPromise<any[]> => {
return request({
+46
View File
@@ -0,0 +1,46 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
export interface FinanceApprovalForm {
applicationId: number;
approvalResult: string; // 'approve' | 'reject'
approvalComment: string;
selectedApproverId?: number; // 选择的院领导ID(审批通过时必填)
}
// 财务审批操作
export const financeApproveApplication = (data: FinanceApprovalForm): AxiosPromise<any> => {
const params = new URLSearchParams({
applicationId: data.applicationId.toString(),
approveAction: data.approvalResult,
approveOpinion: data.approvalComment
});
// 如果选择了院领导,添加参数
if (data.selectedApproverId) {
params.append('selectedApproverId', data.selectedApproverId.toString());
}
return request({
url: '/cw/approval/finance',
method: 'post',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
data: params
});
};
// 财务批量审批操作
export const batchFinanceApproveApplication = (dataList: FinanceApprovalForm[]): Promise<any> => {
// 前端模拟批量操作,逐个调用单个审批接口
const promises = dataList.map((item) => financeApproveApplication(item));
return Promise.all(promises).then((results) => {
return {
data: results,
code: 200,
message: '批量操作成功'
};
});
};
+38
View File
@@ -0,0 +1,38 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
export interface LeaderApprovalForm {
applicationId: number;
approvalResult: string; // 'approve' | 'reject'
approvalComment: string;
}
// 分管领导审批操作
export const leaderApproveApplication = (data: LeaderApprovalForm): AxiosPromise<any> => {
return request({
url: '/cw/approval/leader',
method: 'post',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
data: new URLSearchParams({
applicationId: data.applicationId.toString(),
approveAction: data.approvalResult,
approveOpinion: data.approvalComment
})
});
};
// 分管领导批量审批操作
export const batchLeaderApproveApplication = (dataList: LeaderApprovalForm[]): AxiosPromise<any> => {
// 前端模拟批量操作,逐个调用单个审批接口
const promises = dataList.map((item) => leaderApproveApplication(item));
return Promise.all(promises).then((results) => {
return {
data: results,
code: 200,
message: '批量操作成功'
};
});
};
+2 -2
View File
@@ -1,6 +1,6 @@
/**
* 财务项目预算审批 - API服务
*
*
* @author ruoyi
* @date 2025-01-26
*/
@@ -214,4 +214,4 @@ export const delApproverConfig = (id: string | number | Array<string | number>)
url: '/cw/approverConfig/' + id,
method: 'delete'
});
};
};
+41
View File
@@ -0,0 +1,41 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
export interface StatisticsQuery {
budgetYear?: string;
}
// 获取项目清单(用于统计页面)
export function getStatisticsList(query: StatisticsQuery): AxiosPromise<any> {
return request({
url: '/cw/application/statistics/list',
method: 'get',
params: query
});
}
// 获取状态统计
export function getStatusStatistics(budgetYear?: string): AxiosPromise<any> {
return request({
url: '/cw/application/statistics/status',
method: 'get',
params: { budgetYear }
});
}
// 获取部门预算汇总统计
export function getDepartmentStatistics(budgetYear?: string): AxiosPromise<any> {
return request({
url: '/cw/application/statistics/department',
method: 'get',
params: { budgetYear }
});
}
// 获取年度汇总统计
export function getYearlyStatistics(): AxiosPromise<any> {
return request({
url: '/cw/application/statistics/yearly',
method: 'get'
});
}
+5 -2
View File
@@ -1,6 +1,6 @@
/**
* 财务项目预算审批 - TypeScript类型定义
*
*
* @author ruoyi
* @date 2025-01-26
*/
@@ -39,6 +39,7 @@ export interface CwProjectApplicationVO {
totalMunicipalFiscal?: number;
totalSelfFunding?: number;
totalOtherFunding?: number;
// 分年度预算明细
currentYearTotal?: number;
currentYearMunicipal?: number;
currentYearSelf?: number;
@@ -64,6 +65,7 @@ export interface CwProjectApplicationVO {
updateBy?: number;
updateTime?: string;
remark?: string;
performanceIndicators?: any[]; // 绩效指标数据
}
// 项目预算申报表单对象
@@ -86,6 +88,7 @@ export interface CwProjectApplicationForm {
totalMunicipalFiscal?: number;
totalSelfFunding?: number;
totalOtherFunding?: number;
// 分年度预算明细
currentYearTotal?: number;
currentYearMunicipal?: number;
currentYearSelf?: number;
@@ -199,4 +202,4 @@ export interface StatusDistribution {
statusName: string;
count: number;
percentage: number;
}
}
+174
View File
@@ -0,0 +1,174 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import {
ScholarshipApplicationVO,
ScholarshipApplicationForm,
ScholarshipApplicationQuery,
ScholarshipClassQuotaVO,
ScholarshipAttachmentVO
} from './types';
// 导出贫困申请审核相关API
export * from './povertyApplicationReview';
/**
* 查询奖学金申请记录列表
* @param query 查询参数
*/
export const listScholarshipApplication = (query?: ScholarshipApplicationQuery): AxiosPromise<ScholarshipApplicationVO[]> => {
return request({
url: '/jcbt/scholarshipApplication/list',
method: 'get',
params: query
});
};
/**
* 查询奖学金申请记录详细信息
* @param id 申请记录ID
*/
export const getScholarshipApplication = (id: string | number): AxiosPromise<ScholarshipApplicationVO> => {
return request({
url: `/jcbt/scholarshipApplication/${id}`,
method: 'get'
});
};
/**
* 新增奖学金申请记录
* @param data 申请数据
*/
export const addScholarshipApplication = (data: ScholarshipApplicationForm) => {
return request({
url: '/jcbt/scholarshipApplication',
method: 'post',
data: data
});
};
/**
* 修改奖学金申请记录
* @param data 申请数据
*/
export const updateScholarshipApplication = (data: ScholarshipApplicationForm) => {
return request({
url: '/jcbt/scholarshipApplication',
method: 'put',
data: data
});
};
/**
* 删除奖学金申请记录
* @param id 申请记录ID
*/
export const delScholarshipApplication = (id: string | number | Array<string | number>) => {
return request({
url: `/jcbt/scholarshipApplication/${id}`,
method: 'delete'
});
};
/**
* 导出奖学金申请记录
* @param query 查询参数
*/
export const exportScholarshipApplication = (query: ScholarshipApplicationQuery) => {
return request({
url: '/jcbt/scholarshipApplication/export',
method: 'post',
data: query,
responseType: 'blob'
});
};
/**
* 下载导入模板
*/
export const importTemplate = () => {
return request({
url: '/jcbt/scholarshipApplication/importTemplate',
method: 'post',
responseType: 'blob'
});
};
/**
* 批量导入奖学金申请记录
* @param file 导入文件
*/
export const importData = (file: File) => {
const formData = new FormData();
formData.append('file', file);
return request({
url: '/jcbt/scholarshipApplication/import',
method: 'post',
data: formData,
headers: {
'Content-Type': 'multipart/form-data'
}
});
};
/**
* 查询班级奖学金名额
* @param query 查询参数
*/
export const listScholarshipClassQuota = (query?: any): AxiosPromise<ScholarshipClassQuotaVO[]> => {
return request({
url: '/jcbt/scholarshipClassQuota/list',
method: 'get',
params: query
});
};
/**
* 查询奖学金附件信息
* @param applicationId 申请记录ID
*/
export const listScholarshipAttachment = (applicationId: string | number): AxiosPromise<ScholarshipAttachmentVO[]> => {
return request({
url: '/jcbt/scholarshipAttachment/list',
method: 'get',
params: { applicationId }
});
};
/**
* 审核奖学金申请
* @param id 申请记录ID
* @param auditStatus 审核状态
* @param auditRemark 审核备注
*/
export const auditScholarshipApplication = (id: string | number, auditStatus: string, auditRemark?: string) => {
return request({
url: `/jcbt/scholarshipApplication/${id}/audit`,
method: 'put',
params: {
auditStatus,
auditRemark
}
});
};
/**
* 提交奖学金申请
* @param id 申请记录ID
*/
export const submitScholarshipApplication = (id: string | number) => {
return request({
url: `/jcbt/scholarshipApplication/${id}/submit`,
method: 'put'
});
};
/**
* 撤销奖学金申请
* @param id 申请记录ID
*/
export const revokeScholarshipApplication = (id: string | number) => {
return request({
url: `/jcbt/scholarshipApplication/${id}/revoke`,
method: 'put'
});
};
+463
View File
@@ -0,0 +1,463 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
/**
* 贫困生认定申请查询对象类型
*/
export interface JcbtPovertyApplicationQuery extends PageQuery {
/** 申请编号 */
applicationNo?: string;
/** 学生姓名 */
studentName?: string;
/** 学号 */
studentNo?: string;
/** 班级名称 */
className?: string;
/** 认定类型ID */
recognitionTypeId?: number;
/** 认定类型名称 */
recognitionTypeName?: string;
/** 学年 */
academicYear?: string;
/** 申请状态 */
status?: string;
/** 家庭经济情况 */
familyEconomyStatus?: string;
/** 申请自助类型ID数组 */
assistanceTypeIds?: string;
/** 创建时间范围 */
createTime?: [string, string];
/** 申请时间范围 */
applicationTime?: [string, string];
}
/**
* 贫困生认定申请表单类型
*/
export interface JcbtPovertyApplicationForm {
/** 主键 */
id?: string | number;
/** 申请编号 */
applicationNo?: string;
/** 学年 */
academicYear?: string;
/** 学期 */
term?: number;
/** 学生ID */
studentId?: number;
/** 学号 */
studentNo?: string;
/** 学生姓名 */
studentName?: string;
/** 性别 */
gender?: string;
/** 学院ID */
collegeId?: number;
/** 学院名称 */
collegeName?: string;
/** 专业ID */
majorId?: number;
/** 专业名称 */
majorName?: string;
/** 班级ID */
classId?: number;
/** 班级名称 */
className?: string;
/** 班主任教师ID */
teacherId?: number;
/** 班主任教师姓名 */
teacherName?: string;
/** 认定群体 */
recognitionGroup?: string;
/** 认定类型ID */
recognitionTypeId?: number;
/** 认定类型编码 */
recognitionTypeCode?: string;
/** 认定类型名称 */
recognitionTypeName?: string;
/** 申请状态 */
status?: string;
/** 家庭经济情况 */
familyEconomyStatus?: string;
/** 家庭经济情况摘要 */
familyEconomySummary?: string;
/** 申请理由 */
applicationReason?: string;
/** 申请时间 */
applicationTime?: string;
/** 审核时间 */
auditTime?: string;
/** 审核人ID */
auditUserId?: number;
/** 审核人姓名 */
auditUserName?: string;
/** 审核意见 */
auditOpinion?: string;
/** 申请自助类型ID数组 */
assistanceTypeIds?: string;
/** 申请自助类型名称 */
assistanceTypeNames?: string;
/** 备注 */
remark?: string;
/** 申请表附件URL */
attachApplicationFormUrl?: string;
/** 申请表附件ID */
attachApplicationFormId?: number;
/** 调查表附件URL */
attachSurveyFormUrl?: string;
/** 调查表附件ID */
attachSurveyFormId?: number;
}
/**
* 贫困生认定申请视图对象类型
*/
export interface JcbtPovertyApplicationVo {
/** 主键 */
id: string | number;
/** 申请编号 */
applicationNo: string;
/** 学年 */
academicYear: string;
/** 学期 */
term: number;
/** 学生ID */
studentId: number;
/** 学号 */
studentNo: string;
/** 学生姓名 */
studentName: string;
/** 性别 */
gender: string;
/** 学院ID */
collegeId: number;
/** 学院名称 */
collegeName: string;
/** 专业ID */
majorId: number;
/** 专业名称 */
majorName: string;
/** 班级ID */
classId: number;
/** 班级名称 */
className: string;
/** 班主任教师ID */
teacherId: number;
/** 班主任教师姓名 */
teacherName: string;
/** 认定群体 */
recognitionGroup: string;
/** 认定类型ID */
recognitionTypeId: number;
/** 认定类型编码 */
recognitionTypeCode: string;
/** 认定类型名称 */
recognitionTypeName: string;
/** 申请状态 */
status: string;
/** 家庭经济情况 */
familyEconomyStatus: string;
/** 申请自助类型ID数组 */
assistanceTypeIds: string;
/** 申请自助类型名称 */
assistanceTypeNames: string;
/** 家庭经济情况摘要 */
familyEconomySummary: string;
/** 申请理由 */
applicationReason: string;
/** 申请时间 */
applicationTime: string;
/** 审核时间 */
auditTime: string;
/** 审核人ID */
auditUserId: number;
/** 审核人姓名 */
auditUserName: string;
/** 审核意见 */
auditOpinion: string;
/** 备注 */
remark: string;
/** 创建者 */
createBy: number;
/** 创建时间 */
createTime: string;
/** 更新者 */
updateBy: number;
/** 更新时间 */
updateTime: string;
/** 申请表附件URL */
attachApplicationFormUrl: string;
/** 申请表附件ID */
attachApplicationFormId: number;
/** 调查表附件URL */
attachSurveyFormUrl: string;
/** 调查表附件ID */
attachSurveyFormId: number;
}
/**
* 审核请求参数类型
*/
export interface AuditRequestForm {
/** 申请ID */
id: string | number;
/** 审核意见 */
auditOpinion: string;
}
// ========== 基础管理接口(6个) ==========
/**
* 查询贫困生认定申请列表
* @param query 查询参数
*/
export function listPovertyApplication(query: JcbtPovertyApplicationQuery): AxiosPromise<JcbtPovertyApplicationVo[]> {
return request({
url: '/jcbt/povertyApplication/list',
method: 'get',
params: query
});
}
/**
* 获取贫困生认定申请详细信息
* @param id 申请ID
*/
export function getPovertyApplication(id: string | number): AxiosPromise<JcbtPovertyApplicationVo> {
return request({
url: '/jcbt/povertyApplication/' + id,
method: 'get'
});
}
/**
* 新增贫困生认定申请
* @param data 申请表单数据
*/
export function addPovertyApplication(data: JcbtPovertyApplicationForm): AxiosPromise<number> {
return request({
url: '/jcbt/povertyApplication',
method: 'post',
data: data
});
}
/**
* 修改贫困生认定申请
* @param data 申请表单数据
*/
export function updatePovertyApplication(data: JcbtPovertyApplicationForm): AxiosPromise<void> {
return request({
url: '/jcbt/povertyApplication',
method: 'put',
data: data
});
}
/**
* 删除贫困生认定申请
* @param ids 申请ID数组
*/
export function delPovertyApplication(ids: (string | number)[]): AxiosPromise<void> {
return request({
url: '/jcbt/povertyApplication/' + ids.join(','),
method: 'delete'
});
}
/**
* 导出贫困生认定申请列表
* @param query 查询参数
*/
export function exportPovertyApplication(query: JcbtPovertyApplicationQuery): AxiosPromise<any> {
return request({
url: '/jcbt/povertyApplication/export',
method: 'post',
data: query,
responseType: 'blob'
});
}
/**
* 导出我的申请列表(班主任导出自己提交的申请)
* @param query 查询参数
*/
export function exportMyPovertyApplication(query: JcbtPovertyApplicationQuery): AxiosPromise<any> {
return request({
url: '/jcbt/povertyApplication/myExport',
method: 'post',
data: query,
responseType: 'blob'
});
}
// ========== 业务功能接口(4个) ==========
/**
* 查询我的申请列表(班主任查看自己提交的申请)
* @param query 查询参数
*/
export function listMyPovertyApplication(query: JcbtPovertyApplicationQuery): AxiosPromise<JcbtPovertyApplicationVo[]> {
return request({
url: '/jcbt/povertyApplication/myList',
method: 'get',
params: query
});
}
/**
* 查询待审核申请列表(审核人员使用)
* @param query 查询参数
*/
export function listPendingPovertyApplication(query: JcbtPovertyApplicationQuery): AxiosPromise<JcbtPovertyApplicationVo[]> {
return request({
url: '/jcbt/povertyApplication/pendingList',
method: 'get',
params: query
});
}
/**
* 提交申请
* @param id 申请ID
*/
export function submitPovertyApplication(id: string | number): AxiosPromise<void> {
return request({
url: '/jcbt/povertyApplication/submit/' + id,
method: 'put'
});
}
/**
* 撤销申请
* @param id 申请ID
*/
export function cancelPovertyApplication(id: string | number): AxiosPromise<void> {
return request({
url: '/jcbt/povertyApplication/cancel/' + id,
method: 'put'
});
}
// ========== 辅助功能接口(6个) ==========
/**
* 根据申请编号获取申请信息
* @param applicationNo 申请编号
*/
export function getPovertyApplicationByNo(applicationNo: string): AxiosPromise<JcbtPovertyApplicationVo> {
return request({
url: '/jcbt/povertyApplication/byApplicationNo/' + applicationNo,
method: 'get'
});
}
/**
* 保存草稿
* @param data 申请表单数据
*/
export function saveDraftPovertyApplication(data: JcbtPovertyApplicationForm): AxiosPromise<void> {
return request({
url: '/jcbt/povertyApplication/saveDraft',
method: 'post',
data: data
});
}
/**
* 审核通过
* @param data 审核请求参数
*/
export function approvePovertyApplication(data: AuditRequestForm): AxiosPromise<void> {
return request({
url: '/jcbt/povertyApplication/approve',
method: 'put',
data: data
});
}
/**
* 审核驳回
* @param data 审核请求参数
*/
export function rejectPovertyApplication(data: AuditRequestForm): AxiosPromise<void> {
return request({
url: '/jcbt/povertyApplication/reject',
method: 'put',
data: data
});
}
/**
* 生成申请编号
*/
export function generateApplicationNo(): AxiosPromise<string> {
return request({
url: '/jcbt/povertyApplication/generateApplicationNo',
method: 'get'
});
}
/**
* 检查学生申请是否重复
* @param params 检查参数
*/
export function checkDuplicate(params: {
studentId: number;
academicYear: string;
recognitionTypeId: number;
excludeId?: number;
}): AxiosPromise<boolean> {
return request({
url: '/jcbt/povertyApplication/checkDuplicate',
method: 'get',
params: params
});
}
// ========== 统计分析接口(2个) ==========
/**
* 获取申请统计信息
* @param teacherId 班主任ID(可选)
*/
export function getPovertyApplicationStatistics(teacherId?: number): AxiosPromise<any> {
return request({
url: '/jcbt/povertyApplication/statistics',
method: 'get',
params: teacherId ? { teacherId } : {}
});
}
/**
* 获取我的申请统计信息(班主任使用)
*/
export function getMyPovertyApplicationStatistics(): AxiosPromise<any> {
return request({
url: '/jcbt/povertyApplication/myStatistics',
method: 'get'
});
}
// ========== 班级和学生相关接口(2个) ==========
/**
* 获取当前用户班级信息
*/
export function getCurrentUserClasses(): AxiosPromise<any[]> {
return request({
url: '/jcbt/povertyApplication/user/classes',
method: 'get'
});
}
/**
* 获取班级学生列表
* @param classId 班级ID
*/
export function getClassStudents(classId: number | string): AxiosPromise<any[]> {
return request({
url: `/jcbt/povertyApplication/class/${classId}/students`,
method: 'get'
});
}
@@ -0,0 +1,235 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
// 审核查询参数
export interface PovertyApplicationReviewQuery {
pageNum?: number;
pageSize?: number;
applicationNo?: string;
studentName?: string;
studentNo?: string;
className?: string;
recognitionGroup?: string;
academicYear?: string;
status?: string;
auditOpinion?: string;
auditorName?: string;
createTime?: string;
auditTime?: string;
params?: any;
}
// 审核VO
export interface PovertyApplicationReviewVo {
id: number;
applicationNo: string;
academicYear: string;
term: number;
studentId: number;
studentNo: string;
studentName: string;
gender: string;
collegeId: number;
collegeName: string;
majorId: number;
majorName: string;
classId: number;
className: string;
teacherId: number;
teacherName: string;
recognitionGroup: string;
recognitionTypeId: number;
recognitionTypeCode: string;
recognitionTypeName: string;
assistanceTypeIds: string;
assistanceTypeNames: string;
familyEconomyStatus: string;
familyEconomySummary: string;
applicationReason: string;
attachApplicationFormUrl: string;
attachApplicationFormId: number;
attachSurveyFormUrl: string;
attachSurveyFormId: number;
status: string;
submitTime: string;
auditorId: number;
auditorName: string;
auditTime: string;
auditOpinion: string;
remark: string;
createBy: number;
createTime: string;
updateBy: number;
updateTime: string;
}
// 审核表单
export interface PovertyApplicationReviewForm {
id: number;
auditOpinion: string;
}
// 批量审核表单
export interface BatchReviewForm {
ids: number[];
auditOpinion: string;
}
// 审核统计响应
export interface ReviewStatistics {
totalCount: number;
statusCount: {
SUBMITTED?: number;
APPROVED?: number;
REJECTED?: number;
[key: string]: number | undefined;
};
}
// 审核人员工作量统计
export interface AuditorWorkloadStatistics {
auditorName: string;
totalCount: number;
approvedCount: number;
rejectedCount: number;
}
// 审核历史记录
export interface AuditHistoryRecord {
action: string;
operator: string;
operateTime: string;
status: string;
remark: string;
}
// 附件预览信息
export interface AttachmentPreview {
applicationFormUrl?: string;
surveyFormUrl?: string;
hasApplicationForm: boolean;
hasSurveyForm: boolean;
}
// 查询待审核申请列表
export function listPendingReview(query: PovertyApplicationReviewQuery): AxiosPromise<PovertyApplicationReviewVo[]> {
return request({
url: '/jcbt/povertyApplicationReview/pendingList',
method: 'get',
params: query
});
}
// 查询所有申请列表(支持多状态筛选)
export function listAllReview(query: PovertyApplicationReviewQuery): AxiosPromise<PovertyApplicationReviewVo[]> {
return request({
url: '/jcbt/povertyApplicationReview/list',
method: 'get',
params: query
});
}
// 查询申请详情
export function getReviewDetail(id: string | number): AxiosPromise<PovertyApplicationReviewVo> {
return request({
url: '/jcbt/povertyApplicationReview/' + id,
method: 'get'
});
}
// 审核通过
export function approveApplication(data: PovertyApplicationReviewForm): AxiosPromise<void> {
return request({
url: '/jcbt/povertyApplicationReview/approve',
method: 'put',
data: data
});
}
// 审核驳回
export function rejectApplication(data: PovertyApplicationReviewForm): AxiosPromise<void> {
return request({
url: '/jcbt/povertyApplicationReview/reject',
method: 'put',
data: data
});
}
// 打回修改
export function returnToDraft(data: PovertyApplicationReviewForm): AxiosPromise<void> {
return request({
url: '/jcbt/povertyApplicationReview/returnToDraft',
method: 'put',
data: data
});
}
// 批量审核通过
export function batchApproveApplications(data: BatchReviewForm): AxiosPromise<void> {
return request({
url: '/jcbt/povertyApplicationReview/batchApprove',
method: 'put',
data: data
});
}
// 批量审核驳回
export function batchRejectApplications(data: BatchReviewForm): AxiosPromise<void> {
return request({
url: '/jcbt/povertyApplicationReview/batchReject',
method: 'put',
data: data
});
}
// 获取审核统计信息
export function getReviewStatistics(academicYear?: string, collegeId?: number): AxiosPromise<ReviewStatistics> {
return request({
url: '/jcbt/povertyApplicationReview/statistics',
method: 'get',
params: { academicYear, collegeId }
});
}
// 获取审核人员工作量统计
export function getAuditorWorkloadStatistics(startTime?: string, endTime?: string): AxiosPromise<AuditorWorkloadStatistics[]> {
return request({
url: '/jcbt/povertyApplicationReview/workloadStatistics',
method: 'get',
params: { startTime, endTime }
});
}
// 获取申请附件预览信息
export function getAttachmentPreview(id: string | number): AxiosPromise<AttachmentPreview> {
return request({
url: '/jcbt/povertyApplicationReview/' + id + '/attachments',
method: 'get'
});
}
// 获取申请审核历史记录
export function getAuditHistory(id: string | number): AxiosPromise<AuditHistoryRecord[]> {
return request({
url: '/jcbt/povertyApplicationReview/' + id + '/history',
method: 'get'
});
}
// 导出申请数据
export function exportReviewData(query: PovertyApplicationReviewQuery): AxiosPromise<void> {
return request({
url: '/jcbt/povertyApplicationReview/export',
method: 'post',
data: query
});
}
// 导出待审核申请数据
export function exportPendingReviewData(query: PovertyApplicationReviewQuery): AxiosPromise<void> {
return request({
url: '/jcbt/povertyApplicationReview/exportPending',
method: 'post',
data: query
});
}
+30
View File
@@ -0,0 +1,30 @@
// 重新导出奖学金审核相关的API函数
export {
listScholarshipReview,
getScholarshipReview,
addScholarshipReview,
updateScholarshipReview,
delScholarshipReview,
getMyReviewTasks,
getPendingReviews,
getReviewHistory,
performReviewAction,
batchApprove as batchApproveScholarshipReview,
checkReviewRules,
getReviewStatistics,
exportScholarshipReview,
changeReviewStatus,
getAvailableReviewers,
// 为了与页面中的函数名保持一致,添加别名
performReviewAction as approveScholarshipReview
} from '../scholarshipReview';
// 重新导出类型定义
export type {
ScholarshipReviewQuery,
ScholarshipReviewVo,
ScholarshipReviewForm,
ReviewActionForm,
ReviewHistoryQuery,
ReviewStatistics
} from '../scholarshipReview';
+223
View File
@@ -0,0 +1,223 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
export interface ScholarshipApplicationVO {
/** 主键ID */
id?: string | number;
/** 批次ID */
batchId?: string | number;
/** 批次名称 */
batchName?: string;
/** 奖学金类型ID */
scholarshipTypeId?: string | number;
/** 奖学金类型名称 */
scholarshipTypeName?: string;
/** 申请编号 */
applicationNo?: string;
/** 学生学号 */
studentNo?: string;
/** 学生姓名 */
studentName?: string;
/** 学生ID */
studentId?: string | number;
/** 学院ID */
deptId?: string | number;
/** 学院名称 */
deptName?: string;
/** 专业ID */
majorId?: string | number;
/** 专业名称 */
majorName?: string;
/** 班级ID */
classId?: string | number;
/** 班级名称 */
className?: string;
/** 申请人类型 */
applicantType?: string;
/** 申请人ID */
applicantId?: string | number;
/** 申请人姓名 */
applicantName?: string;
/** 申请类型 */
applicationType?: string;
/** 申请原因 */
applicationReason?: string;
/** 申请说明 */
applicationDescription?: string;
/** 系统计算分数 */
calculatedScore?: number;
/** 最终评定分数 */
finalScore?: number;
/** 在院系的排名 */
rankingInDept?: number;
/** 在专业的排名 */
rankingInMajor?: number;
/** 状态 */
status?: string;
/** 提交时间 */
submitTime?: string;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
}
export interface ScholarshipApplicationForm {
/** 主键ID */
id?: string | number;
/** 批次ID */
batchId?: string | number;
/** 奖学金类型ID */
scholarshipTypeId?: string | number;
/** 学生ID列表(班主任勾选) */
studentIds?: number[];
/** 申请人类型 */
applicantType?: string;
/** 申请人ID */
applicantId?: string | number;
/** 申请人姓名 */
applicantName?: string;
/** 申请类型 */
applicationType?: string;
/** 申请原因 */
applicationReason?: string;
/** 申请说明 */
applicationDescription?: string;
}
export interface ScholarshipApplicationQuery extends PageQuery {
/** 批次ID */
batchId?: string | number;
/** 奖学金类型ID */
scholarshipTypeId?: string | number;
/** 学生学号 */
studentNo?: string;
/** 学生姓名 */
studentName?: string;
/** 申请人ID */
applicantId?: string | number;
/** 状态 */
status?: string;
}
// 查询奖学金申请记录列表
export function listScholarshipApplication(query: ScholarshipApplicationQuery): AxiosPromise<ScholarshipApplicationVO[]> {
return request({
url: '/jcbt/scholarshipApplication/list',
method: 'get',
params: query
});
}
// 查询奖学金申请记录详细
export function getScholarshipApplication(id: string | number): AxiosPromise<ScholarshipApplicationVO> {
return request({
url: '/jcbt/scholarshipApplication/' + id,
method: 'get'
});
}
// 新增奖学金申请记录
export function addScholarshipApplication(data: ScholarshipApplicationForm) {
return request({
url: '/jcbt/scholarshipApplication',
method: 'post',
data: data
});
}
// 修改奖学金申请记录
export function updateScholarshipApplication(data: ScholarshipApplicationForm) {
return request({
url: '/jcbt/scholarshipApplication',
method: 'put',
data: data
});
}
// 删除奖学金申请记录
export function delScholarshipApplication(id: string | number | Array<string | number>) {
return request({
url: '/jcbt/scholarshipApplication/' + id,
method: 'delete'
});
}
// 导出奖学金申请记录
export function exportScholarshipApplication(query: ScholarshipApplicationQuery) {
return request({
url: '/jcbt/scholarshipApplication/export',
method: 'post',
data: query
});
}
// ========== 班主任申请专用接口 ==========
// 获取班主任所带班级信息
export function getClassInfoByTeacher(teacherId: string | number): AxiosPromise<any> {
return request({
url: '/jcbt/scholarshipApplication/classInfo',
method: 'get',
params: { teacherId }
});
}
// 获取班级学生列表(用于勾选)
export function getClassStudents(classId: string | number): AxiosPromise<any[]> {
return request({
url: '/jcbt/scholarshipApplication/students',
method: 'get',
params: { classId }
});
}
// 根据批次获取可申请的奖学金类型
export function getScholarshipTypesByBatch(batchId: string | number): AxiosPromise<any[]> {
return request({
url: '/jcbt/scholarshipApplication/scholarshipTypes',
method: 'get',
params: { batchId }
});
}
// 根据批次和班级获取带名额信息的奖学金类型(班主任专用)
export function getScholarshipTypesWithQuota(batchId: string | number, classId: string | number): AxiosPromise<any[]> {
return request({
url: '/jcbt/scholarshipApplication/scholarshipTypesWithQuota',
method: 'get',
params: { batchId, classId }
});
}
// 确认选择班级(多班级时用户选择后调用)
export function confirmClassSelection(teacherId: string | number, classId: string | number): AxiosPromise<any> {
return request({
url: '/jcbt/scholarshipApplication/confirmClass',
method: 'post',
params: { teacherId, classId }
});
}
// 班主任批量申请提交
export function batchSubmitByTeacher(
batchId: string | number,
scholarshipTypeId: string | number,
classId: string | number,
studentApplications: any[]
) {
return request({
url: '/jcbt/scholarshipApplication/batch',
method: 'post',
params: {
batchId,
scholarshipTypeId,
classId
},
data: studentApplications
});
}
+226
View File
@@ -0,0 +1,226 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
export interface ScholarshipBatchVO {
/** 主键ID */
id?: string;
/** 批次编码 */
batchCode?: string;
/** 批次名称 */
batchName?: string;
/** 学年 */
academicYear?: string;
/** 学期 */
semester?: number;
/** 批次类型 */
batchType?: string;
/** 开始时间 */
startTime?: string;
/** 结束时间 */
endTime?: string;
/** 申请开始时间 */
applyStartTime?: string;
/** 申请结束时间 */
applyEndTime?: string;
/** 审核开始时间 */
reviewStartTime?: string;
/** 审核结束时间 */
reviewEndTime?: string;
/** 状态 */
status?: string;
/** 批次描述 */
description?: string;
/** 通知内容 */
noticeContent?: string;
/** 关联的奖学金类型ID列表 */
scholarshipTypeIds?: Array<string>;
/** 创建者 */
createBy?: number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: number;
/** 更新时间 */
updateTime?: string;
}
export interface ScholarshipBatchForm {
/** 主键ID */
id?: string;
/** 批次编码 */
batchCode?: string;
/** 批次名称 */
batchName?: string;
/** 学年 */
academicYear?: string;
/** 学期 */
semester?: number;
/** 批次类型 */
batchType?: string;
/** 开始时间 */
startTime?: string;
/** 结束时间 */
endTime?: string;
/** 申请开始时间 */
applyStartTime?: string;
/** 申请结束时间 */
applyEndTime?: string;
/** 审核开始时间 */
reviewStartTime?: string;
/** 审核结束时间 */
reviewEndTime?: string;
/** 状态 */
status?: string;
/** 批次描述 */
description?: string;
/** 通知内容 */
noticeContent?: string;
/** 关联的奖学金类型ID列表 */
scholarshipTypeIds?: Array<string>;
}
export interface ScholarshipBatchQuery extends PageQuery {
/** 批次编码 */
batchCode?: string;
/** 批次名称 */
batchName?: string;
/** 学年 */
academicYear?: string;
/** 学期 */
semester?: number;
/** 批次类型 */
batchType?: string;
/** 状态 */
status?: string;
/** 创建时间 */
createTime?: string;
}
// 查询奖学金评定批次列表
export function listScholarshipBatch(query: ScholarshipBatchQuery): AxiosPromise<ScholarshipBatchVO[]> {
return request({
url: '/jcbt/scholarshipBatch/list',
method: 'get',
params: query
});
}
// 查询奖学金评定批次详细
export function getScholarshipBatch(id: string): AxiosPromise<ScholarshipBatchVO> {
return request({
url: '/jcbt/scholarshipBatch/' + id,
method: 'get'
});
}
// 新增奖学金评定批次
export function addScholarshipBatch(data: ScholarshipBatchForm) {
return request({
url: '/jcbt/scholarshipBatch',
method: 'post',
data: data
});
}
// 修改奖学金评定批次
export function updateScholarshipBatch(data: ScholarshipBatchForm) {
return request({
url: '/jcbt/scholarshipBatch',
method: 'put',
data: data
});
}
// 删除奖学金评定批次
export function delScholarshipBatch(id: string | Array<string>) {
return request({
url: '/jcbt/scholarshipBatch/' + id,
method: 'delete'
});
}
// 导出奖学金评定批次
export function exportScholarshipBatch(query: ScholarshipBatchQuery) {
return request({
url: '/jcbt/scholarshipBatch/export',
method: 'post',
data: query
});
}
// 根据批次编码查询批次信息
export function getScholarshipBatchByCode(batchCode: string): AxiosPromise<ScholarshipBatchVO> {
return request({
url: '/jcbt/scholarshipBatch/getByCode/' + batchCode,
method: 'get'
});
}
// 根据学年和学期查询批次列表
export function getScholarshipBatchByAcademicYear(academicYear: string, semester?: number): AxiosPromise<ScholarshipBatchVO[]> {
return request({
url: '/jcbt/scholarshipBatch/getByAcademicYear',
method: 'get',
params: {
academicYear,
semester
}
});
}
// 查询启用状态的批次列表
export function getActiveBatches(): AxiosPromise<ScholarshipBatchVO[]> {
return request({
url: '/jcbt/scholarshipBatch/getActiveBatches',
method: 'get'
});
}
// 检查批次编码是否唯一
export function checkBatchCodeUnique(batchCode: string, id?: string): AxiosPromise<boolean> {
return request({
url: '/jcbt/scholarshipBatch/checkBatchCodeUnique',
method: 'get',
params: {
batchCode,
id
}
});
}
// 更改批次状态
export function changeScholarshipBatchStatus(id: string, status: string) {
return request({
url: '/jcbt/scholarshipBatch/changeStatus',
method: 'put',
params: {
id,
status
}
});
}
// 查询当前进行中的批次
export function getCurrentActiveBatches(): AxiosPromise<ScholarshipBatchVO[]> {
return request({
url: '/jcbt/scholarshipBatch/getCurrentActiveBatches',
method: 'get'
});
}
// 根据状态查询批次列表
export function getScholarshipBatchByStatus(status: string): AxiosPromise<ScholarshipBatchVO[]> {
return request({
url: '/jcbt/scholarshipBatch/getByStatus/' + status,
method: 'get'
});
}
// 检查批次时间是否有冲突
export function checkTimeConflict(data: ScholarshipBatchForm): AxiosPromise<boolean> {
return request({
url: '/jcbt/scholarshipBatch/checkTimeConflict',
method: 'post',
data: data
});
}
+217
View File
@@ -0,0 +1,217 @@
import request from '@/utils/request';
// 奖学金名额分配查询参数类型
export interface ScholarshipQuotaQuery extends PageQuery {
batchId?: number;
scholarshipTypeId?: number;
allocationLevel?: string;
targetDeptId?: number;
status?: string;
isLocked?: number;
}
// 奖学金名额分配对象类型
export interface ScholarshipQuotaVO {
id?: number;
batchId: number;
batchName?: string;
scholarshipTypeId: number;
scholarshipTypeName?: string;
allocationLevel: string;
targetDeptId: number;
targetDeptName?: string;
parentQuotaId?: number;
totalQuota: number;
usedQuota?: number;
availableQuota?: number;
reservedQuota?: number;
allocationRule?: string;
allocationBasis?: string;
allocationMethod?: string;
isAdjustable?: number;
isLocked?: number;
status?: string;
remark?: string;
createBy?: number;
createTime?: string;
updateBy?: number;
updateTime?: string;
children?: ScholarshipQuotaVO[];
}
// 奖学金名额分配表单类型
export interface ScholarshipQuotaForm {
id?: number;
batchId: number;
scholarshipTypeId: number;
allocationLevel: string;
targetDeptId: number;
parentQuotaId?: number;
totalQuota: number;
usedQuota?: number;
reservedQuota?: number;
allocationRule?: string;
allocationBasis?: string;
allocationMethod?: string;
isAdjustable?: number;
status?: string;
remark?: string;
}
// 名额使用统计类型
export interface QuotaStatistics {
totalQuota: number;
usedQuota: number;
availableQuota: number;
usageRate: number;
allocationCount: number;
}
// 批量分配名额类型
export interface BatchAllocateQuota {
allocationLevel: string;
targetDeptId: number;
totalQuota: number;
allocationBasis?: string;
}
// 查询奖学金名额分配列表
export const listScholarshipQuota = (query: ScholarshipQuotaQuery) => {
return request({
url: '/jcbt/scholarshipQuota/list',
method: 'get',
params: query
});
};
// 按批次查询名额分配
export const listScholarshipQuotaByBatch = (batchId: number) => {
return request({
url: `/jcbt/scholarshipQuota/listByBatch/${batchId}`,
method: 'get'
});
};
// 按批次和类型查询名额分配
export const listScholarshipQuotaByBatchAndType = (batchId: number, scholarshipTypeId: number) => {
return request({
url: '/jcbt/scholarshipQuota/listByBatchAndType',
method: 'get',
params: { batchId, scholarshipTypeId }
});
};
// 查询名额分配树形结构
export const getScholarshipQuotaTree = (batchId: number, scholarshipTypeId?: number) => {
return request({
url: '/jcbt/scholarshipQuota/tree',
method: 'get',
params: { batchId, scholarshipTypeId }
});
};
// 查询名额使用统计
export const getScholarshipQuotaStatistics = (batchId: number) => {
return request({
url: `/jcbt/scholarshipQuota/statistics/${batchId}`,
method: 'get'
});
};
// 查询奖学金名额分配详细
export const getScholarshipQuota = (id: number) => {
return request({
url: `/jcbt/scholarshipQuota/${id}`,
method: 'get'
});
};
// 新增奖学金名额分配
export const addScholarshipQuota = (data: ScholarshipQuotaForm) => {
return request({
url: '/jcbt/scholarshipQuota',
method: 'post',
data: data
});
};
// 修改奖学金名额分配
export const updateScholarshipQuota = (data: ScholarshipQuotaForm) => {
return request({
url: '/jcbt/scholarshipQuota',
method: 'put',
data: data
});
};
// 删除奖学金名额分配
export const delScholarshipQuota = (ids: string | number) => {
return request({
url: `/jcbt/scholarshipQuota/${ids}`,
method: 'delete'
});
};
// 导出奖学金名额分配
export const exportScholarshipQuota = (query: ScholarshipQuotaQuery) => {
return request({
url: '/jcbt/scholarshipQuota/export',
method: 'post',
data: query
});
};
// 批量分配名额
export const batchAllocateQuota = (batchId: number, scholarshipTypeId: number, data: BatchAllocateQuota[]) => {
return request({
url: '/jcbt/scholarshipQuota/batchAllocate',
method: 'post',
params: { batchId, scholarshipTypeId },
data: data
});
};
// 调整名额分配
export const adjustQuota = (fromQuotaId: number, toQuotaId: number, adjustAmount: number, reason: string) => {
return request({
url: '/jcbt/scholarshipQuota/adjust',
method: 'post',
params: { fromQuotaId, toQuotaId, adjustAmount, reason }
});
};
// 锁定/解锁名额分配
export const lockScholarshipQuota = (id: number, isLocked: number) => {
return request({
url: `/jcbt/scholarshipQuota/lock/${id}`,
method: 'put',
params: { isLocked }
});
};
// 自动分配名额
export const autoAllocateQuota = (batchId: number, scholarshipTypeId: number, allocationRule: string) => {
return request({
url: '/jcbt/scholarshipQuota/autoAllocate',
method: 'post',
params: { batchId, scholarshipTypeId, allocationRule }
});
};
// 复制名额分配
export const copyScholarshipQuota = (sourceBatchId: number, targetBatchId: number) => {
return request({
url: '/jcbt/scholarshipQuota/copy',
method: 'post',
params: { sourceBatchId, targetBatchId }
});
};
// 更新名额使用
export const updateQuotaUsage = (id: number, usedQuota: number) => {
return request({
url: `/jcbt/scholarshipQuota/updateUsage/${id}`,
method: 'put',
params: { usedQuota }
});
};
+222
View File
@@ -0,0 +1,222 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
// 审核记录查询参数
export interface ScholarshipReviewQuery {
pageNum?: number;
pageSize?: number;
orderNo?: string;
applicantName?: string;
scholarshipType?: string;
auditLevel?: string;
auditStatus?: string;
reviewerId?: number;
reviewerName?: string;
reviewTimeBegin?: string;
reviewTimeEnd?: string;
batchId?: number;
}
// 审核记录VO
export interface ScholarshipReviewVo {
id: number;
reviewId: string;
orderNo: string;
applicationId: number;
applicantId: number;
applicantName: string;
scholarshipType: string;
auditLevel: string;
auditStatus: string;
reviewerId: number;
reviewerName: string;
reviewTime: string;
reviewComment: string;
attachments: string;
nextReviewerId: number;
nextReviewerName: string;
isActive: number;
createBy: number;
createTime: string;
updateBy: number;
updateTime: string;
}
// 审核表单
export interface ScholarshipReviewForm {
id?: number;
reviewId?: string;
orderNo?: string;
applicationId?: number;
applicantId?: number;
applicantName?: string;
scholarshipType?: string;
auditLevel?: string;
auditStatus?: string;
reviewerId?: number;
reviewerName?: string;
reviewTime?: string;
reviewComment?: string;
attachments?: string;
nextReviewerId?: number;
nextReviewerName?: string;
isActive?: number;
}
// 审核操作表单
export interface ReviewActionForm {
reviewId: string;
action: 'approve' | 'reject' | 'return';
reviewComment?: string;
nextReviewerId?: number;
}
// 审核历史查询参数
export interface ReviewHistoryQuery {
pageNum?: number;
pageSize?: number;
orderNo?: string;
applicantName?: string;
reviewResult?: string;
reviewTimeBegin?: string;
reviewTimeEnd?: string;
batchId?: number;
}
// 审核统计响应
export interface ReviewStatistics {
pendingReview: number;
approved: number;
rejected: number;
returned: number;
}
// 查询审核记录列表
export function listScholarshipReview(query: ScholarshipReviewQuery): AxiosPromise<ScholarshipReviewVo[]> {
return request({
url: '/jcbt/review/list',
method: 'get',
params: query
});
}
// 查询审核记录详细
export function getScholarshipReview(id: string | number): AxiosPromise<ScholarshipReviewVo> {
return request({
url: '/jcbt/review/' + id,
method: 'get'
});
}
// 新增审核记录
export function addScholarshipReview(data: ScholarshipReviewForm): AxiosPromise<void> {
return request({
url: '/jcbt/review',
method: 'post',
data: data
});
}
// 修改审核记录
export function updateScholarshipReview(data: ScholarshipReviewForm): AxiosPromise<void> {
return request({
url: '/jcbt/review',
method: 'put',
data: data
});
}
// 删除审核记录
export function delScholarshipReview(id: string | number | Array<string | number>): AxiosPromise<void> {
return request({
url: '/jcbt/review/' + id,
method: 'delete'
});
}
// 我的审核任务
export function getMyReviewTasks(query: ScholarshipReviewQuery): AxiosPromise<ScholarshipReviewVo[]> {
return request({
url: '/jcbt/review/myTasks',
method: 'get',
params: query
});
}
// 待我审核的列表
export function getPendingReviews(query: ScholarshipReviewQuery): AxiosPromise<ScholarshipReviewVo[]> {
return request({
url: '/jcbt/review/pending',
method: 'get',
params: query
});
}
// 审核历史
export function getReviewHistory(query: ReviewHistoryQuery): AxiosPromise<ScholarshipReviewVo[]> {
return request({
url: '/jcbt/review/history',
method: 'get',
params: query
});
}
// 执行审核操作
export function performReviewAction(data: ReviewActionForm): AxiosPromise<void> {
return request({
url: '/jcbt/review/action',
method: 'post',
data: data
});
}
// 批量审核通过
export function batchApprove(reviewIds: string[], reviewComment?: string): AxiosPromise<void> {
return request({
url: '/jcbt/review/batchApprove',
method: 'post',
data: { reviewIds, reviewComment }
});
}
// 审核规则检查
export function checkReviewRules(applicationId: number): AxiosPromise<any> {
return request({
url: '/jcbt/review/checkRules/' + applicationId,
method: 'get'
});
}
// 获取审核统计数据
export function getReviewStatistics(): AxiosPromise<ReviewStatistics> {
return request({
url: '/jcbt/review/statistics',
method: 'get'
});
}
// 导出审核记录
export function exportScholarshipReview(query: ScholarshipReviewQuery): AxiosPromise<void> {
return request({
url: '/jcbt/review/export',
method: 'post',
data: query
});
}
// 启用/禁用审核记录
export function changeReviewStatus(id: number, status: number): AxiosPromise<void> {
return request({
url: '/jcbt/review/changeStatus',
method: 'put',
data: { id, status }
});
}
// 获取可分配的审核人员
export function getAvailableReviewers(auditLevel: string): AxiosPromise<any[]> {
return request({
url: '/jcbt/review/reviewers/' + auditLevel,
method: 'get'
});
}
+331
View File
@@ -0,0 +1,331 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
export interface ScholarshipTypeVO {
/** 主键ID */
id?: string | number;
/** 奖学金类型编码 */
typeCode?: string;
/** 奖学金名称 */
typeName?: string;
/** 奖学金类别 */
typeCategory?: string;
/** 奖学金等级 */
levelType?: string;
/** 奖励金额 */
awardAmount?: number;
/** 奖学金描述 */
description?: string;
/** 申请指南 */
applicationGuide?: string;
/** 兼得类型 */
compatibilityType?: string;
/** 排序号 */
sortOrder?: number;
/** 状态 */
status?: number;
/** 是否系统内置 */
isSystem?: number;
/** 创建者 */
createBy?: number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: number;
/** 更新时间 */
updateTime?: string;
}
export interface ScholarshipTypeForm {
/** 主键ID */
id?: string | number;
/** 奖学金类型编码 */
typeCode?: string;
/** 奖学金名称 */
typeName?: string;
/** 奖学金类别 */
typeCategory?: string;
/** 奖学金等级 */
levelType?: string;
/** 奖励金额 */
awardAmount?: number;
/** 奖学金描述 */
description?: string;
/** 申请指南 */
applicationGuide?: string;
/** 兼得类型 */
compatibilityType?: string;
/** 排序号 */
sortOrder?: number;
/** 状态 */
status?: number;
/** 是否系统内置 */
isSystem?: number;
/** 自定义互斥类型ID列表 */
exclusiveTypeIds?: Array<string | number>;
}
export interface ScholarshipTypeQuery {
/** 当前页码 */
pageNum?: number;
/** 每页显示记录数 */
pageSize?: number;
/** 奖学金类型编码 */
typeCode?: string;
/** 奖学金名称 */
typeName?: string;
/** 奖学金类别 */
typeCategory?: string;
/** 奖学金等级 */
levelType?: string;
/** 兼得类型 */
compatibilityType?: string;
/** 状态 */
status?: number;
/** 是否系统内置 */
isSystem?: number;
/** 创建时间范围 */
params?: {
beginCreateTime?: string;
endCreateTime?: string;
};
}
export interface ScholarshipTypeOption {
/** 选项值 */
value?: string | number;
/** 选项标签 */
label?: string;
/** 扩展数据 */
[key: string]: any;
}
/**
* 查询奖学金类型列表
* @param query 查询参数
*/
export const listScholarshipType = (query?: ScholarshipTypeQuery): AxiosPromise<ScholarshipTypeVO[]> => {
return request({
url: '/jcbt/scholarshipType/list',
method: 'get',
params: query
});
};
/**
* 查询奖学金类型详细信息
* @param id 奖学金类型ID
*/
export const getScholarshipType = (id: string | number): AxiosPromise<ScholarshipTypeVO> => {
return request({
url: `/jcbt/scholarshipType/${id}`,
method: 'get'
});
};
/**
* 新增奖学金类型
* @param data 奖学金类型数据
*/
export const addScholarshipType = (data: ScholarshipTypeForm) => {
return request({
url: '/jcbt/scholarshipType',
method: 'post',
data: data
});
};
/**
* 修改奖学金类型
* @param data 奖学金类型数据
*/
export const updateScholarshipType = (data: ScholarshipTypeForm) => {
return request({
url: '/jcbt/scholarshipType',
method: 'put',
data: data
});
};
/**
* 删除奖学金类型
* @param id 奖学金类型ID
*/
export const delScholarshipType = (id: string | number | Array<string | number>) => {
return request({
url: `/jcbt/scholarshipType/${id}`,
method: 'delete'
});
};
/**
* 导出奖学金类型数据
* @param query 查询参数
*/
export const exportScholarshipType = (query?: ScholarshipTypeQuery) => {
return request({
url: '/jcbt/scholarshipType/export',
method: 'post',
data: query
});
};
/**
* 根据名称查询奖学金类型
* @param typeName 奖学金名称
*/
export const getScholarshipTypeByName = (typeName: string): AxiosPromise<ScholarshipTypeVO> => {
return request({
url: `/jcbt/scholarshipType/getByName/${typeName}`,
method: 'get'
});
};
/**
* 根据类别查询奖学金类型
* @param typeCategory 奖学金类别
*/
export const getScholarshipTypeByCategory = (typeCategory: string): AxiosPromise<ScholarshipTypeVO[]> => {
return request({
url: `/jcbt/scholarshipType/getByCategory/${typeCategory}`,
method: 'get'
});
};
/**
* 查询启用状态的奖学金类型
*/
export const getActiveScholarshipTypes = (): AxiosPromise<ScholarshipTypeVO[]> => {
return request({
url: '/jcbt/scholarshipType/getActiveTypes',
method: 'get'
});
};
/**
* 根据兼得类型查询奖学金类型
* @param compatibilityType 兼得类型
*/
export const getScholarshipTypeByCompatibilityType = (compatibilityType: string): AxiosPromise<ScholarshipTypeVO[]> => {
return request({
url: `/jcbt/scholarshipType/getByCompatibilityType/${compatibilityType}`,
method: 'get'
});
};
/**
* 检查奖学金名称是否唯一
* @param typeName 奖学金名称
* @param id 排除的ID
*/
export const checkScholarshipTypeNameUnique = (typeName: string, id?: string | number) => {
return request({
url: '/jcbt/scholarshipType/checkTypeNameUnique',
method: 'get',
params: { typeName, id }
});
};
/**
* 批量更新排序号
* @param data 排序数据
*/
export const batchUpdateSort = (data: Array<{ id: string | number; sortOrder: number }>) => {
return request({
url: '/jcbt/scholarshipType/batchUpdateSort',
method: 'put',
data: data
});
};
/**
* 启用/停用奖学金类型
* @param id 奖学金类型ID
* @param status 状态
*/
export const changeScholarshipTypeStatus = (id: string | number, status: number) => {
return request({
url: '/jcbt/scholarshipType/changeStatus',
method: 'put',
params: { id, status }
});
};
/**
* 获取奖学金类型选项列表
*/
export const getScholarshipTypeOptions = (): AxiosPromise<ScholarshipTypeOption[]> => {
return request({
url: '/jcbt/scholarshipType/options',
method: 'get'
});
};
// 兼得关系配置相关接口
export interface CompatibilityConfig {
/** 所有可配置的奖学金类型 */
allTypes?: ScholarshipTypeVO[];
/** 互斥的奖学金类型ID列表 */
exclusiveTypeIds?: number[];
/** 兼容的奖学金类型ID列表 */
compatibleTypeIds?: number[];
/** 互斥的奖学金类型详细信息(包含名称) */
exclusiveTypes?: ScholarshipTypeVO[];
/** 兼容的奖学金类型详细信息(包含名称) */
compatibleTypes?: ScholarshipTypeVO[];
}
/**
* 获取奖学金类型的兼得关系配置
* @param id 奖学金类型ID
*/
export const getCompatibilityConfig = (id: string | number): AxiosPromise<CompatibilityConfig> => {
return request({
url: `/jcbt/scholarshipType/${id}/compatibility`,
method: 'get'
});
};
/**
* 保存奖学金类型的兼得关系配置
* @param id 奖学金类型ID
* @param config 配置数据
*/
export const saveCompatibilityConfig = (
id: string | number,
config: {
exclusiveTypeIds?: number[];
compatibleTypeIds?: number[];
}
) => {
return request({
url: `/jcbt/scholarshipType/${id}/compatibility`,
method: 'post',
data: config
});
};
/**
* 检查两个奖学金类型是否兼容
* @param typeId1 奖学金类型1
* @param typeId2 奖学金类型2
*/
export const checkCompatibility = (typeId1: string | number, typeId2: string | number): AxiosPromise<boolean> => {
return request({
url: '/jcbt/scholarshipType/checkCompatibility',
method: 'get',
params: { typeId1, typeId2 }
});
};
/**
* 获取可与指定奖学金兼得的奖学金类型列表
* @param id 奖学金类型ID
*/
export const getCompatibleTypes = (id: string | number): AxiosPromise<ScholarshipTypeVO[]> => {
return request({
url: `/jcbt/scholarshipType/${id}/compatibleTypes`,
method: 'get'
});
};
+503
View File
@@ -0,0 +1,503 @@
/**
* 奖学金申请模块 - 类型定义
*/
/**
* 奖学金申请记录 VO
*/
export interface ScholarshipApplicationVO {
/**
* 主键ID
*/
id: string | number;
/**
* 租户编号
*/
tenantId: string;
/**
* 学年
*/
academicYear: string;
/**
* 学期
*/
semester: string;
/**
* 奖学金类型
*/
scholarshipType: string;
/**
* 奖学金等级
*/
scholarshipLevel: string;
/**
* 奖学金金额
*/
amount?: number;
/**
* 学生学号
*/
studentId: string;
/**
* 学生姓名
*/
studentName: string;
/**
* 学生性别
*/
studentGender?: string;
/**
* 学生联系方式
*/
studentPhone?: string;
/**
* 学生邮箱
*/
studentEmail?: string;
/**
* 学院名称
*/
collegeName?: string;
/**
* 专业名称
*/
majorName?: string;
/**
* 班级名称
*/
className?: string;
/**
* 年级
*/
grade?: string;
/**
* 学业成绩排名
*/
academicRanking?: number;
/**
* 综合测评排名
*/
comprehensiveRanking?: number;
/**
* 申请理由
*/
applicationReason?: string;
/**
* 申请状态:draft-草稿,submitted-已提交,approved-已通过,rejected-已驳回
*/
applicationStatus: string;
/**
* 申请时间
*/
applicationTime?: string;
/**
* 审核人ID
*/
auditUserId?: string | number;
/**
* 审核人姓名
*/
auditUserName?: string;
/**
* 审核时间
*/
auditTime?: string;
/**
* 审核备注
*/
auditRemark?: string;
/**
* 审核状态:pending-待审核,approved-已通过,rejected-已驳回
*/
auditStatus?: string;
/**
* 是否获奖:0-否,1-是
*/
isAwarded?: string;
/**
* 获奖时间
*/
awardTime?: string;
/**
* 备注
*/
remark?: string;
/**
* 创建人
*/
createBy?: string | number;
/**
* 创建时间
*/
createTime?: string;
/**
* 更新人
*/
updateBy?: string | number;
/**
* 更新时间
*/
updateTime?: string;
}
/**
* 奖学金申请记录表单类型
*/
export interface ScholarshipApplicationForm {
/**
* 主键ID
*/
id?: string | number;
/**
* 学年
*/
academicYear: string;
/**
* 学期
*/
semester: string;
/**
* 奖学金类型
*/
scholarshipType: string;
/**
* 奖学金等级
*/
scholarshipLevel: string;
/**
* 奖学金金额
*/
amount?: number;
/**
* 学生学号
*/
studentId: string;
/**
* 学生姓名
*/
studentName: string;
/**
* 学生性别
*/
studentGender?: string;
/**
* 学生联系方式
*/
studentPhone?: string;
/**
* 学生邮箱
*/
studentEmail?: string;
/**
* 学院名称
*/
collegeName?: string;
/**
* 专业名称
*/
majorName?: string;
/**
* 班级名称
*/
className?: string;
/**
* 年级
*/
grade?: string;
/**
* 学业成绩排名
*/
academicRanking?: number;
/**
* 综合测评排名
*/
comprehensiveRanking?: number;
/**
* 申请理由
*/
applicationReason?: string;
/**
* 申请状态
*/
applicationStatus?: string;
/**
* 审核备注
*/
auditRemark?: string;
/**
* 是否获奖
*/
isAwarded?: string;
/**
* 备注
*/
remark?: string;
}
/**
* 奖学金申请记录查询参数
*/
export interface ScholarshipApplicationQuery extends PageQuery {
/**
* 学年
*/
academicYear?: string;
/**
* 学期
*/
semester?: string;
/**
* 奖学金类型
*/
scholarshipType?: string;
/**
* 奖学金等级
*/
scholarshipLevel?: string;
/**
* 学生学号
*/
studentId?: string;
/**
* 学生姓名
*/
studentName?: string;
/**
* 学院名称
*/
collegeName?: string;
/**
* 专业名称
*/
majorName?: string;
/**
* 班级名称
*/
className?: string;
/**
* 申请状态
*/
applicationStatus?: string;
/**
* 审核状态
*/
auditStatus?: string;
/**
* 是否获奖
*/
isAwarded?: string;
/**
* 申请时间范围
*/
applicationTimeRange?: string[];
/**
* 审核时间范围
*/
auditTimeRange?: string[];
/**
* 获奖时间范围
*/
awardTimeRange?: string[];
}
/**
* 班级奖学金名额 VO
*/
export interface ScholarshipClassQuotaVO {
/**
* 主键ID
*/
id: string | number;
/**
* 学年
*/
academicYear: string;
/**
* 学期
*/
semester: string;
/**
* 奖学金类型
*/
scholarshipType: string;
/**
* 奖学金等级
*/
scholarshipLevel: string;
/**
* 学院名称
*/
collegeName: string;
/**
* 专业名称
*/
majorName: string;
/**
* 班级名称
*/
className: string;
/**
* 分配名额
*/
quotaCount: number;
/**
* 已申请名额
*/
appliedCount?: number;
/**
* 已获奖名额
*/
awardedCount?: number;
/**
* 创建时间
*/
createTime?: string;
}
/**
* 奖学金附件 VO
*/
export interface ScholarshipAttachmentVO {
/**
* 主键ID
*/
id: string | number;
/**
* 申请记录ID
*/
applicationId: string | number;
/**
* 附件类型
*/
attachmentType: string;
/**
* 文件名称
*/
fileName: string;
/**
* 文件路径
*/
filePath: string;
/**
* 文件大小
*/
fileSize?: number;
/**
* 上传时间
*/
uploadTime?: string;
/**
* 备注
*/
remark?: string;
}
/**
* 分页查询基础接口
*/
export interface PageQuery {
/**
* 当前页码
*/
pageNum?: number;
/**
* 每页显示记录数
*/
pageSize?: number;
/**
* 排序字段
*/
orderByColumn?: string;
/**
* 排序方向
*/
isAsc?: string;
}
+124
View File
@@ -0,0 +1,124 @@
import request from '@/utils/request';
// 查询勤工俭学申请信息列表
export function listWorkStudyApplication(query) {
return request({
url: '/jcbt/workStudyApplication/list',
method: 'get',
params: query
});
}
// 查询勤工俭学申请信息详细
export function getWorkStudyApplication(id) {
return request({
url: '/jcbt/workStudyApplication/' + id,
method: 'get'
});
}
// 新增勤工俭学申请信息
export function addWorkStudyApplication(data) {
return request({
url: '/jcbt/workStudyApplication',
method: 'post',
data: data
});
}
// 修改勤工俭学申请信息
export function updateWorkStudyApplication(data) {
return request({
url: '/jcbt/workStudyApplication',
method: 'put',
data: data
});
}
// 删除勤工俭学申请信息
export function delWorkStudyApplication(id) {
return request({
url: '/jcbt/workStudyApplication/' + id,
method: 'delete'
});
}
// 检查学生是否已申请该岗位
export function checkDuplicateApplication(studentId, positionId) {
return request({
url: '/jcbt/workStudyApplication/hasApplied',
method: 'get',
params: {
studentId: studentId,
positionId: positionId
}
});
}
// 提交申请
export function submitApplication(id) {
return request({
url: '/jcbt/workStudyApplication/submit/' + id,
method: 'post'
});
}
// 撤销申请
export function cancelApplication(id) {
return request({
url: '/jcbt/workStudyApplication/cancel/' + id,
method: 'post'
});
}
// 学院审核
export function collegeReview(data) {
return request({
url: '/jcbt/workStudyApplication/collegeReview',
method: 'post',
data: data
});
}
// 学生处审核
export function finalReview(data) {
return request({
url: '/jcbt/workStudyApplication/finalReview',
method: 'post',
data: data
});
}
// 获取当前用户学生信息
export function getCurrentStudentInfo() {
return request({
url: '/jcbt/workStudyApplication/currentStudentInfo',
method: 'get'
});
}
// 导出勤工俭学申请信息
export function exportWorkStudyApplication(query) {
return request({
url: '/jcbt/workStudyApplication/export',
method: 'get',
params: query,
responseType: 'blob'
});
}
// 获取岗位申请统计信息
export function getApplicationStatistics(positionId) {
return request({
url: '/jcbt/workStudyApplication/statistics/' + positionId,
method: 'get'
});
}
// 获取学生申请状态列表
export function getStudentApplicationStatusList() {
return request({
url: '/jcbt/workStudyApplication/student/applicationStatus',
method: 'get'
});
}
+459
View File
@@ -0,0 +1,459 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
/**
* 勤工俭学申请查询对象类型
*/
export interface WorkStudyApplicationQuery extends PageQuery {
/** 学生姓名 */
studentName?: string;
/** 学号 */
studentNumber?: string;
/** 身份证号 */
idCard?: string;
/** 联系电话 */
contactPhone?: string;
/** 学院名称 */
collegeName?: string;
/** 专业名称 */
majorName?: string;
/** 班级名称 */
className?: string;
/** 年级 */
grade?: string;
/** 岗位ID */
positionId?: number;
/** 岗位名称 */
positionName?: string;
/** 岗位类型 */
positionType?: string;
/** 申请状态 */
status?: string;
/** 学院审核状态 */
collegeReviewStatus?: string;
/** 学生处审核状态 */
finalReviewStatus?: string;
/** 家庭经济情况 */
familyFinancialStatus?: string;
/** 申请时间范围 */
params?: {
beginCreateTime?: string;
endCreateTime?: string;
};
}
/**
* 勤工俭学申请对象类型
*/
export interface WorkStudyApplicationForm {
/** 主键ID */
id?: number;
/** 学生ID */
studentId?: number;
/** 学生姓名 */
studentName: string;
/** 学生所在学院ID */
collegeId?: number;
/** 学号 */
studentNumber: string;
/** 身份证号 */
idCard: string;
/** 联系电话 */
contactPhone: string;
/** 学院名称 */
collegeName: string;
/** 专业名称 */
majorName: string;
/** 班级名称 */
className: string;
/** 年级 */
grade?: string;
/** 岗位ID */
positionId?: number;
/** 岗位名称 */
positionName: string;
/** 岗位类型 */
positionType: string;
/** 计划工作时长 */
plannedWorkHours?: number;
/** 家庭经济情况 */
familyFinancialStatus: string;
/** 申请理由 */
applicationReason: string;
/** 个人能力及经验 */
personalAbility: string;
/** 时间安排 */
timeArrangement: string;
/** 备注 */
remark?: string;
}
/**
* 勤工俭学申请展示对象类型
*/
export interface WorkStudyApplicationVO {
/** 主键ID */
id: number;
/** 学生姓名 */
studentName: string;
/** 学号 */
studentNumber: string;
/** 身份证号 */
idCard: string;
/** 联系电话 */
contactPhone: string;
/** 学院名称 */
collegeName: string;
/** 专业名称 */
majorName: string;
/** 班级名称 */
className: string;
/** 年级 */
grade: string;
/** 岗位ID */
positionId?: number;
/** 岗位名称 */
positionName: string;
/** 岗位类型 */
positionType: string;
/** 工作地点 */
workLocation: string;
/** 计划工作时长 */
plannedWorkHours: number;
/** 家庭经济情况 */
familyFinancialStatus: string;
/** 申请理由 */
applicationReason: string;
/** 个人能力及经验 */
personalAbility: string;
/** 时间安排 */
timeArrangement: string;
/** 备注 */
remark?: string;
/** 申请状态 */
status: string;
/** 学院审核状态 */
collegeReviewStatus?: string;
/** 学院审核时间 */
collegeReviewTime?: string;
/** 学院审核人姓名 */
collegeReviewerName?: string;
/** 学院审核意见 */
collegeReviewComment?: string;
/** 学生处审核状态 */
finalReviewStatus?: string;
/** 学生处审核时间 */
finalReviewTime?: string;
/** 学生处审核人姓名 */
finalReviewerName?: string;
/** 学生处审核意见 */
finalReviewComment?: string;
/** 创建时间 */
createTime: string;
/** 更新时间 */
updateTime: string;
}
/**
* 审核请求对象类型
*/
export interface ReviewRequestForm {
/** 申请ID */
applicationId: number;
/** 审核结果 */
reviewStatus: string;
/** 审核意见 */
reviewComment: string;
}
/**
* 申请选项对象类型
*/
export interface ApplicationOptions {
/** 年级选项 */
gradeOptions: Array<{ label: string; value: string }>;
/** 岗位类型选项 */
positionTypeOptions: Array<{ label: string; value: string }>;
/** 家庭经济情况选项 */
familyFinancialStatusOptions: Array<{ label: string; value: string }>;
/** 申请状态选项 */
applicationStatusOptions: Array<{ label: string; value: string }>;
/** 审核状态选项 */
reviewStatusOptions: Array<{ label: string; value: string }>;
}
// ========== 基础管理接口(6个) ==========
/**
* 查询学生可申请的岗位列表(替代原申请列表)
* @param query 查询参数
*/
export function listWorkStudyApplication(query: any): AxiosPromise<any[]> {
return request({
url: '/jcbt/workStudyApplication/list',
method: 'get',
params: query
});
}
/**
* 查询勤工俭学申请详细
* @param id 申请ID
*/
export function getWorkStudyApplication(id: string | number): AxiosPromise<WorkStudyApplicationVO> {
return request({
url: '/jcbt/workStudyApplication/detail/' + id,
method: 'get'
});
}
/**
* 新增勤工俭学申请
* @param data 申请数据
*/
export function addWorkStudyApplication(data: WorkStudyApplicationForm): AxiosPromise<void> {
return request({
url: '/jcbt/workStudyApplication',
method: 'post',
data: data
});
}
/**
* 修改勤工俭学申请
* @param data 申请数据
*/
export function updateWorkStudyApplication(data: WorkStudyApplicationForm): AxiosPromise<void> {
return request({
url: '/jcbt/workStudyApplication',
method: 'put',
data: data
});
}
/**
* 删除勤工俭学申请
* @param ids 申请ID数组
*/
export function delWorkStudyApplication(ids: string | number | Array<string | number>): AxiosPromise<void> {
return request({
url: '/jcbt/workStudyApplication/' + ids,
method: 'delete'
});
}
/**
* 导出勤工俭学申请数据
* @param query 查询参数
*/
export function exportWorkStudyApplication(query: WorkStudyApplicationQuery): AxiosPromise<any> {
return request({
url: '/jcbt/workStudyApplication/export',
method: 'post',
data: query,
responseType: 'blob'
});
}
// ========== 业务功能接口(4个) ==========
/**
* 查询我的申请列表
* @param query 查询参数
*/
export function listMyWorkStudyApplication(query: WorkStudyApplicationQuery): AxiosPromise<WorkStudyApplicationVO[]> {
return request({
url: '/jcbt/workStudyApplication/myList',
method: 'get',
params: query
});
}
/**
* 查询待学院审核列表
* @param query 查询参数
*/
export function listPendingCollegeReview(query: WorkStudyApplicationQuery): AxiosPromise<WorkStudyApplicationVO[]> {
return request({
url: '/jcbt/workStudyApplication/pendingCollegeReview',
method: 'get',
params: query
});
}
/**
* 查询待学生处审核列表
* @param query 查询参数
*/
export function listPendingFinalReview(query: WorkStudyApplicationQuery): AxiosPromise<WorkStudyApplicationVO[]> {
return request({
url: '/jcbt/workStudyApplication/pendingFinalReview',
method: 'get',
params: query
});
}
/**
* 获取岗位申请统计信息
* @param positionId 岗位ID
*/
export function getApplicationStatistics(positionId: string | number): AxiosPromise<{ [key: string]: any }> {
return request({
url: '/jcbt/workStudyApplication/statistics/' + positionId,
method: 'get'
});
}
// ========== 申请流程接口(6个) ==========
/**
* 提交申请
* @param id 申请ID
*/
export function submitApplication(id: string | number): AxiosPromise<void> {
return request({
url: '/jcbt/workStudyApplication/submit/' + id,
method: 'post'
});
}
/**
* 撤销申请
* @param id 申请ID
*/
export function cancelApplication(id: string | number): AxiosPromise<void> {
return request({
url: '/jcbt/workStudyApplication/cancel/' + id,
method: 'post'
});
}
/**
* 学院审核
* @param data 审核数据
*/
export function collegeReview(data: ReviewRequestForm): AxiosPromise<void> {
return request({
url: '/jcbt/workStudyApplication/collegeReview',
method: 'post',
data: data
});
}
/**
* 学生处审核
* @param data 审核数据
*/
export function finalReview(data: ReviewRequestForm): AxiosPromise<void> {
return request({
url: '/jcbt/workStudyApplication/finalReview',
method: 'post',
data: data
});
}
/**
* 批量学院审核
* @param ids 申请ID数组
* @param reviewResult 审核结果
* @param reviewComment 审核意见
*/
export function batchCollegeReview(ids: Array<string | number>, reviewResult: string, reviewComment?: string): AxiosPromise<void> {
return request({
url: '/jcbt/workStudyApplication/batchCollegeReview',
method: 'post',
params: {
ids: ids,
reviewResult: reviewResult,
reviewComment: reviewComment
}
});
}
/**
* 批量学生处审核
* @param ids 申请ID数组
* @param reviewResult 审核结果
* @param reviewComment 审核意见
*/
export function batchFinalReview(ids: Array<string | number>, reviewResult: string, reviewComment?: string): AxiosPromise<void> {
return request({
url: '/jcbt/workStudyApplication/batchFinalReview',
method: 'post',
params: {
ids: ids,
reviewResult: reviewResult,
reviewComment: reviewComment
}
});
}
// ========== 辅助功能接口(4个) ==========
/**
* 获取申请选项数据
*/
export function getApplicationOptions(): AxiosPromise<ApplicationOptions> {
return request({
url: '/jcbt/workStudyApplication/options',
method: 'get'
});
}
/**
* 检查重复申请
* @param studentNumber 学号
* @param positionId 岗位ID
*/
export function checkDuplicateApplication(studentNumber: string, positionId: number): AxiosPromise<{ isDuplicate: boolean }> {
return request({
url: '/jcbt/workStudyApplication/checkDuplicate',
method: 'get',
params: {
studentNumber: studentNumber,
positionId: positionId
}
});
}
/**
* 获取申请详情(用于审核展示)
* @param id 申请ID
*/
export function getApplicationForReview(id: string | number): AxiosPromise<WorkStudyApplicationVO> {
return request({
url: '/jcbt/workStudyApplication/review/' + id,
method: 'get'
});
}
/**
* 导入申请数据模板下载
*/
export function downloadTemplate(): AxiosPromise<any> {
return request({
url: '/jcbt/workStudyApplication/importTemplate',
method: 'get',
responseType: 'blob'
});
}
/**
* 获取当前用户学生信息
*/
export function getCurrentStudentInfo(): AxiosPromise<any> {
return request({
url: '/jcbt/workStudyApplication/currentStudentInfo',
method: 'get'
});
}
/**
* 获取学生已申请岗位状态列表
*/
export function getStudentApplicationStatusList(): AxiosPromise<any[]> {
return request({
url: '/jcbt/workStudyApplication/student/applicationStatus',
method: 'get'
});
}
@@ -0,0 +1,193 @@
import request from '@/utils/request';
import { TableDataInfo, R } from '@/api/types';
// 勤工俭学申请VO类型
export interface WorkStudyApplicationVO {
id?: string | number;
positionId?: string | number;
positionName?: string;
studentId?: string | number;
studentName?: string;
studentNo?: string;
collegeId?: string | number;
collegeName?: string;
majorName?: string;
grade?: string;
className?: string;
contactPhone?: string;
email?: string;
workExperience?: string;
applicationReason?: string;
status?: string;
statusName?: string;
applicationDate?: string;
// 学院审核相关字段
collegeReviewStatus?: string;
collegeReviewTime?: string;
collegeReviewerId?: string | number;
collegeReviewerName?: string;
collegeReviewComment?: string;
// 最终审核相关字段
finalReviewStatus?: string;
finalReviewTime?: string;
finalReviewerId?: string | number;
finalReviewerName?: string;
finalReviewComment?: string;
// 基础字段
createBy?: string | number;
createTime?: string;
updateBy?: string | number;
updateTime?: string;
// 兼容旧字段名(保持向后兼容)
collegeReviewBy?: string | number;
collegeReviewByName?: string;
finalReviewBy?: string | number;
finalReviewByName?: string;
}
// 查询参数
export interface WorkStudyApplicationQuery {
pageNum?: number;
pageSize?: number;
positionName?: string;
studentName?: string;
studentNo?: string;
collegeName?: string;
status?: string;
applicationDate?: string;
params?: any;
}
// 审核表单
export interface ReviewForm {
applicationId: string | number;
reviewResult: string;
reviewComment?: string;
}
// 统计数据
export interface StatisticsVO {
pendingCount?: number;
approvedCount?: number;
rejectedCount?: number;
finalApprovedCount?: number;
totalCount?: number;
}
// 选项数据
export interface OptionsVO {
statusOptions?: Array<{ label: string; value: string }>;
reviewStatusOptions?: Array<{ label: string; value: string }>;
}
// 查询本学院待审核申请列表
export function listPendingApplications(query: WorkStudyApplicationQuery) {
return request<TableDataInfo<WorkStudyApplicationVO>>({
url: '/jcbt/workStudyApplicationCollegeReview/pendingList',
method: 'get',
params: query,
headers: {
isEncrypt: 'true'
}
});
}
// 查询本学院所有申请列表
export function listCollegeApplications(query: WorkStudyApplicationQuery) {
return request<TableDataInfo<WorkStudyApplicationVO>>({
url: '/jcbt/workStudyApplicationCollegeReview/list',
method: 'get',
params: query,
headers: {
isEncrypt: 'true'
}
});
}
// 获取本学院申请详情
export function getCollegeApplication(id: string | number) {
return request<R<WorkStudyApplicationVO>>({
url: '/jcbt/workStudyApplicationCollegeReview/' + id,
method: 'get',
headers: {
isEncrypt: 'true'
}
});
}
// 学院审核
export function reviewApplication(data: ReviewForm) {
return request<R<any>>({
url: '/jcbt/workStudyApplicationCollegeReview/review',
method: 'post',
data: data,
headers: {
isEncrypt: 'true'
}
});
}
// 批量学院审核
export function batchReviewApplications(ids: Array<string | number>, reviewResult: string, reviewComment?: string) {
return request<R<any>>({
url: '/jcbt/workStudyApplicationCollegeReview/batchReview',
method: 'post',
params: {
reviewResult,
reviewComment
},
data: ids,
headers: {
isEncrypt: 'true'
}
});
}
// 获取本学院申请统计信息
export function getCollegeStatistics() {
return request<R<StatisticsVO>>({
url: '/jcbt/workStudyApplicationCollegeReview/statistics',
method: 'get',
headers: {
isEncrypt: 'true'
}
});
}
// 获取本学院申请统计信息(调试版本)
export function getCollegeStatisticsDebug() {
return request<R<any>>({
url: '/jcbt/workStudyApplicationCollegeReview/debug/statistics',
method: 'get',
headers: {
isEncrypt: 'true'
}
});
}
// 通过列表API获取统计信息(作为备用方案)
export function getCollegeStatisticsByList() {
return request<TableDataInfo<WorkStudyApplicationVO>>({
url: '/jcbt/workStudyApplicationCollegeReview/list',
method: 'get',
params: {
pageNum: 1,
pageSize: 1,
status: 'SUBMITTED'
},
headers: {
isEncrypt: 'true'
}
});
}
// 获取可用选项
export function getApplicationOptions() {
return request<R<OptionsVO>>({
url: '/jcbt/workStudyApplicationCollegeReview/options',
method: 'get',
headers: {
isEncrypt: 'true'
}
});
}
@@ -0,0 +1,195 @@
import request from '@/utils/request';
import { TableDataInfo, R } from '@/api/types';
// 勤工俭学申请VO类型(学工处审核)
export interface WorkStudyApplicationVO {
id?: string | number;
positionId?: string | number;
positionName?: string;
studentId?: string | number;
studentName?: string;
studentNo?: string;
collegeId?: string | number;
collegeName?: string;
majorName?: string;
grade?: string;
className?: string;
contactPhone?: string;
email?: string;
workExperience?: string;
applicationReason?: string;
status?: string;
statusName?: string;
applicationDate?: string;
// 学院审核相关字段
collegeReviewStatus?: string;
collegeReviewTime?: string;
collegeReviewerId?: string | number;
collegeReviewerName?: string;
collegeReviewComment?: string;
// 学工处审核相关字段
finalReviewStatus?: string;
finalReviewTime?: string;
finalReviewerId?: string | number;
finalReviewerName?: string;
finalReviewComment?: string;
// 基础字段
createBy?: string | number;
createTime?: string;
updateBy?: string | number;
updateTime?: string;
// 兼容旧字段名(保持向后兼容)
collegeReviewBy?: string | number;
collegeReviewByName?: string;
finalReviewBy?: string | number;
finalReviewByName?: string;
}
// 查询参数
export interface WorkStudyApplicationQuery {
pageNum?: number;
pageSize?: number;
positionName?: string;
studentName?: string;
studentNo?: string;
collegeName?: string;
status?: string;
applicationDate?: string;
params?: any;
}
// 审核表单
export interface ReviewForm {
applicationId: string | number;
reviewResult: string;
reviewComment?: string;
}
// 统计数据
export interface StatisticsVO {
pendingCount?: number; // 待学工处审核数量
approvedCount?: number; // 学工处审核通过数量
rejectedCount?: number; // 学工处审核拒绝数量
monthlyPendingCount?: number; // 本月待审核数量
totalProcessedCount?: number; // 总处理数量
}
// 按学院分组统计数据
export interface CollegeStatisticsVO {
collegeStatistics?: Record<string, number>; // 各学院待审核数量
totalColleges?: number; // 总学院数
}
// 选项数据
export interface OptionsVO {
statusOptions?: Array<{ label: string; value: string }>;
reviewStatusOptions?: Array<{ label: string; value: string }>;
}
// 查询待学工处审核申请列表
export function listPendingApplications(query: WorkStudyApplicationQuery) {
return request<TableDataInfo<WorkStudyApplicationVO>>({
url: '/jcbt/workStudyApplicationStudentAffairsReview/pendingList',
method: 'get',
params: query,
headers: {
isEncrypt: 'true'
}
});
}
// 查询学工处审核历史列表
export function listStudentAffairsApplications(query: WorkStudyApplicationQuery) {
return request<TableDataInfo<WorkStudyApplicationVO>>({
url: '/jcbt/workStudyApplicationStudentAffairsReview/list',
method: 'get',
params: query,
headers: {
isEncrypt: 'true'
}
});
}
// 获取申请详情
export function getStudentAffairsApplication(id: string | number) {
return request<R<WorkStudyApplicationVO>>({
url: '/jcbt/workStudyApplicationStudentAffairsReview/' + id,
method: 'get',
headers: {
isEncrypt: 'true'
}
});
}
// 学工处审核
export function reviewApplication(data: ReviewForm) {
return request<R<any>>({
url: '/jcbt/workStudyApplicationStudentAffairsReview/review',
method: 'put',
data: data,
headers: {
isEncrypt: 'true'
}
});
}
// 批量学工处审核
export function batchReviewApplications(ids: Array<string | number>, reviewResult: string, reviewComment?: string) {
return request<R<any>>({
url: '/jcbt/workStudyApplicationStudentAffairsReview/batchReview',
method: 'put',
params: {
ids,
reviewResult,
reviewComment
},
headers: {
isEncrypt: 'true'
}
});
}
// 获取学工处审核统计信息
export function getStudentAffairsStatistics() {
return request<R<StatisticsVO>>({
url: '/jcbt/workStudyApplicationStudentAffairsReview/statistics',
method: 'get',
headers: {
isEncrypt: 'true'
}
});
}
// 获取按学院分组的统计信息
export function getStatisticsByCollege() {
return request<R<CollegeStatisticsVO>>({
url: '/jcbt/workStudyApplicationStudentAffairsReview/statisticsByCollege',
method: 'get',
headers: {
isEncrypt: 'true'
}
});
}
// 导出学工处审核申请列表
export function exportApplications(query: WorkStudyApplicationQuery) {
return request({
url: '/jcbt/workStudyApplicationStudentAffairsReview/export',
method: 'post',
data: query,
headers: {
isEncrypt: 'true'
}
});
}
// 获取可用选项
export function getApplicationOptions() {
return request<R<OptionsVO>>({
url: '/jcbt/workStudyApplicationStudentAffairsReview/options',
method: 'get',
headers: {
isEncrypt: 'true'
}
});
}
+316
View File
@@ -0,0 +1,316 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
/**
* 勤工俭学岗位查询对象类型
*/
export interface WorkStudyPositionQuery extends PageQuery {
/** 岗位名称 */
positionName?: string;
/** 发布范围 */
positionScope?: string;
/** 联系老师 */
contactTeacher?: string;
/** 学院ID */
collegeId?: number | string;
/** 岗位状态 */
status?: string;
/** 创建时间范围 */
createTime?: [string, string];
/** 有效期范围 */
validPeriod?: [string, string];
}
/**
* 勤工俭学岗位表单类型
*/
export interface WorkStudyPositionForm {
/** 主键 */
id?: string | number;
/** 岗位名称 */
positionName?: string;
/** 发布范围 */
positionScope?: string;
/** 需求人数 */
requiredCount?: number;
/** 工作时间 */
workTime?: string;
/** 开始日期 */
startDate?: string;
/** 结束日期 */
endDate?: string;
/** 岗位要求 */
positionRequirements?: string;
/** 薪资情况 */
salaryInfo?: string;
/** 联系老师 */
contactTeacher?: string;
/** 联系电话 */
contactPhone?: string;
/** 学院ID */
collegeId?: number | string;
/** 学院名称 */
collegeName?: string;
/** 岗位状态 */
status?: string;
/** 当前申请通过人数 */
currentCount?: number;
}
/**
* 勤工俭学岗位视图对象类型
*/
export interface WorkStudyPositionVO {
/** 主键 */
id?: string | number;
/** 岗位名称 */
positionName?: string;
/** 发布范围 */
positionScope?: string;
/** 发布范围名称 */
positionScopeName?: string;
/** 需求人数 */
requiredCount?: number;
/** 工作时间 */
workTime?: string;
/** 开始日期 */
startDate?: string;
/** 结束日期 */
endDate?: string;
/** 岗位要求 */
positionRequirements?: string;
/** 薪资情况 */
salaryInfo?: string;
/** 联系老师 */
contactTeacher?: string;
/** 联系电话 */
contactPhone?: string;
/** 学院ID */
collegeId?: number | string;
/** 学院名称 */
collegeName?: string;
/** 岗位状态 */
status?: string;
/** 岗位状态名称 */
statusName?: string;
/** 当前申请通过人数 */
currentCount?: number;
/** 创建者 */
createBy?: number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: number;
/** 更新时间 */
updateTime?: string;
}
/**
* 岗位统计数据类型
*/
export interface PositionStatisticsVO {
/** 岗位总数 */
totalCount?: number;
/** 按状态统计 */
statusCount?: {
DRAFT?: number;
PUBLISHED?: number;
RECRUITING?: number;
FULL?: number;
EXPIRED?: number;
SUSPENDED?: number;
CANCELLED?: number;
};
/** 按发布范围统计 */
scopeCount?: {
COLLEGE?: number;
UNIVERSITY?: number;
};
}
/**
* 查询勤工俭学岗位列表
*/
export function listWorkStudyPosition(query: WorkStudyPositionQuery): AxiosPromise<TableDataInfo<WorkStudyPositionVO>> {
return request({
url: '/jcbt/workStudyPosition/list',
method: 'get',
params: query
});
}
/**
* 查询勤工俭学岗位信息详细
* @param id 岗位ID
*/
export function getWorkStudyPosition(id: string | number): AxiosPromise<WorkStudyPositionVO> {
return request({
url: '/jcbt/workStudyPosition/' + id,
method: 'get'
});
}
/**
* 获取岗位详情及当前用户申请状态
* @param id 岗位ID
*/
export function getWorkStudyPositionWithApplicationStatus(id: string | number): AxiosPromise<{
position: WorkStudyPositionVO;
applicationStatus: {
applicationStatusText: string;
applicationStatus: string;
hasApplication: number;
canCancel: number;
canEdit: number;
applicationId?: number;
lastApplicationTime?: string;
};
}> {
return request({
url: '/jcbt/workStudyPosition/' + id + '/withApplicationStatus',
method: 'get'
});
}
/**
* 新增勤工俭学岗位
*/
export function addWorkStudyPosition(data: WorkStudyPositionForm) {
return request({
url: '/jcbt/workStudyPosition',
method: 'post',
data: data
});
}
/**
* 修改勤工俭学岗位
*/
export function updateWorkStudyPosition(data: WorkStudyPositionForm) {
return request({
url: '/jcbt/workStudyPosition',
method: 'put',
data: data
});
}
/**
* 删除勤工俭学岗位
*/
export function delWorkStudyPosition(id: string | number | Array<string | number>) {
return request({
url: '/jcbt/workStudyPosition/' + id,
method: 'delete'
});
}
/**
* 获取岗位统计数据
*/
export function getPositionStatistics(): AxiosPromise<PositionStatisticsVO> {
return request({
url: '/jcbt/workStudyPosition/statistics',
method: 'get'
});
}
/**
* 发布岗位
*/
export function publishPosition(id: string | number) {
return request({
url: `/jcbt/workStudyPosition/publish/${id}`,
method: 'put'
});
}
/**
* 暂停岗位招录
*/
export function suspendPosition(id: string | number) {
return request({
url: `/jcbt/workStudyPosition/suspend/${id}`,
method: 'put'
});
}
/**
* 恢复岗位招录
*/
export function resumePosition(id: string | number) {
return request({
url: `/jcbt/workStudyPosition/resume/${id}`,
method: 'put'
});
}
/**
* 开启岗位招录
*/
export function startRecruiting(id: string | number) {
return request({
url: `/jcbt/workStudyPosition/startRecruiting/${id}`,
method: 'put'
});
}
/**
* 取消岗位
*/
export function cancelPosition(id: string | number) {
return request({
url: `/jcbt/workStudyPosition/cancel/${id}`,
method: 'put'
});
}
/**
* 导出勤工俭学岗位
*/
export function exportWorkStudyPosition(query: WorkStudyPositionQuery) {
return request({
url: '/jcbt/workStudyPosition/export',
method: 'post',
data: query
});
}
/**
* 获取可用的学院选项
*/
export function getCollegeOptions(): AxiosPromise<any[]> {
return request({
url: '/system/dict/data/type/college_list',
method: 'get'
});
}
/**
* 查询可见岗位列表(学院可见的岗位:本学院岗位 + 全校范围岗位)
* @param query 查询参数
* @param excludeApplied 是否排除已申请岗位
*/
export function listVisiblePositions(
query: WorkStudyPositionQuery,
excludeApplied: boolean = false
): AxiosPromise<TableDataInfo<WorkStudyPositionVO>> {
return request({
url: '/jcbt/workStudyPosition/visibleList',
method: 'get',
params: {
...query,
excludeApplied
}
});
}
/**
* 学生查看可申请的岗位列表(公开接口,无需权限)
*/
export function listAvailablePositionsForStudent(query: WorkStudyPositionQuery): AxiosPromise<WorkStudyPositionVO[]> {
return request({
url: '/jcbt/workStudyPosition/student/available',
method: 'get',
params: query
});
}
+33
View File
@@ -0,0 +1,33 @@
import request from '@/utils/request';
// 应聘申请表单类型
export interface ApplicationForm {
jobId: string | number;
applicantName: string;
gender: string;
contactPhone: string;
contactEmail: string;
age: number;
education: string;
educationBackground: string;
experience: string;
selfDescription: string;
remark?: string;
}
// 提交应聘申请
export function submitJobApplication(data: ApplicationForm) {
return request({
url: '/rs/application/submit',
method: 'post',
data: data
});
}
// 增加岗位浏览次数
export function incrementJobViewCount(jobId: string | number) {
return request({
url: `/rs/job/view/${jobId}`,
method: 'post'
});
}
+227
View File
@@ -0,0 +1,227 @@
import request from '@/utils/request';
// 职位查询参数类型
export interface JobQuery {
pageNum: number;
pageSize: number;
title?: string;
department?: string;
isActive?: string;
params?: Record<string, any>;
}
// 职位数据类型
export interface JobVO {
jobId: number | string;
title: string;
department: string;
salaryRange: string;
location: string;
description: string;
requirements: string;
isActive: string;
applicantCount: number;
viewCount: number;
publishTime: string; // 发布时间
createTime: string;
updateTime: string;
createBy: string;
updateBy: string;
remark: string;
}
// 职位表单类型
export interface JobForm {
jobId?: number | string;
title: string;
department: string;
salaryRange: string;
location: string;
description: string;
requirements: string;
isActive: string;
publishTime?: string; // 发布时间
remark?: string;
}
// 申请记录类型
export interface ApplicationVO {
applicationId: number | string;
jobId: number | string;
jobTitle: string;
applicantId: number | string;
applicantName: string;
gender: string; // 性别
age: number | string; // 年龄
status: string;
applyTime: string;
resumePath: string; // 简历路径
selfDescription: string; // 自我介绍
attachmentPath?: string; // 附件路径
attachmentName?: string; // 附件名称
hrNotes: string; // HR备注
contactPhone: string; // 联系电话
contactEmail: string; // 联系邮箱
education: string; // 学历
educationBackground: string; // 教育背景
experience: string; // 工作经验
remark: string;
createBy: string;
createTime: string;
updateBy: string;
updateTime: string;
}
// 查询职位列表
export function listJob(query: JobQuery) {
return request({
url: '/rs/job/list',
method: 'get',
params: query
});
}
// 查询公开职位列表(用于招聘门户)
export function listPublicJob(query: JobQuery) {
return request({
url: '/rs/job/public/list',
method: 'get',
params: query
});
}
// 查询职位详细
export function getJob(jobId: string | number) {
return request({
url: `/rs/job/${jobId}`,
method: 'get'
});
}
// 查询公开职位详细(用于招聘门户)
export function getPublicJob(jobId: string | number) {
return request({
url: `/rs/job/public/${jobId}`,
method: 'get'
});
}
// 新增职位
export function addJob(data: JobForm) {
return request({
url: '/rs/job',
method: 'post',
data: data
});
}
// 修改职位
export function updateJob(data: JobForm) {
return request({
url: '/rs/job',
method: 'put',
data: data
});
}
// 删除职位
export function delJob(jobId: string | number | Array<string | number>) {
return request({
url: `/rs/job/${typeof jobId === 'object' ? jobId.join(',') : jobId}`,
method: 'delete'
});
}
// 切换职位状态
export function toggleJobStatus(jobId: string | number) {
return request({
url: `/rs/job/toggle/${jobId}`,
method: 'put'
});
}
// 导出职位
export function exportJob(query: JobQuery) {
return request({
url: '/rs/job/export',
method: 'get',
params: query,
responseType: 'blob'
});
}
// 查询职位申请记录列表
export function listApplications(jobId: string | number, query: any) {
return request({
url: `/rs/application/list/${jobId}`,
method: 'get',
params: query
});
}
// 查询所有申请记录列表
export function listAllApplications(query: any) {
return request({
url: '/rs/application/list',
method: 'get',
params: query
});
}
// 更新申请状态
export function updateApplicationStatus(applicationId: string | number, status: string) {
return request({
url: `/rs/application/status/${applicationId}/${status}`,
method: 'put'
});
}
// 更新应聘者信息(包含状态和HR备注)
export function updateApplicationInfo(applicationId: string | number, data: { status: string; hrNotes?: string }) {
return request({
url: `/rs/application/update/${applicationId}`,
method: 'put',
data: data
});
}
// 获取申请详情
export function getApplication(applicationId: string | number) {
return request({
url: `/rs/application/${applicationId}`,
method: 'get'
});
}
// 导出申请记录
export function exportApplication(query: any) {
return request({
url: '/rs/application/export',
method: 'get',
params: query,
responseType: 'blob'
});
}
// 导出简历文件
export function exportResumePdf(applicationId: string | number) {
return request({
url: `/rs/application/exportPdf/${applicationId}`,
method: 'get',
responseType: 'blob'
});
}
// 上传附件
export function uploadAttachment(applicationId: string | number, file: File) {
const formData = new FormData();
formData.append('file', file);
return request({
url: `/rs/application/attachment/${applicationId}`,
method: 'post',
data: formData,
headers: {
'Content-Type': 'multipart/form-data'
}
});
}
+522
View File
@@ -0,0 +1,522 @@
import request from '@/utils/request';
// 出国申请查询参数类型
export interface OverseasApplicationQuery {
pageNum: number;
pageSize: number;
applicantName?: string;
department?: string;
purpose?: string;
destination?: string;
status?: string;
approvalLevel?: string;
currentApprover?: string;
applicantId?: number;
budgetMin?: number;
budgetMax?: number;
applyTimeBegin?: string;
applyTimeEnd?: string;
startDateBegin?: string;
startDateEnd?: string;
params?: Record<string, any>;
}
// 出国申请数据类型
export interface OverseasApplicationVO {
applicationId: number | string;
applicantId: number;
applicantName: string;
department: string;
contactPhone: string;
purpose: string;
purposeDetail: string;
destination: string;
destinationCity: string;
startDate: string;
endDate: string;
duration: number;
budget: number;
invitation: string;
itinerary: string;
accommodationPlan: string;
transportationPlan: string;
status: string;
currentApprover: string;
approvalLevel: string;
applyTime: string;
approvalTime: string;
adminRemark: string;
applicantRemark: string;
createTime: string;
updateTime: string;
createBy: string;
updateBy: string;
// 显示字段
statusText: string;
purposeText: string;
approvalLevelText: string;
}
// 出国申请表单类型
export interface OverseasApplicationForm {
applicationId?: number | string;
applicantId?: number;
applicantName?: string;
department?: string; // 自动匹配,前端不需要输入
contactPhone?: string; // 联系电话
purpose: string;
purposeDetail: string;
destination: string;
destinationCity?: string; // 目的地城市
startDate: string;
endDate: string;
duration?: number; // 自动计算
budget: number;
invitation?: string;
itinerary: string;
accommodationPlan?: string;
transportationPlan?: string;
applicantRemark?: string;
}
// 审批请求类型
export interface ApprovalRequest {
applicationId: number | string;
approvalStatus: string;
approvalOpinion?: string;
}
// 出国记录查询参数类型
export interface OverseasRecordQuery {
pageNum: number;
pageSize: number;
applicantName?: string;
department?: string;
purpose?: string;
destination?: string;
completionStatus?: string;
applicantId?: number;
applicationId?: number;
actualStartDateBegin?: string;
actualStartDateEnd?: string;
actualEndDateBegin?: string;
actualEndDateEnd?: string;
params?: Record<string, any>;
}
// 出国记录数据类型
export interface OverseasRecordVO {
recordId: number | string;
applicationId: number;
applicantId: number;
applicantName: string;
department: string;
contactPhone: string;
purpose: string;
purposeDetail: string;
destination: string;
destinationCity: string;
actualStartDate: string;
actualEndDate: string;
actualDuration: number;
actualBudget: number;
invitation: string;
itinerary: string;
accommodationPlan: string;
transportationPlan: string;
completionStatus: string;
achievement: string;
reportContent: string;
certificatePath: string;
createTime: string;
updateTime: string;
createBy: string;
updateBy: string;
// 显示字段
purposeText: string;
completionStatusText: string;
}
// 出国记录表单类型
export interface OverseasRecordForm {
recordId?: number | string;
applicationId: number;
applicantId?: number;
applicantName?: string;
department?: string;
position?: string;
contactPhone?: string;
contactEmail?: string;
purpose?: string;
purposeDetail?: string;
destination?: string;
destinationCity?: string;
actualStartDate: string;
actualEndDate: string;
actualDuration?: number;
actualBudget: number;
completionStatus: string;
achievement?: string;
reportContent?: string;
certificatePath?: string;
}
// 完成状态更新请求类型
export interface CompletionRequest {
recordId: number | string;
completionStatus: string;
achievement?: string;
reportContent?: string;
}
// 出国审批记录查询参数类型
export interface OverseasApprovalQuery {
pageNum: number;
pageSize: number;
applicationId?: number;
approverId?: number;
approverName?: string;
approvalLevel?: string;
approvalStatus?: string;
approvalTimeBegin?: string;
approvalTimeEnd?: string;
applicantName?: string;
department?: string;
destination?: string;
params?: Record<string, any>;
}
// 出国审批记录数据类型
export interface OverseasApprovalVO {
approvalId: number | string;
applicationId: number;
approverId: number;
approverName: string;
approvalLevel: string;
approvalStatus: string;
approvalOpinion: string;
approvalTime: string;
createTime: string;
updateTime: string;
createBy: string;
updateBy: string;
// ==================== 申请信息相关字段 ====================
applicantId: number;
applicantName: string;
department: string;
purpose: string;
destination: string;
startDate: string;
endDate: string;
duration: number;
// 显示字段
approvalLevelText: string;
approvalStatusText: string;
purposeText: string;
}
// ==================== 出国申请相关API ====================
// 查询出国申请列表
export function listOverseasApplication(query: OverseasApplicationQuery) {
return request({
url: '/rs/overseas/application/list',
method: 'get',
params: query
});
}
// 查询我的出国申请列表
export function listMyOverseasApplication(query: OverseasApplicationQuery) {
return request({
url: '/rs/overseas/application/my/list',
method: 'get',
params: query
});
}
// 查询待审批的申请列表
export function listPendingOverseasApplication(query: OverseasApplicationQuery) {
return request({
url: '/rs/overseas/application/pending/list',
method: 'get',
params: query
});
}
// 根据状态查询申请列表
export function listOverseasApplicationByStatus(status: string) {
return request({
url: `/rs/overseas/application/status/${status}`,
method: 'get'
});
}
// 查询出国申请详细
export function getOverseasApplication(applicationId: string | number) {
return request({
url: `/rs/overseas/application/${applicationId}`,
method: 'get'
});
}
// 新增出国申请
export function addOverseasApplication(data: OverseasApplicationForm) {
return request({
url: '/rs/overseas/application',
method: 'post',
data: data
});
}
// 修改出国申请
export function updateOverseasApplication(data: OverseasApplicationForm) {
return request({
url: '/rs/overseas/application',
method: 'put',
data: data
});
}
// 提交出国申请
export function submitOverseasApplication(applicationId: string | number) {
return request({
url: `/rs/overseas/application/submit/${applicationId}`,
method: 'put'
});
}
// 重新提交被拒绝的出国申请
export function resubmitOverseasApplication(applicationId: string | number, data: OverseasApplicationForm) {
return request({
url: `/rs/overseas/application/resubmit/${applicationId}`,
method: 'put',
data: data
});
}
// 取消出国申请
export function cancelOverseasApplication(applicationId: string | number, reason?: string) {
return request({
url: `/rs/overseas/application/cancel/${applicationId}`,
method: 'put',
params: { reason }
});
}
// 审批出国申请
export function approveOverseasApplication(data: ApprovalRequest) {
return request({
url: '/rs/overseas/application/approve',
method: 'post',
data: data
});
}
// 删除出国申请
export function delOverseasApplication(applicationId: string | number | Array<string | number>) {
return request({
url: `/rs/overseas/application/${typeof applicationId === 'object' ? applicationId.join(',') : applicationId}`,
method: 'delete'
});
}
// 导出出国申请
export function exportOverseasApplication(query: OverseasApplicationQuery) {
return request({
url: '/rs/overseas/application/export',
method: 'post',
data: query
});
}
// ==================== 出国记录相关API ====================
// 查询出国记录列表
export function listOverseasRecord(query: OverseasRecordQuery) {
return request({
url: '/rs/overseas/record/list',
method: 'get',
params: query
});
}
// 查询我的出国记录列表
export function listMyOverseasRecord(query: OverseasRecordQuery) {
return request({
url: '/rs/overseas/record/my/list',
method: 'get',
params: query
});
}
// 根据申请ID查询出国记录
export function getOverseasRecordByApplication(applicationId: string | number) {
return request({
url: `/rs/overseas/record/application/${applicationId}`,
method: 'get'
});
}
// 查询出国记录详细
export function getOverseasRecord(recordId: string | number) {
return request({
url: `/rs/overseas/record/${recordId}`,
method: 'get'
});
}
// 新增出国记录
export function addOverseasRecord(data: OverseasRecordForm) {
return request({
url: '/rs/overseas/record',
method: 'post',
data: data
});
}
// 修改出国记录
export function updateOverseasRecord(data: OverseasRecordForm) {
return request({
url: '/rs/overseas/record',
method: 'put',
data: data
});
}
// 基于申请信息创建出国记录
export function createOverseasRecordFromApplication(applicationId: string | number) {
return request({
url: `/rs/overseas/record/create/${applicationId}`,
method: 'post'
});
}
// 更新出国记录完成状态
export function updateOverseasRecordCompletion(data: CompletionRequest) {
return request({
url: '/rs/overseas/record/complete',
method: 'put',
data: data
});
}
// 删除出国记录
export function delOverseasRecord(recordId: string | number | Array<string | number>) {
return request({
url: `/rs/overseas/record/${typeof recordId === 'object' ? recordId.join(',') : recordId}`,
method: 'delete'
});
}
// 导出出国记录
export function exportOverseasRecord(query: OverseasRecordQuery) {
return request({
url: '/rs/overseas/record/export',
method: 'post',
data: query
});
}
// 初始化出国记录测试数据(临时接口)
export function initOverseasRecordTestData() {
return request({
url: '/rs/overseas/record/initTestData',
method: 'post'
});
}
// ==================== 出国审批记录相关API ====================
// 查询出国审批记录列表
export function listOverseasApproval(query: OverseasApprovalQuery) {
return request({
url: '/rs/overseas/approval/list',
method: 'get',
params: query
});
}
// 查询我的审批记录列表
export function listMyOverseasApproval(query: OverseasApprovalQuery) {
return request({
url: '/rs/overseas/approval/my/list',
method: 'get',
params: query
});
}
// 根据申请ID查询审批记录列表
export function getOverseasApprovalByApplication(applicationId: string | number) {
return request({
url: `/rs/overseas/approval/application/${applicationId}`,
method: 'get'
});
}
// 查询出国审批记录详细
export function getOverseasApproval(approvalId: string | number) {
return request({
url: `/rs/overseas/approval/${approvalId}`,
method: 'get'
});
}
// 导出出国审批记录
export function exportOverseasApproval(query: OverseasApprovalQuery) {
return request({
url: '/rs/overseas/approval/export',
method: 'post',
data: query
});
}
// 获取出国申请审批历史
export function getOverseasApprovalHistory(applicationId: string | number) {
return request({
url: `/rs/overseas/application/approval/history/${applicationId}`,
method: 'get'
});
}
// 新增出国审批记录
export function addOverseasApproval(data: any) {
return request({
url: '/rs/overseas/approval',
method: 'post',
data: data
});
}
// 修改出国审批记录
export function updateOverseasApproval(data: any) {
return request({
url: '/rs/overseas/approval',
method: 'put',
data: data
});
}
// 删除出国审批记录
export function delOverseasApproval(approvalIds: string | number | Array<string | number>) {
return request({
url: `/rs/overseas/approval/${approvalIds}`,
method: 'delete'
});
}
// 修复审批记录数据
export function fixOverseasApprovalData() {
return request({
url: '/rs/overseas/approval/fixData',
method: 'post'
});
}
// 修复已审批通过但未创建记录的申请
export function fixApprovedOverseasRecords() {
return request({
url: '/rs/overseas/application/fix/records',
method: 'post'
});
}
+438
View File
@@ -0,0 +1,438 @@
import request from '@/utils/request';
// 培训课程查询参数类型
export interface CourseQuery {
pageNum: number;
pageSize: number;
title?: string;
category?: string;
status?: string;
params?: Record<string, any>;
}
// 培训课程数据类型
export interface CourseVO {
courseId: number | string;
title: string;
category: string;
description: string;
startTime: string;
endTime: string;
duration: number;
location: string;
maxParticipants: number;
currentParticipants: number;
status: string;
applicationCount: number;
createTime: string;
updateTime: string;
createBy: string;
updateBy: string;
remark: string;
}
// 培训课程表单类型
export interface CourseForm {
courseId?: number | string;
title: string;
category: string;
description?: string;
startTime: string;
endTime: string;
duration: number;
location?: string;
maxParticipants?: number;
status?: string;
remark?: string;
}
// 培训申请查询参数类型
export interface ApplicationQuery {
pageNum: number;
pageSize: number;
courseId?: number | string;
courseName?: string;
userId?: number | string;
userName?: string;
department?: string;
status?: string;
params?: Record<string, any>;
}
// 培训申请数据类型
export interface ApplicationVO {
applicationId: number | string;
courseId: number | string;
courseName: string;
userId: number | string;
userName: string;
department: string;
position?: string;
reason?: string;
status: string;
applyTime: string;
currentApprover?: string;
certificatePath?: string;
certificateNumber?: string;
createTime: string;
updateTime: string;
createBy: string;
updateBy: string;
remark: string;
}
// 培训申请表单类型
export interface ApplicationForm {
applicationId?: number | string;
courseId: number | string;
courseName?: string; // 自定义课程名称
userId?: number | string;
userName?: string;
department?: string;
position?: string;
reason?: string;
status?: string;
location?: string;
duration?: number;
startTime?: string;
endTime?: string;
remark?: string;
}
// 培训记录查询参数类型
export interface RecordQuery {
pageNum: number;
pageSize: number;
courseId?: number | string;
courseName?: string;
userId?: number | string;
userName?: string;
completionStatus?: string;
params?: Record<string, any>;
}
// 培训记录数据类型
export interface RecordVO {
recordId: number | string;
applicationId?: number | string;
courseId: number | string;
courseName: string;
userId: number | string;
userName: string;
department?: string;
completionStatus: string;
score?: string;
duration?: number;
completionTime?: string;
certificatePath?: string;
certificateNumber?: string;
certificateFileName?: string;
feedback?: string;
createTime: string;
updateTime: string;
createBy: string;
updateBy: string;
remark: string;
}
// 培训记录表单类型
export interface RecordForm {
recordId?: number | string;
applicationId?: number | string;
courseId: number | string;
courseName?: string;
userId: number | string;
userName?: string;
completionStatus: string;
score?: string;
duration?: number;
completionTime?: string;
certificatePath?: string;
certificateNumber?: string;
certificateFileName?: string;
attachmentIds?: string;
feedback?: string;
remark?: string;
}
// 查询培训课程列表
export function listTrainingCourse(query: CourseQuery) {
return request({
url: '/rs/training/course/list',
method: 'get',
params: query
});
}
// 获取培训课程详情
export function getTrainingCourse(courseId: string | number) {
return request({
url: `/rs/training/course/${courseId}`,
method: 'get'
});
}
// 新增培训课程
export function addTrainingCourse(data: CourseForm) {
return request({
url: '/rs/training/course',
method: 'post',
data: data
});
}
// 修改培训课程
export function updateTrainingCourse(data: CourseForm) {
return request({
url: '/rs/training/course',
method: 'put',
data: data
});
}
// 删除培训课程
export function delTrainingCourse(courseId: string | number | Array<string | number>) {
return request({
url: `/rs/training/course/${typeof courseId === 'object' ? courseId.join(',') : courseId}`,
method: 'delete'
});
}
// 切换培训课程状态
export function toggleCourseStatus(courseId: string | number) {
return request({
url: `/rs/training/course/toggle/${courseId}`,
method: 'put'
});
}
// 导出培训课程
export function exportTrainingCourse(query: CourseQuery) {
return request({
url: '/rs/training/course/export',
method: 'get',
params: query,
responseType: 'blob'
});
}
// 查询培训申请列表
export function listTrainingApplication(query: ApplicationQuery) {
return request({
url: '/rs/training/application/list',
method: 'get',
params: query
});
}
// 获取培训申请详情
export function getTrainingApplication(applicationId: string | number) {
return request({
url: `/rs/training/application/${applicationId}`,
method: 'get'
});
}
// 提交培训申请
export function addTrainingApplication(data: ApplicationForm) {
return request({
url: '/rs/training/application',
method: 'post',
data: data
});
}
// 修改培训申请
export function updateTrainingApplication(data: ApplicationForm) {
return request({
url: '/rs/training/application',
method: 'put',
data: data
});
}
// 取消培训申请
export function cancelTrainingApplication(applicationId: string | number) {
return request({
url: `/rs/training/application/cancel/${applicationId}`,
method: 'put'
});
}
// 删除培训申请
export function deleteTrainingApplication(applicationId: string | number) {
return request({
url: `/rs/training/application/${applicationId}`,
method: 'delete'
});
}
// 导出培训申请
export function exportTrainingApplication(query: ApplicationQuery) {
return request({
url: '/rs/training/application/export',
method: 'get',
params: query,
responseType: 'blob'
});
}
// 获取我的培训申请列表
export function listMyTrainingApplication(query: ApplicationQuery) {
return request({
url: '/rs/training/application/my',
method: 'get',
params: query
});
}
// 查询培训记录列表
export function listTrainingRecord(query: RecordQuery) {
return request({
url: '/rs/training/record/list',
method: 'get',
params: query
});
}
// 获取培训记录详情
export function getTrainingRecord(recordId: string | number) {
return request({
url: `/rs/training/record/${recordId}`,
method: 'get'
});
}
// 新增培训记录
export function addTrainingRecord(data: RecordForm) {
return request({
url: '/rs/training/record',
method: 'post',
data: data
});
}
// 修改培训记录
export function updateTrainingRecord(data: RecordForm) {
return request({
url: '/rs/training/record',
method: 'put',
data: data
});
}
// 删除培训记录
export function delTrainingRecord(recordId: string | number | Array<string | number>) {
return request({
url: `/rs/training/record/${typeof recordId === 'object' ? recordId.join(',') : recordId}`,
method: 'delete'
});
}
// 上传培训证书
export function uploadCertificate(recordId: string | number, file: File) {
const formData = new FormData();
formData.append('file', file);
return request({
url: `/rs/training/record/certificate/${recordId}`,
method: 'post',
data: formData,
headers: {
'Content-Type': 'multipart/form-data'
}
});
}
// 导出培训记录
export function exportTrainingRecord(query: RecordQuery) {
return request({
url: '/rs/training/record/export',
method: 'get',
params: query,
responseType: 'blob'
});
}
// 提交培训申请(无需权限验证,供普通用户使用)
export function submitTrainingApplication(data: ApplicationForm) {
return request({
url: '/rs/training/application/submit',
headers: {
isToken: false
},
method: 'post',
data: data
});
}
// 更新培训申请状态
export function updateApplicationStatus(applicationId: string | number, status: string, rejectReason?: string) {
return request({
url: `/rs/training/application/status/${applicationId}/${status}`,
method: 'put',
data: rejectReason ? { opinion: rejectReason } : {}
});
}
// 获取我的审批记录列表(当前用户审批过的所有申请)
export function listMyApprovalRecord(query: ApplicationQuery) {
return request({
url: '/rs/training/application/myApproval',
method: 'get',
params: query
});
}
// 导出审批记录
export function exportApprovalRecord(query: ApplicationQuery) {
return request({
url: '/rs/training/application/approval/export',
method: 'get',
params: query,
responseType: 'blob'
});
}
// 获取培训申请审批历史
export function getTrainingApprovalHistory(applicationId: string | number) {
return request({
url: `/rs/training/approval/history/${applicationId}`,
method: 'get'
});
}
// 获取所有审批记录列表(包括所有用户的所有申请记录)
export function listAllApprovalRecords(query: ApplicationQuery) {
return request({
url: '/rs/training/approval/list',
method: 'get',
params: query
});
}
// 处理审批(通过或拒绝)- 会创建审批记录
export function processTrainingApproval(applicationId: string | number, status: string, opinion?: string) {
return request({
url: `/rs/training/approval/process/${applicationId}/${status}`,
method: 'put',
data: opinion ? { opinion: opinion } : {}
});
}
// 重新提交被拒绝的培训申请
export function resubmitTrainingApplication(applicationId: string | number, data: ApplicationForm) {
return request({
url: `/rs/training/application/resubmit/${applicationId}`,
method: 'put',
data: data
});
}
// 更新培训记录的证书附件ID
export function updateRecordAttachments(recordId: string | number, data: { attachmentIds: string }) {
return request({
url: `/rs/training/record/attachments/${recordId}`,
method: 'put',
data: data
});
}
+4 -10
View File
@@ -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;
}
+25 -25
View File
@@ -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
}
};
}
+28 -28
View File
@@ -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;
}
+17
View File
@@ -57,3 +57,20 @@ export interface TenantInfo {
tenantEnabled: boolean;
voList: TenantVO[];
}
/**
* 通用响应结构
*/
export interface R<T = any> {
code: number;
msg: string;
data: T;
}
/**
* 分页数据信息
*/
export interface TableDataInfo<T = any> {
total: number;
rows: T;
}
@@ -0,0 +1,85 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { StudentCancelLeaveVO, StudentCancelLeaveForm, StudentCancelLeaveQuery } from '@/api/workflow/studentCancelLeave/studentCancelLeave/types';
/**
* 查询学生销假列表
* @param query
* @returns {*}
*/
export const listStudentCancelLeave = (query?: StudentCancelLeaveQuery): AxiosPromise<StudentCancelLeaveVO[]> => {
return request({
url: '/studentCancelLeave/studentCancelLeave/list',
method: 'get',
params: query
});
};
/**
* 查询学生销假详细
* @param id
*/
export const getStudentCancelLeave = (id: string | number): AxiosPromise<StudentCancelLeaveVO> => {
return request({
url: '/studentCancelLeave/studentCancelLeave/' + id,
method: 'get'
});
};
/**
* 新增学生销假
* @param data
*/
export const addStudentCancelLeave = (data: StudentCancelLeaveForm): AxiosPromise<StudentCancelLeaveVO> => {
return request({
url: '/studentCancelLeave/studentCancelLeave',
method: 'post',
data: data
});
};
/**
* 修改学生销假
* @param data
*/
export const updateStudentCancelLeave = (data: StudentCancelLeaveForm) => {
return request({
url: '/studentCancelLeave/studentCancelLeave',
method: 'put',
data: data
});
};
/**
* 删除学生销假
* @param id
*/
export const delStudentCancelLeave = (id: string | number | Array<string | number>) => {
return request({
url: '/studentCancelLeave/studentCancelLeave/' + id,
method: 'delete'
});
};
/**
* 根据请假ID获取销假ID
* @param leaveId
*/
export const getCancelLeaveIdByLeaveId = (leaveId: string | number): AxiosPromise<number> => {
return request({
url: `/studentCancelLeave/studentCancelLeave/getCancelLeaveId/${leaveId}`,
method: 'get'
});
};
/**
* 根据销假ID获取请假ID
* @param cancelLeaveId
*/
export const getLeaveIdByCancelLeaveId = (cancelLeaveId: string | number): AxiosPromise<number> => {
return request({
url: `/studentCancelLeave/studentCancelLeave/getLeaveId/${cancelLeaveId}`,
method: 'get'
});
};
@@ -0,0 +1,515 @@
export interface StudentCancelLeaveVO {
/**
* 主键ID(雪花ID)
*/
id: string | number;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted: number;
/**
* 学生ID
*/
studentId: string | number;
/**
* 学生姓名
*/
studentName: string;
/**
* 学号
*/
studentNo: string;
/**
* 班级ID
*/
classId: string | number;
/**
* 班级名称
*/
className: string;
/**
* 专业ID
*/
majorId: string | number;
/**
* 专业名称
*/
majorName: string;
/**
* 学院ID
*/
collegeId: string | number;
/**
* 学院名称
*/
collegeName: string;
/**
* 请假类型编码
*/
leaveTypeCode: string;
/**
* 请假类型名称
*/
leaveTypeName: string;
/**
* 开始时间(年月日时分秒)
*/
startTime: string;
/**
* 结束时间(年月日时分秒)
*/
endTime: string;
/**
* 请假时长(天)
*/
leaveDuration: number;
/**
* 是否离校:0-否,1-是
*/
isLeaveSchool: string;
/**
* 是否需要销假:0-否,1-是
*/
needCancel: string;
/**
* 紧急联系人
*/
emergencyContact: string;
/**
* 紧急联系电话
*/
emergencyPhone: string;
/**
* 请假原因
*/
leaveReason: string;
/**
* 请假时地理位置
*/
leaveLocation: string;
/**
* 附件OSS文件ID(逗号分隔)
*/
attachmentOssIds: string | number;
/**
* 审批状态:"cancel", "已撤销" "draft", "草稿" "waiting", "待审核" "finish", "已完成" "invalid", "已作废" "back", "已退回" "termination", "已终止"
*/
approvalStatus: string;
/**
* 审批意见
*/
approvalOpinion: string;
/**
* 审批时间
*/
approvalTime: string;
/**
* 审批人ID
*/
approvalBy: number;
/**
* 审批人姓名
*/
approvalByName: string;
/**
* 销假状态:0-未销假,1-已销假,2-逾期未销假 3 - 无需销假 "cancel", "已撤销" "draft", "草稿" "waiting", "待审核" "finish", "已完成" "invalid", "已作废" "back", "已退回" "termination", "已终止"
*/
cancelStatus: string;
/**
* 销假时间
*/
cancelTime: string;
/**
* 销假地理位置
*/
cancelLocation: string;
/**
* 销假照片OSS文件ID(逗号分隔)
*/
cancelPhotoOssIds: string | number;
/**
* 销假备注
*/
cancelRemark: string;
/**
* 学生请假表id
*/
leaveId: string | number;
}
export interface StudentCancelLeaveForm extends BaseEntity {
/**
* 主键ID(雪花ID)
*/
id?: string | number;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: number;
/**
* 学生ID
*/
studentId?: string | number;
/**
* 学生姓名
*/
studentName?: string;
/**
* 学号
*/
studentNo?: string;
/**
* 班级ID
*/
classId?: string | number;
/**
* 班级名称
*/
className?: string;
/**
* 专业ID
*/
majorId?: string | number;
/**
* 专业名称
*/
majorName?: string;
/**
* 学院ID
*/
collegeId?: string | number;
/**
* 学院名称
*/
collegeName?: string;
/**
* 请假类型编码
*/
leaveTypeCode?: string;
/**
* 请假类型名称
*/
leaveTypeName?: string;
/**
* 开始时间(年月日时分秒)
*/
startTime?: string;
/**
* 结束时间(年月日时分秒)
*/
endTime?: string;
/**
* 请假时长(天)
*/
leaveDuration?: number;
/**
* 是否离校:0-否,1-是
*/
isLeaveSchool?: string;
/**
* 是否需要销假:0-否,1-是
*/
needCancel?: string;
/**
* 紧急联系人
*/
emergencyContact?: string;
/**
* 紧急联系电话
*/
emergencyPhone?: string;
/**
* 请假原因
*/
leaveReason?: string;
/**
* 请假时地理位置
*/
leaveLocation?: string;
/**
* 附件OSS文件ID(逗号分隔)
*/
attachmentOssIds?: string | number;
/**
* 审批状态:"cancel", "已撤销" "draft", "草稿" "waiting", "待审核" "finish", "已完成" "invalid", "已作废" "back", "已退回" "termination", "已终止"
*/
approvalStatus?: string;
/**
* 审批意见
*/
approvalOpinion?: string;
/**
* 审批时间
*/
approvalTime?: string;
/**
* 审批人ID
*/
approvalBy?: number;
/**
* 审批人姓名
*/
approvalByName?: string;
/**
* 销假状态:0-未销假,1-已销假,2-逾期未销假 3 - 无需销假 "cancel", "已撤销" "draft", "草稿" "waiting", "待审核" "finish", "已完成" "invalid", "已作废" "back", "已退回" "termination", "已终止"
*/
cancelStatus?: string;
/**
* 销假时间
*/
cancelTime?: string;
/**
* 销假地理位置
*/
cancelLocation?: string;
/**
* 销假照片OSS文件ID(逗号分隔)
*/
cancelPhotoOssIds?: string | number;
/**
* 销假备注
*/
cancelRemark?: string;
/**
* 学生请假表id
*/
leaveId?: string | number;
}
export interface StudentCancelLeaveQuery extends PageQuery {
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: number;
/**
* 学生ID
*/
studentId?: string | number;
/**
* 学生姓名
*/
studentName?: string;
/**
* 学号
*/
studentNo?: string;
/**
* 班级ID
*/
classId?: string | number;
/**
* 班级名称
*/
className?: string;
/**
* 专业ID
*/
majorId?: string | number;
/**
* 专业名称
*/
majorName?: string;
/**
* 学院ID
*/
collegeId?: string | number;
/**
* 学院名称
*/
collegeName?: string;
/**
* 请假类型编码
*/
leaveTypeCode?: string;
/**
* 请假类型名称
*/
leaveTypeName?: string;
/**
* 开始时间(年月日时分秒)
*/
startTime?: string;
/**
* 结束时间(年月日时分秒)
*/
endTime?: string;
/**
* 请假时长(天)
*/
leaveDuration?: number;
/**
* 是否离校:0-否,1-是
*/
isLeaveSchool?: string;
/**
* 是否需要销假:0-否,1-是
*/
needCancel?: string;
/**
* 紧急联系人
*/
emergencyContact?: string;
/**
* 紧急联系电话
*/
emergencyPhone?: string;
/**
* 请假原因
*/
leaveReason?: string;
/**
* 请假时地理位置
*/
leaveLocation?: string;
/**
* 附件OSS文件ID(逗号分隔)
*/
attachmentOssIds?: string | number;
/**
* 审批状态:"cancel", "已撤销" "draft", "草稿" "waiting", "待审核" "finish", "已完成" "invalid", "已作废" "back", "已退回" "termination", "已终止"
*/
approvalStatus?: string;
/**
* 审批意见
*/
approvalOpinion?: string;
/**
* 审批时间
*/
approvalTime?: string;
/**
* 审批人ID
*/
approvalBy?: number;
/**
* 审批人姓名
*/
approvalByName?: string;
/**
* 销假状态:0-未销假,1-已销假,2-逾期未销假 3 - 无需销假 "cancel", "已撤销" "draft", "草稿" "waiting", "待审核" "finish", "已完成" "invalid", "已作废" "back", "已退回" "termination", "已终止"
*/
cancelStatus?: string;
/**
* 销假时间
*/
cancelTime?: string;
/**
* 销假地理位置
*/
cancelLocation?: string;
/**
* 销假照片OSS文件ID(逗号分隔)
*/
cancelPhotoOssIds?: string | number;
/**
* 销假备注
*/
cancelRemark?: string;
/**
* 学生请假表id
*/
leaveId?: string | number;
/**
* 日期范围参数
*/
params?: any;
}
@@ -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;
}
-316
View File
@@ -1,316 +0,0 @@
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<T> {
code: number;
msg: string;
rows: T[];
total: number;
}
interface R<T> {
code: number;
msg: string;
data: T;
}
/**
* 查询班级信息列表
*/
export const listClassInfo = (query: ClassInfoQuery): AxiosPromise<TableDataInfo<ClassInfoVO>> => {
return request({
url: '/xg/classInfo/list',
method: 'get',
params: query
})
}
/**
* 查询班级信息详细
*/
export const getClassInfo = (id: string | number): AxiosPromise<R<ClassInfoVO>> => {
return request({
url: '/xg/classInfo/' + id,
method: 'get'
})
}
/**
* 新增班级信息
*/
export const addClassInfo = (data: ClassInfoForm): AxiosPromise<R<void>> => {
return request({
url: '/xg/classInfo',
method: 'post',
data: data
})
}
/**
* 修改班级信息
*/
export const updateClassInfo = (data: ClassInfoForm): AxiosPromise<R<void>> => {
return request({
url: '/xg/classInfo',
method: 'put',
data: data
})
}
/**
* 删除班级信息
*/
export const delClassInfo = (id: string | number | Array<string | number>): AxiosPromise<R<void>> => {
return request({
url: '/xg/classInfo/' + id,
method: 'delete'
})
}
/**
* 导出班级信息
*/
export const exportClassInfo = (query: ClassInfoQuery): AxiosPromise<any> => {
return request({
url: '/xg/classInfo/export',
method: 'post',
data: query
})
}
/**
* 根据班级代码查询班级信息
*/
export const getClassInfoByCode = (classCode: string): AxiosPromise<R<ClassInfoVO>> => {
return request({
url: '/xg/classInfo/getByClassCode/' + classCode,
method: 'get'
})
}
/**
* 根据年级查询班级信息列表
*/
export const getClassInfoByGrade = (grade: string): AxiosPromise<R<ClassInfoVO[]>> => {
return request({
url: '/xg/classInfo/getByGrade/' + grade,
method: 'get'
})
}
/**
* 根据学院代码查询班级信息列表
*/
export const getClassInfoByCollege = (collegeCode: string): AxiosPromise<R<ClassInfoVO[]>> => {
return request({
url: '/xg/classInfo/getByCollegeCode/' + collegeCode,
method: 'get'
})
}
/**
* 根据专业代码查询班级信息列表
*/
export const getClassInfoByMajor = (majorCode: string): AxiosPromise<R<ClassInfoVO[]>> => {
return request({
url: '/xg/classInfo/getByMajorCode/' + majorCode,
method: 'get'
})
}
/**
* 根据辅导员ID查询班级信息列表
*/
export const getClassInfoByCounselor = (counselorId: number): AxiosPromise<R<ClassInfoVO[]>> => {
return request({
url: '/xg/classInfo/getByCounselorId/' + counselorId,
method: 'get'
})
}
/**
* 根据班主任ID查询班级信息列表
*/
export const getClassInfoByClassTeacher = (classTeacherId: number): AxiosPromise<R<ClassInfoVO[]>> => {
return request({
url: '/xg/classInfo/getByClassTeacherId/' + classTeacherId,
method: 'get'
})
}
/**
* 获取班级选项列表(用于下拉框)
*/
export const getClassOptions = (): AxiosPromise<R<ClassInfoVO[]>> => {
return request({
url: '/xg/classInfo/getClassOptions', // 修正路径:从 /options 改为 /getClassOptions
method: 'get'
})
}
/**
* 更新班级学生统计
*/
export const updateStudentCount = (classId: number): AxiosPromise<R<void>> => {
return request({
url: '/xg/classInfo/updateStudentCount/' + classId,
method: 'post' // 修正HTTP方法:从 put 改为 post
})
}
/**
* 批量更新班级学生统计
*/
export const batchUpdateStudentCount = (classIds: number[]): AxiosPromise<R<void>> => {
return request({
url: '/xg/classInfo/batchUpdateStudentCount',
method: 'post', // 修正HTTP方法:从 put 改为 post
data: classIds
})
}
/**
* 启用班级
*/
export const enableClass = (id: number): AxiosPromise<R<void>> => {
return request({
url: '/xg/classInfo/enable/' + id,
method: 'post' // 修正HTTP方法:从 put 改为 post
})
}
/**
* 禁用班级
*/
export const disableClass = (id: number): AxiosPromise<R<void>> => {
return request({
url: '/xg/classInfo/disable/' + id,
method: 'post' // 修正HTTP方法:从 put 改为 post
})
}
// ================================
// 统计数据接口 - 新增
// ================================
/**
* 获取班级信息统计概览
*/
export const getClassStatistics = (): AxiosPromise<R<any>> => {
return request({
url: '/xg/classInfo/statistics',
method: 'get'
})
}
/**
* 统计各学院班级数量
*/
export const countClassByCollege = (): AxiosPromise<R<any[]>> => {
return request({
url: '/xg/classInfo/statistics/college',
method: 'get'
})
}
/**
* 统计各年级班级数量
*/
export const countClassByGrade = (): AxiosPromise<R<any[]>> => {
return request({
url: '/xg/classInfo/statistics/grade',
method: 'get'
})
}
/**
* 统计各专业班级数量
*/
export const countClassByMajor = (): AxiosPromise<R<any[]>> => {
return request({
url: '/xg/classInfo/statistics/major',
method: 'get'
})
}
/**
* 统计班级状态分布
*/
export const countClassByStatus = (): AxiosPromise<R<any[]>> => {
return request({
url: '/xg/classInfo/statistics/status',
method: 'get'
})
}
/**
* 获取学院选项
*/
export const getCollegeOptions = (): AxiosPromise<R<any[]>> => {
return request({
url: '/xg/studentInfo/options/colleges',
method: 'get'
})
}
/**
* 从系统部门获取学院选项(二级学院)
*/
export const getDeptCollegeOptions = (): AxiosPromise<DeptTreeVO[]> => {
console.log('直接调用部门树API,避免treeselect参数问题');
return request({
url: '/system/dept/treeselect',
method: 'get'
});
}
/**
* 从系统部门获取专业选项(学院的下级部门)
*/
export const getDeptMajorOptions = (deptId: string | number): AxiosPromise<DeptVO[]> => {
// 确保deptId是有效的数字ID
if (!deptId || isNaN(Number(deptId))) {
console.error('Invalid deptId:', deptId);
return Promise.reject(new Error('无效的部门ID'));
}
// 直接调用接口,不使用封装的系统API
const numericDeptId = Number(deptId);
console.log('直接调用部门API,使用数字ID:', numericDeptId);
return request({
url: '/system/dept/list/exclude/' + numericDeptId,
method: 'get'
});
}
/**
* 获取辅导员选项
*/
export const getCounselorOptions = (): AxiosPromise<R<any[]>> => {
return request({
url: '/xg/studentInfo/options/counselors',
method: 'get'
})
}
/**
* 获取班主任选项列表
*/
export const getClassTeacherOptions = (): AxiosPromise<R<OptionData[]>> => {
console.log('调用班主任API: /xg/classInfo/teacherOptions')
return request({
url: '/xg/classInfo/teacherOptions',
method: 'get',
headers: {
// 确保请求带有认证信息
'Authorization': 'Bearer ' + getToken(),
'clientid': import.meta.env.VITE_APP_CLIENT_ID
}
})
}
-786
View File
@@ -1,786 +0,0 @@
/**
* 班级信息管理模块 - 类型定义
*/
/**
* 班级信息 VO
*/
export interface ClassInfoVO {
/**
* 主键ID
*/
id: string | number;
/**
* 租户编号
*/
tenantId?: string;
/**
* 班级代码
*/
classCode: string;
/**
* 班级名称
*/
className: string;
/**
* 班级类型:regular-普通班级,honor-荣誉班级,experimental-实验班级,special-特殊班级
*/
classType?: string;
/**
* 年级
*/
grade: string;
/**
* 入学年份
*/
enrollmentYear: number;
/**
* 毕业年份
*/
graduationYear?: number;
/**
* 专业代码
*/
majorCode?: string;
/**
* 专业名称
*/
majorName?: string;
/**
* 培养方式:全日制、在职、函授、夜大等
*/
trainingType?: string;
/**
* 学位类型:本科、专科、研究生等
*/
degreeType?: string;
/**
* 学院代码
*/
collegeCode?: string;
/**
* 学院名称
*/
collegeName?: string;
/**
* 辅导员ID
*/
counselorId?: string | number;
/**
* 辅导员姓名
*/
counselorName?: string;
/**
* 班主任ID
*/
classTeacherId?: string | number;
/**
* 班主任姓名
*/
classTeacherName?: string;
/**
* 班级导师ID
*/
classAdvisorId?: string | number;
/**
* 班级导师姓名
*/
classAdvisorName?: string;
/**
* 班长ID
*/
classMonitorId?: string | number;
/**
* 班长姓名
*/
classMonitorName?: string;
/**
* 副班长ID
*/
deputyMonitorId?: string | number;
/**
* 副班长姓名
*/
deputyMonitorName?: string;
/**
* 班级状态:1-正常,2-暂停,3-毕业,4-解散
*/
classStatus?: string;
/**
* 是否毕业:0-未毕业,1-已毕业
*/
isGraduation?: number;
/**
* 毕业日期
*/
graduationDate?: string;
/**
* 计划容量
*/
plannedCapacity?: number;
/**
* 当前学生数量
*/
currentStudentCount?: number;
/**
* 最大学生数量
*/
maxStudentCount?: number;
/**
* 男生数量
*/
maleCount?: number;
/**
* 女生数量
*/
femaleCount?: number;
/**
* 在籍学生数量
*/
activeCount?: number;
/**
* 转入学生数量
*/
transferInCount?: number;
/**
* 转出学生数量
*/
transferOutCount?: number;
/**
* 退学学生数量
*/
dropoutCount?: number;
/**
* 毕业学生数量
*/
graduateCount?: number;
/**
* 办公室位置
*/
officeLocation?: string;
/**
* 教室位置
*/
classLocation?: string;
/**
* 联系电话
*/
contactPhone?: string;
/**
* QQ群号
*/
qqGroup?: string;
/**
* 微信群
*/
wechatGroup?: string;
/**
* 邮箱
*/
email?: string;
/**
* 课程安排
*/
classSchedule?: string;
/**
* 班级文化
*/
classCulture?: string;
/**
* 班级规章制度
*/
classRules?: string;
/**
* 班级描述
*/
classDescription?: string;
/**
* 最后统计更新时间
*/
lastCountUpdate?: string;
/**
* 扩展字段1
*/
extField1?: string;
/**
* 扩展字段2
*/
extField2?: string;
/**
* 扩展字段3
*/
extField3?: string;
/**
* 备注
*/
remark?: string;
/**
* 创建者
*/
createBy?: string | number;
/**
* 创建时间
*/
createTime?: string;
/**
* 更新者
*/
updateBy?: string | number;
/**
* 更新时间
*/
updateTime?: string;
}
/**
* 班级信息查询对象
*/
export interface ClassInfoQuery {
/**
* 当前页数
*/
pageNum?: number;
/**
* 每页显示记录数
*/
pageSize?: number;
/**
* 班级代码
*/
classCode?: string;
/**
* 班级名称
*/
className?: string;
/**
* 班级类型
*/
classType?: string;
/**
* 年级
*/
grade?: string;
/**
* 入学年份
*/
enrollmentYear?: number;
/**
* 毕业年份
*/
graduationYear?: number;
/**
* 学院代码
*/
collegeCode?: string;
/**
* 学院名称
*/
collegeName?: string;
/**
* 专业代码
*/
majorCode?: string;
/**
* 专业名称
*/
majorName?: string;
/**
* 班主任ID
*/
classTeacherId?: string | number;
/**
* 班主任姓名
*/
classTeacherName?: string;
/**
* 辅导员ID
*/
counselorId?: string | number;
/**
* 辅导员姓名
*/
counselorName?: string;
/**
* 班级状态
*/
classStatus?: string;
/**
* 班级代码列表(批量查询)
*/
classCodeList?: string[];
/**
* 班级状态列表(批量查询)
*/
classStatusList?: string[];
/**
* 入学年份开始
*/
enrollmentYearStart?: number;
/**
* 入学年份结束
*/
enrollmentYearEnd?: number;
/**
* 创建时间开始
*/
createTimeStart?: string;
/**
* 创建时间结束
*/
createTimeEnd?: string;
}
/**
* 班级信息表单对象
*/
export interface ClassInfoForm {
/**
* 主键ID
*/
id?: string | number;
/**
* 班级代码
*/
classCode?: string;
/**
* 班级名称
*/
className?: string;
/**
* 班级类型
*/
classType?: string;
/**
* 年级
*/
grade?: string;
/**
* 入学年份
*/
enrollmentYear?: number;
/**
* 毕业年份
*/
graduationYear?: number;
/**
* 专业代码
*/
majorCode?: string;
/**
* 专业名称
*/
majorName?: string;
/**
* 培养方式
*/
trainingType?: string;
/**
* 学位类型
*/
degreeType?: string;
/**
* 学院代码
*/
collegeCode?: string;
/**
* 学院名称
*/
collegeName?: string;
/**
* 辅导员ID
*/
counselorId?: string | number;
/**
* 辅导员姓名
*/
counselorName?: string;
/**
* 班主任ID
*/
classTeacherId?: string | number;
/**
* 班主任姓名
*/
classTeacherName?: string;
/**
* 班级导师ID
*/
classAdvisorId?: string | number;
/**
* 班级导师姓名
*/
classAdvisorName?: string;
/**
* 班长ID
*/
classMonitorId?: string | number;
/**
* 班长姓名
*/
classMonitorName?: string;
/**
* 副班长ID
*/
deputyMonitorId?: string | number;
/**
* 副班长姓名
*/
deputyMonitorName?: string;
/**
* 班级状态
*/
classStatus?: string;
/**
* 是否毕业
*/
isGraduation?: number;
/**
* 毕业日期
*/
graduationDate?: string;
/**
* 计划容量
*/
plannedCapacity?: number;
/**
* 当前学生数量
*/
currentStudentCount?: number;
/**
* 最大学生数量
*/
maxStudentCount?: number;
/**
* 男生数量
*/
maleCount?: number;
/**
* 女生数量
*/
femaleCount?: number;
/**
* 在籍学生数量
*/
activeCount?: number;
/**
* 转入学生数量
*/
transferInCount?: number;
/**
* 转出学生数量
*/
transferOutCount?: number;
/**
* 退学学生数量
*/
dropoutCount?: number;
/**
* 毕业学生数量
*/
graduateCount?: number;
/**
* 办公室位置
*/
officeLocation?: string;
/**
* 教室位置
*/
classLocation?: string;
/**
* 联系电话
*/
contactPhone?: string;
/**
* QQ群号
*/
qqGroup?: string;
/**
* 微信群
*/
wechatGroup?: string;
/**
* 邮箱
*/
email?: string;
/**
* 课程安排
*/
classSchedule?: string;
/**
* 班级文化
*/
classCulture?: string;
/**
* 班级规章制度
*/
classRules?: string;
/**
* 班级描述
*/
classDescription?: string;
/**
* 最后统计更新时间
*/
lastCountUpdate?: string;
/**
* 扩展字段1
*/
extField1?: string;
/**
* 扩展字段2
*/
extField2?: string;
/**
* 扩展字段3
*/
extField3?: string;
/**
* 备注
*/
remark?: string;
}
/**
* 班级统计数据
*/
export interface ClassStatisticsData {
/**
* 总班级数
*/
totalCount: number;
/**
* 正常班级数
*/
activeCount: number;
/**
* 已毕业班级数
*/
graduatedCount: number;
/**
* 暂停班级数
*/
suspendedCount: number;
/**
* 解散班级数
*/
dissolvedCount: number;
/**
* 总学生数
*/
totalStudentCount: number;
/**
* 平均班级人数
*/
averageClassSize: number;
}
/**
* 班级选项数据
*/
export interface OptionData {
/**
* 值
*/
value: string | number;
/**
* 标签
*/
label: string;
/**
* 是否禁用
*/
disabled?: boolean;
/**
* 扩展数据
*/
data?: any;
}
/**
* 班级图表数据
*/
export interface ClassChartData {
/**
* 类别
*/
category: string;
/**
* 数值
*/
value: number;
/**
* 颜色
*/
color?: string;
/**
* 百分比
*/
percentage?: number;
}
/**
* 批量操作结果
*/
export interface BatchOperationResult {
/**
* 总数
*/
total: number;
/**
* 成功数
*/
success: number;
/**
* 失败数
*/
failed: number;
/**
* 失败的记录
*/
failedRecords?: Array<{
id: string | number;
reason: string;
}>;
}
-283
View File
@@ -1,283 +0,0 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { CollectionBatchVO, CollectionBatchForm, CollectionBatchQuery } from './types';
/**
* 查询信息采集批次列表
*/
export const listCollectionBatch = (query?: CollectionBatchQuery): AxiosPromise<CollectionBatchVO[]> => {
return request({
url: '/xg/collectionBatch/list',
method: 'get',
params: query
});
};
/**
* 查询信息采集批次详细
*/
export const getCollectionBatch = (id: string | number): AxiosPromise<CollectionBatchVO> => {
return request({
url: `/xg/collectionBatch/${id}`,
method: 'get'
});
};
/**
* 根据批次编码查询批次信息
*/
export const getCollectionBatchByCode = (batchCode: string): AxiosPromise<CollectionBatchVO> => {
return request({
url: `/xg/collectionBatch/code/${batchCode}`,
method: 'get'
});
};
/**
* 新增信息采集批次
*/
export const addCollectionBatch = (data: CollectionBatchForm) => {
return request({
url: '/xg/collectionBatch',
method: 'post',
data: data
});
};
/**
* 修改信息采集批次
*/
export const updateCollectionBatch = (data: CollectionBatchForm) => {
return request({
url: '/xg/collectionBatch',
method: 'put',
data: data
});
};
/**
* 删除信息采集批次
*/
export const delCollectionBatch = (ids: string | number | Array<string | number>) => {
return request({
url: `/xg/collectionBatch/${ids}`,
method: 'delete'
});
};
/**
* 导出信息采集批次
*/
export const exportCollectionBatch = (query?: CollectionBatchQuery) => {
return request({
url: '/xg/collectionBatch/export',
method: 'post',
data: query
});
};
/**
* 查询用户权限内的批次列表
*/
export const getUserPermissionBatches = (): AxiosPromise<CollectionBatchVO[]> => {
return request({
url: '/xg/collectionBatch/userPermission',
method: 'get'
});
};
/**
* 查询活跃的批次列表
*/
export const getActiveBatches = (): AxiosPromise<CollectionBatchVO[]> => {
return request({
url: '/xg/collectionBatch/active',
method: 'get'
});
};
/**
* 查询即将开始的批次列表
*/
export const getUpcomingBatches = (): AxiosPromise<CollectionBatchVO[]> => {
return request({
url: '/xg/collectionBatch/upcoming',
method: 'get'
});
};
/**
* 查询即将结束的批次列表
*/
export const getEndingSoonBatches = (): AxiosPromise<CollectionBatchVO[]> => {
return request({
url: '/xg/collectionBatch/endingSoon',
method: 'get'
});
};
/**
* 开始批次
*/
export const startBatch = (batchId: string | number) => {
return request({
url: `/xg/collectionBatch/start/${batchId}`,
method: 'post'
});
};
/**
* 暂停批次
*/
export const pauseBatch = (batchId: string | number) => {
return request({
url: `/xg/collectionBatch/pause/${batchId}`,
method: 'post'
});
};
/**
* 恢复批次
*/
export const resumeBatch = (batchId: string | number) => {
return request({
url: `/xg/collectionBatch/resume/${batchId}`,
method: 'post'
});
};
/**
* 结束批次
*/
export const endBatch = (batchId: string | number) => {
return request({
url: `/xg/collectionBatch/end/${batchId}`,
method: 'post'
});
};
/**
* 复制批次
*/
export const copyBatch = (batchId: string | number, newBatchCode: string, newBatchName: string) => {
return request({
url: `/xg/collectionBatch/copy/${batchId}`,
method: 'post',
data: {
newBatchCode,
newBatchName
}
});
};
/**
* 获取批次统计信息
*/
export const getBatchStatistics = (batchId: string | number) => {
return request({
url: `/xg/collectionBatch/statistics/${batchId}`,
method: 'get'
});
};
/**
* 获取整体统计信息
*/
export const getOverallStatistics = () => {
return request({
url: '/xg/collectionBatch/statistics/overall',
method: 'get'
});
};
/**
* 获取批次完成度统计
*/
export const getBatchCompletionStatistics = (batchId: string | number) => {
return request({
url: `/xg/collectionBatch/statistics/completion/${batchId}`,
method: 'get'
});
};
/**
* 获取批次多维度统计
*/
export const getBatchDimensionStatistics = (batchId: string | number, dimension: string) => {
return request({
url: `/xg/collectionBatch/statistics/dimension/${batchId}`,
method: 'get',
params: { dimension }
});
};
/**
* 批量更新批次状态
*/
export const batchUpdateStatus = (batchIds: Array<string | number>, status: string) => {
return request({
url: '/xg/collectionBatch/batchUpdateStatus',
method: 'post',
data: {
batchIds,
status
}
});
};
/**
* 检查批次是否可编辑
*/
export const checkBatchEditable = (batchId: string | number) => {
return request({
url: `/xg/collectionBatch/checkEditable/${batchId}`,
method: 'get'
});
};
/**
* 检查批次是否可删除
*/
export const checkBatchDeletable = (batchId: string | number) => {
return request({
url: `/xg/collectionBatch/checkDeletable/${batchId}`,
method: 'get'
});
};
/**
* 获取可用批次选项
*/
export const getAvailableBatches = () => {
return request({
url: '/xg/collectionBatch/available',
method: 'get'
});
};
/**
* 导入批次数据
*/
export const importBatchData = (file: File) => {
const formData = new FormData();
formData.append('file', file);
return request({
url: '/xg/collectionBatch/import',
method: 'post',
data: formData,
headers: {
'Content-Type': 'multipart/form-data'
}
});
};
/**
* 下载批次数据导入模板
*/
export const downloadBatchTemplate = () => {
return request({
url: '/xg/collectionBatch/importTemplate',
method: 'post',
responseType: 'blob'
});
};
-501
View File
@@ -1,501 +0,0 @@
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[]
}
// 统计分析查询参数
export interface StatisticsAnalysisQuery {
statisticsType?: string
dimension?: string
field?: string
groupBy?: string
conditions?: Record<string, any>
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
}
// 统计配置业务对象
export interface StatisticsConfigBo {
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<Record<string, any>>
total?: number
statisticsTime?: string
fromCache?: boolean
cacheKey?: string
extra?: Record<string, any>
chartConfig?: Record<string, any>
groupData?: Record<string, Array<Record<string, any>>>
summary?: Record<string, any>
}
// 统计报表视图对象
export interface StatisticsReportVo {
reportType?: string
title?: string
description?: string
data?: Array<Record<string, any>>
summary?: Record<string, any>
generateTime?: string
metadata?: {
total: number
conditions: Record<string, any>
}
}
// 统计缓存信息
export interface StatisticsCacheInfo {
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<string, any>
reportType?: string
}
// ========== 统计配置管理API ==========
// 查询统计配置列表
export function listStatisticsConfig(query: StatisticsQuery): AxiosPromise<any> {
return request({
url: '/xg/statisticsConfig/list',
method: 'get',
params: query
})
}
// 获取统计配置详情
export function getStatisticsConfig(id: number): AxiosPromise<StatisticsConfigVo> {
return request({
url: `/xg/statisticsConfig/${id}`,
method: 'get'
})
}
// 新增统计配置
export function addStatisticsConfig(data: StatisticsConfigBo): AxiosPromise<any> {
return request({
url: '/xg/statisticsConfig',
method: 'post',
data: data
})
}
// 修改统计配置
export function updateStatisticsConfig(data: StatisticsConfigBo): AxiosPromise<any> {
return request({
url: '/xg/statisticsConfig',
method: 'put',
data: data
})
}
// 删除统计配置
export function delStatisticsConfig(ids: number[]): AxiosPromise<any> {
return request({
url: `/xg/statisticsConfig/${ids}`,
method: 'delete'
})
}
// 导出统计配置
export function exportStatisticsConfig(query: StatisticsQuery): AxiosPromise<any> {
return request({
url: '/xg/statisticsConfig/export',
method: 'post',
data: query
})
}
// 启用/禁用统计配置
export function changeStatisticsConfigStatus(id: number, status: boolean): AxiosPromise<any> {
return request({
url: `/xg/statisticsConfig/changeStatus`,
method: 'put',
data: { id, isEnabled: status }
})
}
// ========== 统计分析API ==========
// 获取统计概览
export function getStatisticsOverview(): AxiosPromise<any> {
return request({
url: '/xg/statisticsAnalysis/overview',
method: 'get'
})
}
// 按维度统计 - 学院统计
export function getCollegeStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
return request({
url: '/xg/statisticsAnalysis/college',
method: 'get',
params: query
})
}
// 按维度统计 - 专业统计
export function getMajorStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
return request({
url: '/xg/statisticsAnalysis/major',
method: 'get',
params: query
})
}
// 按维度统计 - 班级统计
export function getClassStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
return request({
url: '/xg/statisticsAnalysis/class',
method: 'get',
params: query
})
}
// 按维度统计 - 年级统计
export function getGradeStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
return request({
url: '/xg/statisticsAnalysis/grade',
method: 'get',
params: query
})
}
// 按维度统计 - 性别统计
export function getGenderStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
return request({
url: '/xg/statisticsAnalysis/gender',
method: 'get',
params: query
})
}
// 按维度统计 - 年龄统计
export function getAgeStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
return request({
url: '/xg/statisticsAnalysis/age',
method: 'get',
params: query
})
}
// 按维度统计 - 政治面貌统计
export function getPoliticalStatusStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
return request({
url: '/xg/statisticsAnalysis/political',
method: 'get',
params: query
})
}
// 按维度统计 - 民族统计
export function getNationStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
return request({
url: '/xg/statisticsAnalysis/nation',
method: 'get',
params: query
})
}
// 按维度统计 - 生源地统计
export function getSourceRegionStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
return request({
url: '/xg/statisticsAnalysis/sourceRegion',
method: 'get',
params: query
})
}
// 按维度统计 - 血型统计
export function getBloodTypeStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
return request({
url: '/xg/statisticsAnalysis/bloodType',
method: 'get',
params: query
})
}
// 按维度统计 - 宗教信仰统计
export function getReligionStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
return request({
url: '/xg/statisticsAnalysis/religion',
method: 'get',
params: query
})
}
// 按维度统计 - 学籍状态统计
export function getStudentStatusStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
return request({
url: '/xg/statisticsAnalysis/studentStatus',
method: 'get',
params: query
})
}
// 按维度统计 - 培养方式统计
export function getTrainingTypeStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
return request({
url: '/xg/statisticsAnalysis/trainingType',
method: 'get',
params: query
})
}
// 高级统计 - 身高统计
export function getHeightStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
return request({
url: '/xg/statisticsAnalysis/height',
method: 'get',
params: query
})
}
// 高级统计 - 体重统计
export function getWeightStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
return request({
url: '/xg/statisticsAnalysis/weight',
method: 'get',
params: query
})
}
// 多维度组合统计
export function getMultiDimensionStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
return request({
url: '/xg/statisticsAnalysis/multiDimension',
method: 'post',
data: query
})
}
// 时间趋势统计
export function getTimeTrendStatistics(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
return request({
url: '/xg/statisticsAnalysis/timeTrend',
method: 'get',
params: query
})
}
// ========== 统计报表API ==========
// 生成学生信息汇总报表
export function generateStudentSummaryReport(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsReportVo> {
return request({
url: '/xg/statisticsAnalysis/report/studentSummary',
method: 'post',
data: query
})
}
// 生成班级统计报表
export function generateClassStatisticsReport(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsReportVo> {
return request({
url: '/xg/statisticsAnalysis/report/classStatistics',
method: 'post',
data: query
})
}
// 生成学院统计报表
export function generateCollegeStatisticsReport(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsReportVo> {
return request({
url: '/xg/statisticsAnalysis/report/collegeStatistics',
method: 'post',
data: query
})
}
// 生成困难学生统计报表
export function generateDifficultStudentReport(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsReportVo> {
return request({
url: '/xg/statisticsAnalysis/report/difficultStudent',
method: 'post',
data: query
})
}
// 生成特殊群体统计报表
export function generateSpecialGroupReport(query: StatisticsAnalysisQuery): AxiosPromise<StatisticsReportVo> {
return request({
url: '/xg/statisticsAnalysis/report/specialGroup',
method: 'post',
data: query
})
}
// ========== 统计导出API ==========
// 导出统计结果
export function exportStatisticsResult(query: StatisticsExportQuery): AxiosPromise<any> {
return request({
url: '/xg/statisticsAnalysis/export',
method: 'post',
data: query,
responseType: 'blob'
})
}
// 导出统计报表
export function exportStatisticsReport(query: StatisticsExportQuery): AxiosPromise<any> {
return request({
url: '/xg/statisticsAnalysis/exportReport',
method: 'post',
data: query,
responseType: 'blob'
})
}
// ========== 统计缓存API ==========
// 获取缓存统计信息
export function getCacheStatistics(): AxiosPromise<StatisticsCacheInfo> {
return request({
url: '/xg/statisticsAnalysis/cache/info',
method: 'get'
})
}
// 清空统计缓存
export function clearStatisticsCache(): AxiosPromise<any> {
return request({
url: '/xg/statisticsAnalysis/cache/clear',
method: 'delete'
})
}
// 预热统计缓存
export function warmupStatisticsCache(): AxiosPromise<any> {
return request({
url: '/xg/statisticsAnalysis/cache/warmup',
method: 'post'
})
}
// ========== 辅助API ==========
// 获取统计维度选项
export function getStatisticsDimensionOptions(): AxiosPromise<any> {
return request({
url: '/xg/statisticsAnalysis/dimensionOptions',
method: 'get'
})
}
// 获取图表类型选项
export function getChartTypeOptions(): AxiosPromise<any> {
return request({
url: '/xg/statisticsAnalysis/chartTypeOptions',
method: 'get'
})
}
// 获取学院选项
export function getCollegeOptions(): AxiosPromise<any> {
return request({
url: '/xg/statisticsAnalysis/collegeOptions',
method: 'get'
})
}
// 获取专业选项
export function getMajorOptions(collegeCode?: string): AxiosPromise<any> {
return request({
url: '/xg/statisticsAnalysis/majorOptions',
method: 'get',
params: { collegeCode }
})
}
// 获取班级选项
export function getClassOptions(majorCode?: string): AxiosPromise<any> {
return request({
url: '/xg/statisticsAnalysis/classOptions',
method: 'get',
params: { majorCode }
})
}
// 获取年级选项
export function getGradeOptions(): AxiosPromise<any> {
return request({
url: '/xg/statisticsAnalysis/gradeOptions',
method: 'get'
})
}
// 执行统计配置
export function executeStatisticsConfig(configId: number, query: StatisticsAnalysisQuery): AxiosPromise<StatisticsResultVo> {
return request({
url: `/xg/statisticsAnalysis/executeConfig/${configId}`,
method: 'post',
data: query
})
}
-454
View File
@@ -1,454 +0,0 @@
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
}
// 查询参数类型
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
}
// 统计数据类型
export interface StatisticsData {
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
}
// 查询学生信息列表
export function listStudents(query: StudentQuery): AxiosPromise<any> {
return request({
url: '/xg/studentInfo/list',
method: 'get',
params: query
})
}
// 获取学生信息详情
export function getStudent(id: number): AxiosPromise<StudentInfo> {
return request({
url: `/xg/studentInfo/${id}`,
method: 'get'
})
}
// 根据学号查询学生信息
export function getStudentByNo(studentNo: string): AxiosPromise<StudentInfo> {
return request({
url: `/xg/studentInfo/studentNo/${studentNo}`,
method: 'get'
})
}
// 根据身份证号查询学生信息
export function getStudentByIdCard(idCard: string): AxiosPromise<StudentInfo> {
return request({
url: `/xg/studentInfo/idCard/${idCard}`,
method: 'get'
})
}
// 根据班级代码查询学生列表
export function getStudentsByClass(classCode: string): AxiosPromise<StudentInfo[]> {
return request({
url: `/xg/studentInfo/class/${classCode}`,
method: 'get'
})
}
// 根据学院代码查询学生列表
export function getStudentsByCollege(collegeCode: string): AxiosPromise<StudentInfo[]> {
return request({
url: `/xg/studentInfo/college/${collegeCode}`,
method: 'get'
})
}
// 新增学生信息
export function addStudent(data: StudentInfo): AxiosPromise<any> {
return request({
url: '/xg/studentInfo',
method: 'post',
data: data
})
}
// 修改学生信息
export function updateStudent(data: StudentInfo): AxiosPromise<any> {
return request({
url: '/xg/studentInfo',
method: 'put',
data: data
})
}
// 删除学生信息
export function delStudent(ids: number[]): AxiosPromise<any> {
return request({
url: `/xg/studentInfo/${ids.join(',')}`,
method: 'delete'
})
}
// 导出学生信息
export function exportStudents(query: StudentQuery): AxiosPromise<any> {
return request({
url: '/xg/studentInfo/export',
method: 'post',
data: query,
responseType: 'blob'
})
}
// 批量导入学生信息
export function importStudents(data: any): AxiosPromise<any> {
return request({
url: '/xg/studentInfo/import',
method: 'post',
data: data
})
}
// 获取导入模板
export function getImportTemplate(): AxiosPromise<any> {
return request({
url: '/xg/studentInfo/importTemplate',
method: 'post',
responseType: 'blob'
})
}
// 批量更新学生信息状态
export function batchUpdateInfoStatus(studentIds: number[], infoStatus: string): AxiosPromise<any> {
return request({
url: '/xg/studentInfo/batchUpdateInfoStatus',
method: 'put',
data: { studentIds, infoStatus }
})
}
// 批量更新学生学籍状态
export function batchUpdateStudentStatus(studentIds: number[], studentStatus: string): AxiosPromise<any> {
return request({
url: '/xg/studentInfo/batchUpdateStudentStatus',
method: 'put',
data: { studentIds, studentStatus }
})
}
// 审核学生信息
export function auditStudent(studentId: number, auditStatus: string, auditRemark?: string): AxiosPromise<any> {
return request({
url: `/xg/studentInfo/${studentId}/audit`,
method: 'put',
params: { auditStatus, auditRemark }
})
}
// 批量审核学生信息
export function batchAuditStudents(studentIds: number[], auditStatus: string, auditRemark?: string): AxiosPromise<any> {
return request({
url: '/xg/studentInfo/batchAudit',
method: 'put',
data: { studentIds, auditStatus, auditRemark }
})
}
// ================================
// 统计相关接口
// ================================
// 获取统计概览
export function getStatisticsOverview(): AxiosPromise<StatisticsData> {
return request({
url: '/xg/studentInfo/statistics/overview',
method: 'get'
})
}
// 统计各学院学生数量
export function getCollegeStatistics(): AxiosPromise<any[]> {
return request({
url: '/xg/studentInfo/statistics/college',
method: 'get'
})
}
// 统计各年级学生数量
export function getGradeStatistics(): AxiosPromise<any[]> {
return request({
url: '/xg/studentInfo/statistics/grade',
method: 'get'
})
}
// 统计各专业学生数量
export function getMajorStatistics(): AxiosPromise<any[]> {
return request({
url: '/xg/studentInfo/statistics/major',
method: 'get'
})
}
// 统计学籍状态分布
export function getStudentStatusStatistics(): AxiosPromise<any[]> {
return request({
url: '/xg/studentInfo/statistics/studentStatus',
method: 'get'
})
}
// 统计信息完整度分布
export function getCompletionRateStatistics(): AxiosPromise<any[]> {
return request({
url: '/xg/studentInfo/statistics/completionRate',
method: 'get'
})
}
// 查询信息不完整的学生列表
export function getIncompleteStudents(): AxiosPromise<StudentInfo[]> {
return request({
url: '/xg/studentInfo/incomplete',
method: 'get'
})
}
// 查询待审核的学生列表
export function getPendingAuditStudents(): AxiosPromise<StudentInfo[]> {
return request({
url: '/xg/studentInfo/pendingAudit',
method: 'get'
})
}
// 生成学生信息报表
export function generateReport(reportType: string, params?: any): AxiosPromise<any> {
return request({
url: `/xg/studentInfo/report/${reportType}`,
method: 'get',
params: params
})
}
// ================================
// 选项数据接口
// ================================
// 获取学院选项
export function getCollegeOptions(): AxiosPromise<OptionData[]> {
return request({
url: '/xg/studentInfo/options/colleges',
method: 'get'
})
}
// 获取专业选项
export function getMajorOptions(collegeCode?: string): AxiosPromise<OptionData[]> {
return request({
url: '/xg/studentInfo/options/majors',
method: 'get',
params: { collegeCode }
})
}
// 获取班级选项
export function getClassOptions(majorCode?: string): AxiosPromise<OptionData[]> {
return request({
url: '/xg/studentInfo/options/classes',
method: 'get',
params: { majorCode }
})
}
// 获取辅导员选项
export function getCounselorOptions(): AxiosPromise<OptionData[]> {
return request({
url: '/xg/studentInfo/options/counselors',
method: 'get'
})
}
// 获取班主任选项
export function getClassTeacherOptions(): AxiosPromise<OptionData[]> {
console.log('调用班主任API: /xg/classInfo/teacherOptions')
return request({
url: '/xg/classInfo/teacherOptions',
method: 'get',
headers: {
// 确保请求带有认证信息
'Authorization': 'Bearer ' + getToken(),
'clientid': import.meta.env.VITE_APP_CLIENT_ID
}
})
}
// 检查学号是否存在
export function checkStudentNo(studentNo: string, studentId?: number): AxiosPromise<boolean> {
return request({
url: '/xg/studentInfo/checkStudentNo',
method: 'get',
params: { studentNo, studentId }
})
}
// 检查身份证号是否存在
export function checkIdCard(idCard: string, studentId?: number): AxiosPromise<boolean> {
return request({
url: '/xg/studentInfo/checkIdCard',
method: 'get',
params: { idCard, studentId }
})
}
// 查询重复学号的学生列表
export function getDuplicateStudentNo(): AxiosPromise<any[]> {
return request({
url: '/xg/studentInfo/duplicateStudentNo',
method: 'get'
})
}
// 查询重复身份证号的学生列表
export function getDuplicateIdCard(): AxiosPromise<any[]> {
return request({
url: '/xg/studentInfo/duplicateIdCard',
method: 'get'
})
}
// 更新学生信息完整度
export function updateCompletionRate(studentId: number): AxiosPromise<any> {
return request({
url: `/xg/studentInfo/${studentId}/updateCompletionRate`,
method: 'put'
})
}
-675
View File
@@ -1,675 +0,0 @@
// 学生信息管理模块类型定义
// ========== 信息采集批次管理相关类型 ==========
// 信息采集批次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
// 新增统计字段
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
}
// 信息采集批次查询参数
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
}
// 批次统计信息
export interface BatchStatistics {
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[]
}
// 学院完成度统计
export interface CollegeCompletionStatistics {
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[]
}
// 维度统计项
export interface DimensionStatisticsItem {
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
}
// 学生信息查询参数
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
}
// 学生信息新增/编辑参数
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
}
// 统计数据结构
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
}
// 学院统计数据
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
}
// 年级统计数据
export interface GradeStatistics {
grade?: string
count?: number
maleCount?: number
femaleCount?: number
activeCount?: number
}
// 专业统计数据
export interface MajorStatistics {
majorCode?: string
majorName?: string
count?: number
collegeCode?: string
collegeName?: string
}
// 学籍状态统计数据
export interface StudentStatusStatistics {
studentStatus?: string
count?: number
statusName?: string
}
// 信息完整度统计数据
export interface CompletionRateStatistics {
rateRange?: string
count?: number
percentage?: number
}
// 选项数据结构
export interface OptionItem {
value: string | number
label: string
code?: string
disabled?: boolean
children?: OptionItem[]
[key: string]: any
}
// 学院选项
export interface CollegeOption extends OptionItem {
collegeCode?: string
collegeName?: string
}
// 专业选项
export interface MajorOption extends OptionItem {
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
}
// 教师选项
export interface TeacherOption extends OptionItem {
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
}
// 搜索表单配置
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
}
// 表单配置
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<boolean>
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
}
// 操作按钮配置
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
}
// 统计卡片配置
export interface StatisticsCard {
title: string
value: number | string
icon: string
color: string
trend?: {
type: 'up' | 'down'
value: number | string
label: string
}
action?: {
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[]
}
// 导入配置
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<boolean>
onProgress?: (percent: number) => void
onSuccess?: (response: any) => void
onError?: (error: any) => void
}
// 导出配置
export interface ExportConfig {
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
}
// 审核配置
export interface AuditConfig {
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
}
// 页面配置
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
}
+1 -1
View File
@@ -10,7 +10,7 @@ interface ClassTeacherCounselorRelBo {
teacherName?: string;
counselorId?: number | string;
counselorName?: string;
relationType?: number; // 1:班主任 2:辅导员
relationType?: number; // 1:班主任 2:辅导员
remark?: string;
}
+1 -1
View File
@@ -15,7 +15,7 @@ import request from '@/utils/request';
// export * from './activity' // 活动管理
// 导出学工用户模块API
export * from './sysUser'
export * from './sysUser';
// 临时导出一个空对象,防止编译错误
export default {};
+82 -2
View File
@@ -1,13 +1,12 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { DormBedVO, DormBedForm, DormBedQuery } from '@/api/xg/xgss/dormBed/types';
import { DormBedVO, DormBedForm, DormBedQuery, DormBedDetailVO } from '@/api/xg/xgss/dormBed/types';
/**
* 查询宿舍床位信息列表
* @param query
* @returns {*}
*/
export const listDormBed = (query?: DormBedQuery): AxiosPromise<DormBedVO[]> => {
return request({
url: '/dormbed/dormBed/list',
@@ -61,3 +60,84 @@ export const delDormBed = (id: string | number | Array<string | number>) => {
method: 'delete'
});
};
/**
* 查询指定房间的床位详细信息列表(包含学生信息)
* @param roomId 房间ID
*/
export const getBedDetailsByRoomId = (roomId: string | number): AxiosPromise<DormBedDetailVO[]> => {
return request({
url: '/dormbed/dormBed/details/room/' + roomId,
method: 'get'
});
};
/**
* 查询当前用户所在学院的指定房间床位详细信息列表(包含学生信息)
* @param roomId 房间ID
*/
export const getBedDetailsByRoomIdForCurrentUserCollege = (roomId: string | number): AxiosPromise<DormBedDetailVO[]> => {
return request({
url: '/dormbed/dormBed/details/college/room/' + roomId,
method: 'get'
});
};
/**
* 查询指定宿舍楼的床位详细信息列表(包含学生信息)
* @param buildingId 宿舍楼ID
*/
export const getBedDetailsByBuildingId = (buildingId: string | number): AxiosPromise<DormBedDetailVO[]> => {
return request({
url: '/dormbed/dormBed/details/building/' + buildingId,
method: 'get'
});
};
/**
* 查询指定房间中属于指定班级的床位详细信息列表(包含学生信息)
* @param roomId 房间ID
* @param classId 班级ID
*/
export const getBedDetailsByRoomIdAndClassId = (roomId: string | number, classId: string | number): AxiosPromise<DormBedDetailVO[]> => {
return request({
url: `/dormbed/dormBed/details/room/${roomId}/class/${classId}`,
method: 'get'
});
};
/**
* 批量分配床位给二级学院
* @param data 批量分配参数
*/
export const batchAllocateBedsToCollege = (data: {
bedIds: (string | number)[];
collegeIds: (string | number)[];
collegeStudentCounts?: number[];
buildingId?: string | number;
buildingType?: string;
}) => {
return request({
url: '/dormBedStudent/dormBedStudent/batchAllocate',
method: 'post',
data: data
});
};
/**
* 批量分配床位给班级
* @param data 批量分配给班级参数
*/
export const batchAllocateBedsToClass = (data: {
bedIds: (string | number)[];
classIds: (string | number)[];
classStudentCounts?: number[];
buildingId?: string | number;
buildingType?: string;
}) => {
return request({
url: '/dormBedStudent/dormBedStudent/batchAllocateToClass',
method: 'post',
data: data
});
};
+77 -3
View File
@@ -42,6 +42,83 @@ export interface DormBedVO {
updateTime: Date;
}
/**
* 宿舍床位详细信息对象(包含学生信息)
*/
export interface DormBedDetailVO {
// =============== 床位基本信息 ===============
/** 床位ID */
id: string | number;
/** 床位编号 */
bedCode: string;
/** 床位名称 */
bedName: string;
/** 所属房间ID */
roomId: string | number;
/** 房间名称 */
roomName?: string;
/** 床位类型(1=下铺,2=上铺,3=中铺,4=独立床) */
bedType: string;
/** 床位状态(0=空闲,1=已分配,2=维修中) */
bedStatus: string;
/** 床位备注 */
bedRemark?: string;
// =============== 分配信息 ===============
/** 分配关系ID */
assignmentId?: string | number;
/** 分配时间 */
assignTime?: string;
/** 分配状态(0=正常,1=已退宿) */
assignmentStatus?: string;
// =============== 学院信息 ===============
/** 学院ID */
collegeId?: string | number;
/** 学院名称 */
collegeName?: string;
// =============== 专业信息 ===============
/** 专业ID */
majorId?: string | number;
/** 专业名称 */
majorName?: string;
// =============== 班级信息 ===============
/** 班级ID */
classId?: string | number;
/** 班级名称 */
className?: string;
/** 班级代码 */
classCode?: string;
/** 年级 */
grade?: string;
// =============== 学生信息 ===============
/** 学生ID */
studentId?: string | number;
/** 学号 */
studentNo?: string;
/** 学生姓名 */
studentName?: string;
/** 学生性别(0=男,1=女) */
studentGender?: string;
/** 学生手机号 */
studentPhone?: string;
/** 身份证号 */
studentIdCard?: string;
// =============== 基础字段 ===============
/** 创建者 */
createBy?: number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: number;
/** 更新时间 */
updateTime?: string;
}
/**
* 宿舍床位信息表单对象
*/
@@ -61,6 +138,3 @@ export interface DormBedForm {
/** 备注 */
remark?: string;
}
@@ -0,0 +1,274 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { DormBedStudentVO, DormBedStudentForm, DormBedStudentQuery, DormBuildingTreeVO } from '@/api/xg/xgss/dormBedStudent/dormBedStudent/types';
/**
* 查询床位学生分配关系列表
* @param query
* @returns {*}
*/
export const listDormBedStudent = (query?: DormBedStudentQuery): AxiosPromise<DormBedStudentVO[]> => {
return request({
url: '/dormBedStudent/dormBedStudent/list',
method: 'get',
params: query
});
};
/**
* 查询床位学生分配关系详细
* @param id
*/
export const getDormBedStudent = (id: string | number): AxiosPromise<DormBedStudentVO> => {
return request({
url: '/dormBedStudent/dormBedStudent/' + id,
method: 'get'
});
};
/**
* 新增床位学生分配关系
* @param data
*/
export const addDormBedStudent = (data: DormBedStudentForm) => {
return request({
url: '/dormBedStudent/dormBedStudent',
method: 'post',
data: data
});
};
/**
* 修改床位学生分配关系
* @param data
*/
export const updateDormBedStudent = (data: DormBedStudentForm) => {
return request({
url: '/dormBedStudent/dormBedStudent',
method: 'put',
data: data
});
};
/**
* 删除床位学生分配关系
* @param id
*/
export const delDormBedStudent = (id: string | number | Array<string | number>) => {
return request({
url: '/dormBedStudent/dormBedStudent/' + id,
method: 'delete'
});
};
/**
* 批量收回宿舍床位
*/
export const batchRecallDormBeds = (data: { bedIds: Array<string | number> }) => {
return request({
url: '/dormBedStudent/dormBedStudent/batchRecall',
method: 'post',
data
});
};
/**
* 批量回收班级分配床位(保留学院分配)
*/
export const batchRecallClassAllocation = (data: { bedIds: Array<string | number> }) => {
return request({
url: '/dormBedStudent/dormBedStudent/batchRecallClassAllocation',
method: 'post',
data
});
};
/**
* 获取当前用户二级学院的宿舍楼树形结构
* 校区-宿舍区-宿舍楼三级结构,校区和宿舍区不可选,只有宿舍楼可以选择
*/
export const getCurrentUserCollegeDormTree = (): AxiosPromise<DormBuildingTreeVO[]> => {
return request({
url: '/dormBedStudent/dormBedStudent/currentUserCollegeDormTree',
method: 'get'
});
};
// ============== 班主任分配相关API ==============
/**
* 获取班主任管理的班级宿舍楼树形结构
* 只显示班主任管理班级分配到的宿舍楼
*/
export const getClassTeacherDormTree = (classId?: string | number): AxiosPromise<DormBuildingTreeVO[]> => {
return request({
url: '/dormBedStudent/dormBedStudent/getClassTeacherDormTree',
method: 'get',
params: { classId }
});
};
/**
* 获取班主任管理班级的房间床位详情(带学生信息)
* @param buildingId 宿舍楼ID,为空则查询所有楼栋
*/
export const getClassTeacherBedDetails = (buildingId?: string | number, classId?: string | number): AxiosPromise<any[]> => {
return request({
url: '/dormBedStudent/dormBedStudent/getClassTeacherBedDetails',
method: 'get',
params: { buildingId, classId }
});
};
/**
* 获取班主任管理的未分配床位学生列表
*/
export const getClassTeacherUnallocatedStudents = (classId?: string | number): AxiosPromise<any[]> => {
return request({
url: '/dormBedStudent/dormBedStudent/getClassTeacherUnallocatedStudents',
method: 'get',
params: { classId }
});
};
/**
* 班主任一键随机分配床位
* @param buildingId 宿舍楼ID,为空则全部分配
*/
export const classTeacherRandomAllocation = (buildingId?: string | number, classId?: string | number) => {
return request({
url: '/dormBedStudent/dormBedStudent/classTeacherRandomAllocation',
method: 'post',
params: { buildingId, classId }
});
};
/**
* 班主任一键按学号分配床位
* @param buildingId 宿舍楼ID,为空则全部分配
*/
export const classTeacherStudentNoAllocation = (buildingId?: string | number, classId?: string | number) => {
return request({
url: '/dormBedStudent/dormBedStudent/classTeacherStudentNoAllocation',
method: 'post',
params: { buildingId, classId }
});
};
/**
* 班主任选择性分配床位(弹窗模式)
* @param allocationParams 分配参数 {bedIds: number[], studentIds: number[], allocationType: 'random' | 'studentNo'}
*/
export const classTeacherSelectiveAllocation = (
allocationParams: {
bedIds: Array<string | number>;
studentIds: Array<string | number>;
allocationType: 'random' | 'studentNo';
},
classId?: string | number
) => {
return request({
url: '/dormBedStudent/dormBedStudent/classTeacherSelectiveAllocation',
method: 'post',
data: allocationParams,
params: { classId }
});
};
/**
* 班主任一键收回床位
* @param buildingId 宿舍楼ID,为空则全部收回
*/
export const classTeacherRecallBeds = (buildingId?: string | number, classId?: string | number) => {
return request({
url: '/dormBedStudent/dormBedStudent/classTeacherRecallBeds',
method: 'post',
params: { buildingId, classId }
});
};
/**
* 班主任收回选中床位
* @param bedIds 床位ID数组
* @param classId 班级ID,可为空
*/
export const classTeacherRecallSelectedBeds = (bedIds: number[], classId?: string | number) => {
return request({
url: '/dormBedStudent/dormBedStudent/classTeacherRecallSelectedBeds',
method: 'post',
data: bedIds,
params: { classId }
});
};
/**
* 班主任退宿选中床位
* @param bedIds 床位ID数组
* @param classId 班级ID,可为空
*/
export const classTeacherStayawaySelectedBeds = (bedIds: number[], classId?: string | number) => {
return request({
url: '/dormBedStudent/dormBedStudent/classTeacherStayawaySelectedBeds',
method: 'post',
data: bedIds,
params: { classId }
});
};
/**
* 班主任床位互换
* 将两个有学生的床位进行互换
* @param sourceStudentId 源学生ID
* @param targetStudentId 目标学生ID
* @param classId 班级ID,可为空
*/
export const classTeacherExchangeBeds = (sourceStudentId: string | number, targetStudentId: string | number, classId?: string | number) => {
return request({
url: '/dormBedStudent/dormBedStudent/classTeacherExchangeBeds',
method: 'post',
params: { sourceStudentId, targetStudentId, classId }
});
};
/**
* 班主任床位移动
* 将学生从当前床位移动到指定的空闲床位
* @param sourceStudentId 源学生ID
* @param targetBedId 目标床位ID
* @param classId 班级ID,可为空
*/
export const classTeacherMoveBed = (sourceStudentId: string | number, targetBedId?: string | number, classId?: string | number) => {
return request({
url: '/dormBedStudent/dormBedStudent/classTeacherMoveBed',
method: 'post',
params: { sourceStudentId, targetBedId, classId }
});
};
/**
* 获取班级所有已入住宿舍的学生床位信息
* 包含床位信息(校区名称、宿舍区名称、楼栋名称、房间名称、床位名称)
* 和学生信息(学生姓名、学号、性别)
* @param classId 班级ID,可为空
*/
export const getClassOccupiedBedDetails = (classId?: string | number) => {
return request({
url: '/dormBedStudent/dormBedStudent/getClassOccupiedBedDetails',
method: 'get',
params: { classId }
});
};
/**
* 获取班级所有未安排学生的床位信息
* 包含床位信息(校区名称、宿舍区名称、楼栋名称、房间名称、床位名称)
* @param classId 班级ID,可为空
*/
export const getClassUnoccupiedBedDetails = (classId?: string | number) => {
return request({
url: '/dormBedStudent/dormBedStudent/getClassUnoccupiedBedDetails',
method: 'get',
params: { classId }
});
};
@@ -0,0 +1,265 @@
export interface DormBedStudentVO {
/**
* 主键ID
*/
id: string | number;
/**
* 分配学院ID
*/
collegeId: string | number;
/**
* 分配专业ID
*/
majorId: string | number;
/**
* 分配班级ID
*/
classId: string | number;
/**
* 分配学生ID
*/
studentId: string | number;
/**
* 床位ID
*/
bedId: string | number;
/**
* 房间ID
*/
roomId: string | number;
/**
* 宿舍楼ID
*/
buildingId: string | number;
/**
* 宿舍区ID
*/
areaId: string | number;
/**
* 校区ID
*/
campusId: string | number;
/**
* 状态(0正常 1已退宿)
*/
status: string;
/**
* 分配时间
*/
assignTime: string;
/**
* 退宿时间
*/
checkoutTime: string;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted: string;
/**
* 备注
*/
remark: string;
}
export interface DormBedStudentForm extends BaseEntity {
/**
* 主键ID
*/
id?: string | number;
/**
* 分配学院ID
*/
collegeId?: string | number;
/**
* 分配专业ID
*/
majorId?: string | number;
/**
* 分配班级ID
*/
classId?: string | number;
/**
* 分配学生ID
*/
studentId?: string | number;
/**
* 床位ID
*/
bedId?: string | number;
/**
* 房间ID
*/
roomId?: string | number;
/**
* 宿舍楼ID
*/
buildingId?: string | number;
/**
* 宿舍区ID
*/
areaId?: string | number;
/**
* 校区ID
*/
campusId?: string | number;
/**
* 状态(0正常 1已退宿)
*/
status?: string;
/**
* 分配时间
*/
assignTime?: string;
/**
* 退宿时间
*/
checkoutTime?: string;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: string;
/**
* 备注
*/
remark?: string;
}
export interface DormBedStudentQuery extends PageQuery {
/**
* 分配学院ID
*/
collegeId?: string | number;
/**
* 分配专业ID
*/
majorId?: string | number;
/**
* 分配班级ID
*/
classId?: string | number;
/**
* 分配学生ID
*/
studentId?: string | number;
/**
* 床位ID
*/
bedId?: string | number;
/**
* 房间ID
*/
roomId?: string | number;
/**
* 宿舍楼ID
*/
buildingId?: string | number;
/**
* 宿舍区ID
*/
areaId?: string | number;
/**
* 校区ID
*/
campusId?: string | number;
/**
* 状态(0正常 1已退宿)
*/
status?: string;
/**
* 分配时间
*/
assignTime?: string;
/**
* 退宿时间
*/
checkoutTime?: string;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: string;
/**
* 日期范围参数
*/
params?: any;
}
/**
* 宿舍楼树形结构VO
*/
export interface DormBuildingTreeVO {
/**
* 节点ID
*/
id: string | number;
/**
* 节点名称
*/
label: string;
/**
* 节点类型 (campus:校区, area:宿舍区, building:宿舍楼)
*/
type: string;
/**
* 是否禁用节点(校区和宿舍区节点禁用点击)
*/
disabled?: boolean;
/**
* 宿舍楼层数(仅宿舍楼节点有此字段)
*/
buildingFloors?: number;
/**
* 宿舍楼类型(1男生楼 2女生楼 3混合楼)(仅宿舍楼节点有此字段)
*/
buildingType?: string;
/**
* 子节点
*/
children?: DormBuildingTreeVO[];
}
@@ -0,0 +1,217 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import {
DormHygieneCheckVO,
DormHygieneCheckForm,
DormHygieneCheckQuery,
DormHygieneCheckCompleteForm,
DormHygieneStudentScoreVO,
DormHygieneStudentScoreForm,
DormHygieneStudentScoreQuery
} from '@/api/xg/xgss/dormHygieneCheck/dormHygieneCheck/types';
/**
* 查询宿舍卫生检查列表
* @param query
* @returns {*}
*/
export const listDormHygieneCheck = (query?: DormHygieneCheckQuery): AxiosPromise<DormHygieneCheckVO[]> => {
return request({
url: '/dormHygieneCheck/dormHygieneCheck/list',
method: 'get',
params: query
});
};
/**
* 查询宿舍卫生检查详细
* @param id
*/
export const getDormHygieneCheck = (id: string | number): AxiosPromise<DormHygieneCheckVO> => {
return request({
url: '/dormHygieneCheck/dormHygieneCheck/' + id,
method: 'get'
});
};
/**
* 新增宿舍卫生检查(包含学生评分数据)
* @param data 完整的宿舍卫生检查数据,包含学生评分信息
*/
export const addDormHygieneCheck = (data: DormHygieneCheckCompleteForm) => {
return request({
url: '/dormHygieneCheck/dormHygieneCheck/addWithStudentScores',
method: 'post',
data: data
});
};
/**
* 修改宿舍卫生检查(包含学生评分数据)
* @param data 完整的宿舍卫生检查数据,包含学生评分信息
*/
export const updateDormHygieneCheck = (data: DormHygieneCheckCompleteForm) => {
return request({
url: '/dormHygieneCheck/dormHygieneCheck/updateWithStudentScores',
method: 'put',
data: data
});
};
/**
* 删除宿舍卫生检查
* @param id
*/
export const delDormHygieneCheck = (id: string | number | Array<string | number>) => {
return request({
url: '/dormHygieneCheck/dormHygieneCheck/' + id,
method: 'delete'
});
};
/**
* 查询宿舍卫生检查学生评分列表
* @param query
* @returns {*}
*/
export const listDormHygieneStudentScores = (query?: DormHygieneStudentScoreQuery): AxiosPromise<DormHygieneStudentScoreVO[]> => {
return request({
url: '/dormHygieneCheck/dormHygieneStudentScore/list',
method: 'get',
params: query
});
};
/**
* 查询宿舍卫生检查学生评分详细
* @param id
*/
export const getDormHygieneStudentScore = (id: string | number): AxiosPromise<DormHygieneStudentScoreVO> => {
return request({
url: '/dormHygieneCheck/dormHygieneStudentScore/' + id,
method: 'get'
});
};
/**
* 新增宿舍卫生检查学生评分
* @param data
*/
export const addDormHygieneStudentScore = (data: DormHygieneStudentScoreForm) => {
return request({
url: '/dormHygieneCheck/dormHygieneStudentScore',
method: 'post',
data: data
});
};
/**
* 修改宿舍卫生检查学生评分
* @param data
*/
export const updateDormHygieneStudentScore = (data: DormHygieneStudentScoreForm) => {
return request({
url: '/dormHygieneCheck/dormHygieneStudentScore',
method: 'put',
data: data
});
};
/**
* 删除宿舍卫生检查学生评分
* @param id
*/
export const delDormHygieneStudentScore = (id: string | number | Array<string | number>) => {
return request({
url: '/dormHygieneCheck/dormHygieneStudentScore/' + id,
method: 'delete'
});
};
/**
* 根据卫生检查ID查询学生评分列表
* @param hygieneCheckId 卫生检查ID
* @returns 学生评分列表
*/
export const getStudentScoresByCheckId = (hygieneCheckId: string | number): AxiosPromise<DormHygieneStudentScoreVO[]> => {
return request({
url: '/dormHygieneCheck/dormHygieneStudentScore/getByCheckId/' + hygieneCheckId,
method: 'get'
});
};
/**
* 批量删除指定卫生检查的学生评分记录
* @param hygieneCheckId 卫生检查ID
*/
export const deleteStudentScoresByCheckId = (hygieneCheckId: string | number) => {
return request({
url: '/dormHygieneCheck/dormHygieneStudentScore/deleteByCheckId/' + hygieneCheckId,
method: 'delete'
});
};
/**
* 获取校区选项列表
* @returns 校区选项列表
*/
export const getCampusOptions = (): AxiosPromise<any[]> => {
return request({
url: '/xqxx/dormCampus/list',
method: 'get'
});
};
/**
* 获取指定校区的宿舍区选项列表
* @param campusId 校区ID
* @returns 宿舍区选项列表
*/
export const getAreaOptions = (campusId?: string | number): AxiosPromise<any[]> => {
return request({
url: '/ssqxx/dormArea/list',
method: 'get',
params: campusId ? { campusId } : undefined
});
};
/**
* 获取指定宿舍区的宿舍楼选项列表
* @param areaId 宿舍区ID
* @returns 宿舍楼选项列表
*/
export const getBuildingOptions = (areaId?: string | number): AxiosPromise<any[]> => {
return request({
url: '/sslxx/dormBuilding/list',
method: 'get',
params: areaId ? { areaId } : undefined
});
};
/**
* 获取指定宿舍楼的房间选项列表
* @param buildingId 宿舍楼ID
* @returns 房间选项列表
*/
export const getRoomOptions = (buildingId?: string | number): AxiosPromise<any[]> => {
return request({
url: '/xgss/dormRoom/list',
method: 'get',
params: buildingId ? { buildingId } : undefined
});
};
/**
* 导出宿舍卫生检查数据(包含学生卫生情况)
* @param query 查询条件
* @returns Blob 导出文件数据
*/
export const exportDormHygieneCheck = (query?: DormHygieneCheckQuery) => {
return request({
url: '/dormHygieneCheck/dormHygieneCheck/advancedExport',
method: 'post',
data: query,
responseType: 'blob'
});
};
@@ -0,0 +1,642 @@
export interface DormHygieneCheckVO {
/**
* 主键ID
*/
id: string | number;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted: number;
/**
* 检查标题
*/
checkTitle: string;
/**
* 检查日期
*/
checkDate: string;
/**
* 检查员ID,关联sys_user.id
*/
checkerId: string | number;
/**
* 检查员姓名
*/
checkerName: string;
/**
* 检查类型(1日常检查 2专项检查 3突击检查 4复查)
*/
checkType: string;
/**
* 检查级别(1宿管员 2学院 3学校)
*/
checkLevel: string;
/**
* 宿舍房间ID,关联xg_dorm_room.id
*/
roomId: string | number;
/**
* 房间编号
*/
roomCode: string;
/**
* 房间名称
*/
roomName: string;
/**
* 宿舍楼ID,关联xg_dorm_building.id
*/
buildingId: string | number;
/**
* 宿舍楼名称
*/
buildingName: string;
/**
* 宿舍区ID,关联xg_dorm_area.id
*/
areaId: string | number;
/**
* 宿舍区名称
*/
areaName: string;
/**
* 校区ID,关联xg_dorm_campus.id
*/
campusId: string | number;
/**
* 校区名称
*/
campusName: string;
/**
* 宿舍总分(0-100分)
*/
totalScore: number;
/**
* 卫生等级(A优秀 B良好 C合格 D不合格)
*/
hygieneGrade: string;
/**
* 附件OSS ID列表,逗号分隔
*/
attachmentIds: string | number;
/**
* 检查总结
*/
checkSummary: string;
/**
* 整改建议
*/
improvementSuggestions: string;
/**
* 检查备注
*/
checkRemarks: string;
}
export interface DormHygieneCheckForm extends BaseEntity {
/**
* 主键ID
*/
id?: string | number;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: number;
/**
* 检查标题
*/
checkTitle?: string;
/**
* 检查日期
*/
checkDate?: string;
/**
* 检查员ID,关联sys_user.id
*/
checkerId?: string | number;
/**
* 检查员姓名
*/
checkerName?: string;
/**
* 检查类型(1日常检查 2专项检查 3突击检查 4复查)
*/
checkType?: string;
/**
* 检查级别(1宿管员 2学院 3学校)
*/
checkLevel?: string;
/**
* 宿舍房间ID,关联xg_dorm_room.id
*/
roomId?: string | number;
/**
* 房间编号
*/
roomCode?: string;
/**
* 房间名称
*/
roomName?: string;
/**
* 宿舍楼ID,关联xg_dorm_building.id
*/
buildingId?: string | number;
/**
* 宿舍楼名称
*/
buildingName?: string;
/**
* 宿舍区ID,关联xg_dorm_area.id
*/
areaId?: string | number;
/**
* 宿舍区名称
*/
areaName?: string;
/**
* 校区ID,关联xg_dorm_campus.id
*/
campusId?: string | number;
/**
* 校区名称
*/
campusName?: string;
/**
* 宿舍总分(0-100分)
*/
totalScore?: number;
/**
* 卫生等级(A优秀 B良好 C合格 D不合格)
*/
hygieneGrade?: string;
/**
* 附件OSS ID列表,逗号分隔
*/
attachmentIds?: string | number;
/**
* 检查总结
*/
checkSummary?: string;
/**
* 整改建议
*/
improvementSuggestions?: string;
/**
* 检查备注
*/
checkRemarks?: string;
}
export interface DormHygieneCheckQuery extends PageQuery {
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: number;
/**
* 检查标题
*/
checkTitle?: string;
/**
* 检查日期
*/
checkDate?: string;
/**
* 检查员ID,关联sys_user.id
*/
checkerId?: string | number;
/**
* 检查员姓名
*/
checkerName?: string;
/**
* 检查类型(1日常检查 2专项检查 3突击检查 4复查)
*/
checkType?: string;
/**
* 检查级别(1宿管员 2学院 3学校)
*/
checkLevel?: string;
/**
* 宿舍房间ID,关联xg_dorm_room.id
*/
roomId?: string | number;
/**
* 房间编号
*/
roomCode?: string;
/**
* 房间名称
*/
roomName?: string;
/**
* 宿舍楼ID,关联xg_dorm_building.id
*/
buildingId?: string | number;
/**
* 宿舍楼名称
*/
buildingName?: string;
/**
* 宿舍区ID,关联xg_dorm_area.id
*/
areaId?: string | number;
/**
* 宿舍区名称
*/
areaName?: string;
/**
* 校区ID,关联xg_dorm_campus.id
*/
campusId?: string | number;
/**
* 校区名称
*/
campusName?: string;
/**
* 宿舍总分(0-100分)
*/
totalScore?: number;
/**
* 卫生等级(A优秀 B良好 C合格 D不合格)
*/
hygieneGrade?: string;
/**
* 附件OSS ID列表,逗号分隔
*/
attachmentIds?: string | number;
/**
* 检查总结
*/
checkSummary?: string;
/**
* 整改建议
*/
improvementSuggestions?: string;
/**
* 检查备注
*/
checkRemarks?: string;
/**
* 日期范围参数
*/
params?: any;
}
// 宿舍级联选择相关类型
export interface CampusOptionVO {
id: string | number;
campusName: string;
}
export interface AreaOptionVO {
id: string | number;
areaName: string;
}
export interface BuildingOptionVO {
id: string | number;
buildingName: string;
}
export interface RoomOptionVO {
id: string | number;
roomName: string;
roomCode?: string;
}
// 学生评分相关类型定义
export interface DormHygieneStudentScoreVO {
/**
* 主键ID
*/
id: string | number;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted: number;
/**
* 卫生检查ID,关联xg_dorm_hygiene_check.id
*/
hygieneCheckId: string | number;
/**
* 学生ID,关联xg_student_msg.id
*/
studentId: string | number;
/**
* 学号
*/
studentNo: string;
/**
* 学生姓名
*/
studentName: string;
/**
* 班级ID
*/
classId?: string | number;
/**
* 班级名称
*/
className?: string;
/**
* 专业ID
*/
majorId?: string | number;
/**
* 专业名称
*/
majorName?: string;
/**
* 学院ID
*/
collegeId?: string | number;
/**
* 学院名称
*/
collegeName?: string;
/**
* 床位ID,关联xg_dorm_bed.id
*/
bedId?: string | number;
/**
* 床位编号
*/
bedCode?: string;
/**
* 学生个人得分(0-100分)
*/
studentScore?: number;
/**
* 出勤状态(1在寝 2外出 3请假 4其他)
*/
attendanceStatus: string;
/**
* 学生评级(A优秀 B良好 C合格 D不合格)
*/
studentGrade?: string;
/**
* 是否为寝室长(0否 1是)
*/
isResponsiblePerson?: number;
/**
* 评分备注
*/
scoreRemarks?: string;
/**
* 改进意见
*/
improvementNotes?: string;
}
export interface DormHygieneStudentScoreForm extends BaseEntity {
/**
* 主键ID
*/
id?: string | number;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: number;
/**
* 卫生检查ID,关联xg_dorm_hygiene_check.id
*/
hygieneCheckId?: string | number;
/**
* 学生ID,关联xg_student_msg.id
*/
studentId?: string | number;
/**
* 学号
*/
studentNo?: string;
/**
* 学生姓名
*/
studentName?: string;
/**
* 班级ID
*/
classId?: string | number;
/**
* 班级名称
*/
className?: string;
/**
* 专业ID
*/
majorId?: string | number;
/**
* 专业名称
*/
majorName?: string;
/**
* 学院ID
*/
collegeId?: string | number;
/**
* 学院名称
*/
collegeName?: string;
/**
* 床位ID,关联xg_dorm_bed.id
*/
bedId?: string | number;
/**
* 床位编号
*/
bedCode?: string;
/**
* 学生个人得分(0-100分)
*/
studentScore?: number;
/**
* 出勤状态(1在寝 2外出 3请假 4其他)
*/
attendanceStatus?: string;
/**
* 学生评级(A优秀 B良好 C合格 D不合格)
*/
studentGrade?: string;
/**
* 是否为寝室长(0否 1是)
*/
isResponsiblePerson?: number;
/**
* 评分备注
*/
scoreRemarks?: string;
/**
* 改进意见
*/
improvementNotes?: string;
}
export interface DormHygieneStudentScoreQuery extends PageQuery {
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: number;
/**
* 卫生检查ID,关联xg_dorm_hygiene_check.id
*/
hygieneCheckId?: string | number;
/**
* 学生ID,关联xg_student_msg.id
*/
studentId?: string | number;
/**
* 学号
*/
studentNo?: string;
/**
* 学生姓名
*/
studentName?: string;
/**
* 班级ID
*/
classId?: string | number;
/**
* 专业ID
*/
majorId?: string | number;
/**
* 学院ID
*/
collegeId?: string | number;
/**
* 床位ID,关联xg_dorm_bed.id
*/
bedId?: string | number;
/**
* 出勤状态(1在寝 2外出 3请假 4其他)
*/
attendanceStatus?: string;
/**
* 学生评级(A优秀 B良好 C合格 D不合格)
*/
studentGrade?: string;
}
// 宿舍卫生检查完整表单类型(包含学生评分数据)
export interface DormHygieneCheckCompleteForm extends DormHygieneCheckForm {
/**
* 学生评分数据列表
*/
studentScores?: DormHygieneStudentScoreForm[];
}
@@ -0,0 +1,67 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import {
DormHygieneStudentScoreVO,
DormHygieneStudentScoreForm,
DormHygieneStudentScoreQuery
} from '@/api/xg/xgss/dormHygieneStudentScore/dormHygieneStudentScore/types';
/**
* 查询宿舍卫生检查学生评分列表
* @param query
* @returns {*}
*/
export const listDormHygieneStudentScore = (query?: DormHygieneStudentScoreQuery): AxiosPromise<DormHygieneStudentScoreVO[]> => {
return request({
url: '/dormHygieneStudentScore/dormHygieneStudentScore/list',
method: 'get',
params: query
});
};
/**
* 查询宿舍卫生检查学生评分详细
* @param id
*/
export const getDormHygieneStudentScore = (id: string | number): AxiosPromise<DormHygieneStudentScoreVO> => {
return request({
url: '/dormHygieneStudentScore/dormHygieneStudentScore/' + id,
method: 'get'
});
};
/**
* 新增宿舍卫生检查学生评分
* @param data
*/
export const addDormHygieneStudentScore = (data: DormHygieneStudentScoreForm) => {
return request({
url: '/dormHygieneStudentScore/dormHygieneStudentScore',
method: 'post',
data: data
});
};
/**
* 修改宿舍卫生检查学生评分
* @param data
*/
export const updateDormHygieneStudentScore = (data: DormHygieneStudentScoreForm) => {
return request({
url: '/dormHygieneStudentScore/dormHygieneStudentScore',
method: 'put',
data: data
});
};
/**
* 删除宿舍卫生检查学生评分
* @param id
*/
export const delDormHygieneStudentScore = (id: string | number | Array<string | number>) => {
return request({
url: '/dormHygieneStudentScore/dormHygieneStudentScore/' + id,
method: 'delete'
});
};
@@ -0,0 +1,305 @@
export interface DormHygieneStudentScoreVO {
/**
* 主键ID
*/
id: string | number;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted: number;
/**
* 卫生检查ID,关联xg_dorm_hygiene_check.id
*/
hygieneCheckId: string | number;
/**
* 学生ID,关联xg_student_msg.id
*/
studentId: string | number;
/**
* 学号
*/
studentNo: string;
/**
* 学生姓名
*/
studentName: string;
/**
* 班级ID
*/
classId: string | number;
/**
* 班级名称
*/
className: string;
/**
* 专业ID
*/
majorId: string | number;
/**
* 专业名称
*/
majorName: string;
/**
* 学院ID
*/
collegeId: string | number;
/**
* 学院名称
*/
collegeName: string;
/**
* 床位ID,关联xg_dorm_bed.id
*/
bedId: string | number;
/**
* 床位编号
*/
bedCode: string;
/**
* 学生个人得分(0-100分)
*/
studentScore: number;
/**
* 是否在寝(1在寝 2外出 3请假 4其他)
*/
attendanceStatus: string;
/**
* 学生评级(A优秀 B良好 C合格 D不合格)
*/
studentGrade: string;
/**
* 是否为寝室长(0否 1是)
*/
isResponsiblePerson: number;
/**
* 评分备注
*/
scoreRemarks: string;
/**
* 改进意见
*/
improvementNotes: string;
}
export interface DormHygieneStudentScoreForm extends BaseEntity {
/**
* 主键ID
*/
id?: string | number;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: number;
/**
* 卫生检查ID,关联xg_dorm_hygiene_check.id
*/
hygieneCheckId?: string | number;
/**
* 学生ID,关联xg_student_msg.id
*/
studentId?: string | number;
/**
* 学号
*/
studentNo?: string;
/**
* 学生姓名
*/
studentName?: string;
/**
* 班级ID
*/
classId?: string | number;
/**
* 班级名称
*/
className?: string;
/**
* 专业ID
*/
majorId?: string | number;
/**
* 专业名称
*/
majorName?: string;
/**
* 学院ID
*/
collegeId?: string | number;
/**
* 学院名称
*/
collegeName?: string;
/**
* 床位ID,关联xg_dorm_bed.id
*/
bedId?: string | number;
/**
* 床位编号
*/
bedCode?: string;
/**
* 学生个人得分(0-100分)
*/
studentScore?: number;
/**
* 是否在寝(1在寝 2外出 3请假 4其他)
*/
attendanceStatus?: string;
/**
* 学生评级(A优秀 B良好 C合格 D不合格)
*/
studentGrade?: string;
/**
* 是否为寝室长(0否 1是)
*/
isResponsiblePerson?: number;
/**
* 评分备注
*/
scoreRemarks?: string;
/**
* 改进意见
*/
improvementNotes?: string;
}
export interface DormHygieneStudentScoreQuery extends PageQuery {
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: number;
/**
* 卫生检查ID,关联xg_dorm_hygiene_check.id
*/
hygieneCheckId?: string | number;
/**
* 学生ID,关联xg_student_msg.id
*/
studentId?: string | number;
/**
* 学号
*/
studentNo?: string;
/**
* 学生姓名
*/
studentName?: string;
/**
* 班级ID
*/
classId?: string | number;
/**
* 班级名称
*/
className?: string;
/**
* 专业ID
*/
majorId?: string | number;
/**
* 专业名称
*/
majorName?: string;
/**
* 学院ID
*/
collegeId?: string | number;
/**
* 学院名称
*/
collegeName?: string;
/**
* 床位ID,关联xg_dorm_bed.id
*/
bedId?: string | number;
/**
* 床位编号
*/
bedCode?: string;
/**
* 学生个人得分(0-100分)
*/
studentScore?: number;
/**
* 是否在寝(1在寝 2外出 3请假 4其他)
*/
attendanceStatus?: string;
/**
* 学生评级(A优秀 B良好 C合格 D不合格)
*/
studentGrade?: string;
/**
* 是否为寝室长(0否 1是)
*/
isResponsiblePerson?: number;
/**
* 评分备注
*/
scoreRemarks?: string;
/**
* 改进意见
*/
improvementNotes?: string;
/**
* 日期范围参数
*/
params?: any;
}
+39
View File
@@ -16,6 +16,19 @@ export const listDormRoom = (query?: DormRoomQuery): AxiosPromise<DormRoomVO[]>
});
};
/**
* 查询当前用户所在学院的宿舍房间信息列表
* @param query
* @returns {*}
*/
export const listDormRoomForCurrentUserCollege = (query?: DormRoomQuery): AxiosPromise<DormRoomVO[]> => {
return request({
url: '/xgss/dormRoom/college/list',
method: 'get',
params: query
});
};
/**
* 查询宿舍房间信息详细
* @param id
@@ -51,6 +64,32 @@ export const updateDormRoom = (data: DormRoomForm) => {
});
};
/**
* 查询指定班级的宿舍房间信息列表
* @param classId 班级ID
* @param query 查询条件
* @returns {*}
*/
export const listDormRoomByClassId = (classId: string | number, query?: DormRoomQuery): AxiosPromise<DormRoomVO[]> => {
return request({
url: `/xgss/dormRoom/class/${classId}/list`,
method: 'get',
params: query
});
};
/**
* 查询指定房间的床位详细信息列表(包含学生信息)
* @param roomId 房间ID
* @returns {*}
*/
export const getDormBedDetailsByRoomId = (roomId: string | number): AxiosPromise<any[]> => {
return request({
url: `/dormbed/dormBed/details/room/${roomId}`,
method: 'get'
});
};
/**
* 删除宿舍房间信息
* @param id
@@ -0,0 +1,167 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import {
DormViolationVO,
DormViolationForm,
DormViolationQuery,
StudentOptionVO,
StudentOptionQuery,
CampusOptionVO,
AreaOptionVO,
BuildingOptionVO,
RoomOptionVO,
BedOptionVO
} from '@/api/xg/xgss/dormViolation/dormViolation/types';
/**
* 查询宿舍违纪记录列表
* @param query
* @returns {*}
*/
export const listDormViolation = (query?: DormViolationQuery): AxiosPromise<DormViolationVO[]> => {
return request({
url: '/dormViolation/dormViolation/list',
method: 'get',
params: query
});
};
/**
* 查询宿舍违纪记录详细
* @param id
*/
export const getDormViolation = (id: string | number): AxiosPromise<DormViolationVO> => {
return request({
url: '/dormViolation/dormViolation/' + id,
method: 'get'
});
};
/**
* 新增宿舍违纪记录
* @param data
*/
export const addDormViolation = (data: DormViolationForm) => {
return request({
url: '/dormViolation/dormViolation',
method: 'post',
data: data
});
};
/**
* 修改宿舍违纪记录
* @param data
*/
export const updateDormViolation = (data: DormViolationForm) => {
return request({
url: '/dormViolation/dormViolation',
method: 'put',
data: data
});
};
/**
* 删除宿舍违纪记录
* @param id
*/
export const delDormViolation = (id: string | number | Array<string | number>) => {
return request({
url: '/dormViolation/dormViolation/' + id,
method: 'delete'
});
};
/**
* 获取学生选择器选项列表(支持按学号、姓名检索)
* @param query 查询参数
* @returns 学生选项列表
*/
export const getStudentOptions = (
query?: StudentOptionQuery
): AxiosPromise<{
total: number;
rows: StudentOptionVO[];
}> => {
return request({
url: '/dormViolation/dormViolation/studentOptions',
method: 'get',
params: query
});
};
/**
* 获取校区选项列表
* @returns 校区选项列表
*/
export const getCampusOptions = (): AxiosPromise<any[]> => {
return request({
url: '/xqxx/dormCampus/list',
method: 'get'
});
};
/**
* 获取指定校区的宿舍区选项列表
* @param campusId 校区ID
* @returns 宿舍区选项列表
*/
export const getAreaOptions = (campusId?: string | number): AxiosPromise<any[]> => {
return request({
url: '/ssqxx/dormArea/list',
method: 'get',
params: campusId ? { campusId } : undefined
});
};
/**
* 获取指定宿舍区的宿舍楼选项列表
* @param areaId 宿舍区ID
* @returns 宿舍楼选项列表
*/
export const getBuildingOptions = (areaId?: string | number): AxiosPromise<any[]> => {
return request({
url: '/sslxx/dormBuilding/list',
method: 'get',
params: areaId ? { areaId } : undefined
});
};
/**
* 获取指定宿舍楼的房间选项列表
* @param buildingId 宿舍楼ID
* @returns 房间选项列表
*/
export const getRoomOptions = (buildingId?: string | number): AxiosPromise<any[]> => {
return request({
url: '/xgss/dormRoom/list',
method: 'get',
params: buildingId ? { buildingId } : undefined
});
};
/**
* 获取指定房间的床位选项列表
* @param roomId 房间ID
* @returns 床位选项列表
*/
export const getBedOptions = (roomId?: string | number): AxiosPromise<any[]> => {
return request({
url: '/dormbed/dormBed/list',
method: 'get',
params: roomId ? { roomId } : undefined
});
};
/**
* 根据学生ID获取学生详细信息
* @param studentId 学生ID
* @returns 学生详细信息
*/
export const getStudentById = (studentId: string | number): AxiosPromise<StudentOptionVO> => {
return request({
url: `/dormViolation/dormViolation/student/${studentId}`,
method: 'get'
});
};
@@ -0,0 +1,477 @@
export interface DormViolationVO {
/**
* 违纪记录ID(主键)
*/
id: string | number;
/**
* 学生ID
*/
studentId: string | number;
/**
* 学生姓名
*/
studentName: string;
/**
* 学号
*/
studentNo: string;
/**
* 学院ID
*/
collegeId: string | number;
/**
* 学院名称
*/
collegeName: string;
/**
* 专业ID
*/
majorId: string | number;
/**
* 专业名称
*/
majorName: string;
/**
* 班级ID
*/
classId: string | number;
/**
* 班级名称
*/
className: string;
/**
* 校区ID
*/
campusId: string | number;
/**
* 校区名称
*/
campusName: string;
/**
* 宿舍区域ID
*/
areaId: string | number;
/**
* 宿舍区域名称
*/
areaName: string;
/**
* 宿舍楼ID
*/
buildingId: string | number;
/**
* 宿舍楼名称
*/
buildingName: string;
/**
* 宿舍房间ID
*/
roomId: string | number;
/**
* 房间名称
*/
roomName: string;
/**
* 床位ID
*/
bedId: string | number;
/**
* 床位名称
*/
bedName: string;
/**
* 违纪类型
*/
violationType: string;
/**
* 违纪等级:1轻微 2一般 3严重 4特别严重
*/
violationLevel: string;
/**
* 违纪发生时间
*/
violationTime: string;
/**
* 违纪行为描述
*/
violationDescription: string;
/**
* 涉及其他学生id(逗号分隔)
*/
involvedStudents: string;
/**
* 附件OSS ID列表(逗号分隔)
*/
attachmentOssIds: string | number;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted: string;
/**
* 备注
*/
remark: string;
}
export interface DormViolationForm extends BaseEntity {
/**
* 违纪记录ID(主键)
*/
id?: string | number;
/**
* 学生ID
*/
studentId?: string | number;
/**
* 学生姓名
*/
studentName?: string;
/**
* 学号
*/
studentNo?: string;
/**
* 学院ID
*/
collegeId?: string | number;
/**
* 学院名称
*/
collegeName?: string;
/**
* 专业ID
*/
majorId?: string | number;
/**
* 专业名称
*/
majorName?: string;
/**
* 班级ID
*/
classId?: string | number;
/**
* 班级名称
*/
className?: string;
/**
* 校区ID
*/
campusId?: string | number;
/**
* 校区名称
*/
campusName?: string;
/**
* 宿舍区域ID
*/
areaId?: string | number;
/**
* 宿舍区域名称
*/
areaName?: string;
/**
* 宿舍楼ID
*/
buildingId?: string | number;
/**
* 宿舍楼名称
*/
buildingName?: string;
/**
* 宿舍房间ID
*/
roomId?: string | number;
/**
* 房间名称
*/
roomName?: string;
/**
* 床位ID
*/
bedId?: string | number;
/**
* 床位名称
*/
bedName?: string;
/**
* 违纪类型
*/
violationType?: string;
/**
* 违纪等级:1轻微 2一般 3严重 4特别严重
*/
violationLevel?: string;
/**
* 违纪发生时间
*/
violationTime?: string;
/**
* 违纪行为描述
*/
violationDescription?: string;
/**
* 涉及其他学生id(逗号分隔)或数组
*/
involvedStudents?: string | (string | number)[];
/**
* 附件OSS ID列表(逗号分隔)
*/
attachmentOssIds?: string | number;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: string;
/**
* 备注
*/
remark?: string;
}
export interface DormViolationQuery extends PageQuery {
/**
* 学生ID
*/
studentId?: string | number;
/**
* 学生姓名
*/
studentName?: string;
/**
* 学号
*/
studentNo?: string;
/**
* 学院ID
*/
collegeId?: string | number;
/**
* 学院名称
*/
collegeName?: string;
/**
* 专业ID
*/
majorId?: string | number;
/**
* 专业名称
*/
majorName?: string;
/**
* 班级ID
*/
classId?: string | number;
/**
* 班级名称
*/
className?: string;
/**
* 校区ID
*/
campusId?: string | number;
/**
* 校区名称
*/
campusName?: string;
/**
* 宿舍区域ID
*/
areaId?: string | number;
/**
* 宿舍区域名称
*/
areaName?: string;
/**
* 宿舍楼ID
*/
buildingId?: string | number;
/**
* 宿舍楼名称
*/
buildingName?: string;
/**
* 宿舍房间ID
*/
roomId?: string | number;
/**
* 房间名称
*/
roomName?: string;
/**
* 床位ID
*/
bedId?: string | number;
/**
* 床位名称
*/
bedName?: string;
/**
* 违纪类型
*/
violationType?: string;
/**
* 违纪等级:1轻微 2一般 3严重 4特别严重
*/
violationLevel?: string;
/**
* 违纪发生时间
*/
violationTime?: string;
/**
* 违纪行为描述
*/
violationDescription?: string;
/**
* 涉及其他学生id(逗号分隔)
*/
involvedStudents?: string;
/**
* 附件OSS ID列表(逗号分隔)
*/
attachmentOssIds?: string | number;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: string;
/**
* 日期范围参数
*/
params?: any;
}
// 学生选择相关类型
export interface StudentOptionVO {
id: string | number;
name: string;
studentNo: string;
gender: string;
collegeId?: string | number;
collegeName?: string;
majorId?: string | number;
majorName?: string;
classId?: string | number;
className?: string;
phone?: string;
dormInfo?: {
campusId?: string | number;
campusName?: string;
areaId?: string | number;
areaName?: string;
buildingId?: string | number;
buildingName?: string;
roomId?: string | number;
roomName?: string;
bedId?: string | number;
bedName?: string;
};
}
export interface StudentOptionQuery extends PageQuery {
keyword?: string;
}
// 宿舍级联选择相关类型
export interface CampusOptionVO {
id: string | number;
campusName: string;
}
export interface AreaOptionVO {
id: string | number;
areaName: string;
}
export interface BuildingOptionVO {
id: string | number;
buildingName: string;
}
export interface RoomOptionVO {
id: string | number;
roomName: string;
}
export interface BedOptionVO {
id: string | number;
bedName: string;
}
@@ -0,0 +1,144 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { HolidayStayVO, HolidayStayForm, HolidayStayQuery, StudentOptionVO, StudentOptionQuery } from '@/api/xg/xgss/holidayStay/holidayStay/types';
/**
* 查询假期留宿管理列表
* @param query
* @returns {*}
*/
export const listHolidayStay = (query?: HolidayStayQuery): AxiosPromise<HolidayStayVO[]> => {
return request({
url: '/holidayStay/holidayStay/list',
method: 'get',
params: query
});
};
/**
* 查询假期留宿管理详细
* @param id
*/
export const getHolidayStay = (id: string | number): AxiosPromise<HolidayStayVO> => {
return request({
url: '/holidayStay/holidayStay/' + id,
method: 'get'
});
};
/**
* 新增假期留宿管理
* @param data
*/
export const addHolidayStay = (data: HolidayStayForm) => {
return request({
url: '/holidayStay/holidayStay',
method: 'post',
data: data
});
};
/**
* 修改假期留宿管理
* @param data
*/
export const updateHolidayStay = (data: HolidayStayForm) => {
return request({
url: '/holidayStay/holidayStay',
method: 'put',
data: data
});
};
/**
* 删除假期留宿管理
* @param id
*/
export const delHolidayStay = (id: string | number | Array<string | number>) => {
return request({
url: '/holidayStay/holidayStay/' + id,
method: 'delete'
});
};
/**
* 获取学生选择器选项列表(支持按学号、姓名检索)
* @param query 查询参数
* @returns 学生选项列表
*/
export const getStudentOptions = (
query?: StudentOptionQuery
): AxiosPromise<{
total: number;
rows: StudentOptionVO[];
}> => {
return request({
url: '/holidayStay/holidayStay/studentOptions',
method: 'get',
params: query
});
};
/**
* 获取校区选项列表
* @returns 校区选项列表
*/
export const getCampusOptions = (): AxiosPromise<any[]> => {
return request({
url: '/xqxx/dormCampus/list',
method: 'get'
});
};
/**
* 获取指定校区的宿舍区选项列表
* @param campusId 校区ID
* @returns 宿舍区选项列表
*/
export const getAreaOptions = (campusId?: string | number): AxiosPromise<any[]> => {
return request({
url: '/ssqxx/dormArea/list',
method: 'get',
params: campusId ? { campusId } : undefined
});
};
/**
* 获取指定宿舍区的宿舍楼选项列表
* @param areaId 宿舍区ID
* @returns 宿舍楼选项列表
*/
export const getBuildingOptions = (areaId?: string | number): AxiosPromise<any[]> => {
return request({
url: '/sslxx/dormBuilding/list',
method: 'get',
params: areaId ? { areaId } : undefined
});
};
/**
* 获取指定宿舍楼的房间选项列表
* @param buildingId 宿舍楼ID
* @returns 房间选项列表
*/
export const getRoomOptions = (buildingId?: string | number): AxiosPromise<any[]> => {
return request({
url: '/xgss/dormRoom/list',
method: 'get',
params: buildingId ? { buildingId } : undefined
});
};
/**
* 获取指定房间的床位选项列表
* @param roomId 房间ID
* @returns 床位选项列表
*/
export const getBedOptions = (roomId?: string | number): AxiosPromise<any[]> => {
return request({
url: '/dormbed/dormBed/list',
method: 'get',
params: roomId ? { roomId } : undefined
});
};
@@ -0,0 +1,751 @@
export interface HolidayStayVO {
/**
* 主键ID
*/
id: string | number;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted: number;
/**
* 学生ID,关联xg_student_msg.id
*/
studentId: string | number;
/**
* 学生姓名
*/
studentName: string;
/**
* 学号
*/
studentNo: string;
/**
* 班级ID
*/
classId: string | number;
/**
* 班级名称
*/
className: string;
/**
* 专业ID
*/
majorId: string | number;
/**
* 专业名称
*/
majorName: string;
/**
* 学院ID
*/
collegeId: string | number;
/**
* 学院名称
*/
collegeName: string;
/**
* 校区ID,关联xg_dorm_campus.id
*/
campusId: string | number;
/**
* 校区名称
*/
campusName: string;
/**
* 宿舍区ID,关联xg_dorm_area.id
*/
areaId: string | number;
/**
* 宿舍区名称
*/
areaName: string;
/**
* 宿舍楼ID,关联xg_dorm_building.id
*/
buildingId: string | number;
/**
* 宿舍楼名称
*/
buildingName: string;
/**
* 房间ID,关联xg_dorm_room.id
*/
roomId: string | number;
/**
* 房间名称
*/
roomName: string;
/**
* 床位ID,关联xg_dorm_bed.id
*/
bedId: string | number;
/**
* 床位名称
*/
bedName: string;
/**
* 假期类型(寒假、暑假、春节假期、国庆假期等)
*/
holidayType: string | number;
/**
* 申请留宿开始日期
*/
applyStartDate: string;
/**
* 申请留宿结束日期
*/
applyEndDate: string;
/**
* 留宿原因(必填)
*/
stayReason: string;
/**
* 留宿原因类型(学习、实习、家庭困难、其他)
*/
stayReasonType: string;
/**
* 学生联系电话
*/
studentPhone: string;
/**
* 紧急联系人姓名
*/
emergencyContact: string;
/**
* 紧急联系人电话
*/
emergencyPhone: string;
/**
* 家长同意(0否 1是)
*/
parentConsent: string;
/**
* 附件OSS文件ID,多个用逗号分隔(申请材料、证明文件等)
*/
attachmentOssIds: string | number;
/**
* 扩展字段1
*/
extField1: string;
/**
* 扩展字段2
*/
extField2: string;
/**
* 扩展字段3
*/
extField3: string;
/**
* 备注信息
*/
remark: string;
}
export interface HolidayStayForm extends BaseEntity {
/**
* 主键ID
*/
id?: string | number;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: number;
/**
* 学生ID,关联xg_student_msg.id
*/
studentId?: string | number;
/**
* 学生姓名
*/
studentName?: string;
/**
* 学号
*/
studentNo?: string;
/**
* 班级ID
*/
classId?: string | number;
/**
* 班级名称
*/
className?: string;
/**
* 专业ID
*/
majorId?: string | number;
/**
* 专业名称
*/
majorName?: string;
/**
* 学院ID
*/
collegeId?: string | number;
/**
* 学院名称
*/
collegeName?: string;
/**
* 校区ID,关联xg_dorm_campus.id
*/
campusId?: string | number;
/**
* 校区名称
*/
campusName?: string;
/**
* 宿舍区ID,关联xg_dorm_area.id
*/
areaId?: string | number;
/**
* 宿舍区名称
*/
areaName?: string;
/**
* 宿舍楼ID,关联xg_dorm_building.id
*/
buildingId?: string | number;
/**
* 宿舍楼名称
*/
buildingName?: string;
/**
* 房间ID,关联xg_dorm_room.id
*/
roomId?: string | number;
/**
* 房间名称
*/
roomName?: string;
/**
* 床位ID,关联xg_dorm_bed.id
*/
bedId?: string | number;
/**
* 床位名称
*/
bedName?: string;
/**
* 假期类型(寒假、暑假、春节假期、国庆假期等)
*/
holidayType?: string | number;
/**
* 申请留宿开始日期
*/
applyStartDate?: string;
/**
* 申请留宿结束日期
*/
applyEndDate?: string;
/**
* 留宿原因(必填)
*/
stayReason?: string;
/**
* 留宿原因类型(学习、实习、家庭困难、其他)
*/
stayReasonType?: string;
/**
* 学生联系电话
*/
studentPhone?: string;
/**
* 紧急联系人姓名
*/
emergencyContact?: string;
/**
* 紧急联系人电话
*/
emergencyPhone?: string;
/**
* 家长同意(0否 1是)
*/
parentConsent?: string;
/**
* 附件OSS文件ID,多个用逗号分隔(申请材料、证明文件等)
*/
attachmentOssIds?: string | number;
/**
* 扩展字段1
*/
extField1?: string;
/**
* 扩展字段2
*/
extField2?: string;
/**
* 扩展字段3
*/
extField3?: string;
/**
* 备注信息
*/
remark?: string;
}
export interface HolidayStayQuery extends PageQuery {
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: number;
/**
* 学生ID,关联xg_student_msg.id
*/
studentId?: string | number;
/**
* 学生姓名
*/
studentName?: string;
/**
* 学号
*/
studentNo?: string;
/**
* 班级ID
*/
classId?: string | number;
/**
* 班级名称
*/
className?: string;
/**
* 专业ID
*/
majorId?: string | number;
/**
* 专业名称
*/
majorName?: string;
/**
* 学院ID
*/
collegeId?: string | number;
/**
* 学院名称
*/
collegeName?: string;
/**
* 校区ID,关联xg_dorm_campus.id
*/
campusId?: string | number;
/**
* 校区名称
*/
campusName?: string;
/**
* 宿舍区ID,关联xg_dorm_area.id
*/
areaId?: string | number;
/**
* 宿舍区名称
*/
areaName?: string;
/**
* 宿舍楼ID,关联xg_dorm_building.id
*/
buildingId?: string | number;
/**
* 宿舍楼名称
*/
buildingName?: string;
/**
* 房间ID,关联xg_dorm_room.id
*/
roomId?: string | number;
/**
* 房间名称
*/
roomName?: string;
/**
* 床位ID,关联xg_dorm_bed.id
*/
bedId?: string | number;
/**
* 床位名称
*/
bedName?: string;
/**
* 假期类型(寒假、暑假、春节假期、国庆假期等)
*/
holidayType?: string | number;
/**
* 申请留宿开始日期
*/
applyStartDate?: string;
/**
* 申请留宿结束日期
*/
applyEndDate?: string;
/**
* 留宿原因(必填)
*/
stayReason?: string;
/**
* 留宿原因类型(学习、实习、家庭困难、其他)
*/
stayReasonType?: string;
/**
* 学生联系电话
*/
studentPhone?: string;
/**
* 紧急联系人姓名
*/
emergencyContact?: string;
/**
* 紧急联系人电话
*/
emergencyPhone?: string;
/**
* 家长同意(0否 1是)
*/
parentConsent?: string;
/**
* 附件OSS文件ID,多个用逗号分隔(申请材料、证明文件等)
*/
attachmentOssIds?: string | number;
/**
* 扩展字段1
*/
extField1?: string;
/**
* 扩展字段2
*/
extField2?: string;
/**
* 扩展字段3
*/
extField3?: string;
/**
* 状态过滤(valid-有效,invalid-失效)
*/
status?: string;
/**
* 日期范围参数
*/
params?: any;
}
/**
* 学生选择器选项
*/
export interface StudentOptionVO {
/**
* 学生ID
*/
id: string | number;
/**
* 学号
*/
studentNo: string;
/**
* 学生姓名
*/
name: string;
/**
* 性别:0-男,1-女
*/
gender: string;
/**
* 学院ID
*/
collegeId?: string | number;
/**
* 学院名称
*/
collegeName?: string;
/**
* 专业ID
*/
majorId?: string | number;
/**
* 专业名称
*/
majorName?: string;
/**
* 班级ID
*/
classId?: string | number;
/**
* 班级名称
*/
className?: string;
/**
* 学生联系电话
*/
phone?: string;
/**
* 宿舍信息
*/
dormInfo?: {
campusId?: string | number;
campusName?: string;
areaId?: string | number;
areaName?: string;
buildingId?: string | number;
buildingName?: string;
roomId?: string | number;
roomName?: string;
bedId?: string | number;
bedName?: string;
};
}
/**
* 学生选择器查询参数
*/
export interface StudentOptionQuery {
/**
* 搜索关键字(学号或姓名)
*/
keyword?: string;
/**
* 页码
*/
pageNum?: number;
/**
* 每页大小
*/
pageSize?: number;
}
/**
* 校区选项
*/
export interface CampusOptionVO {
/**
* 校区ID
*/
id: string | number;
/**
* 校区名称
*/
campusName: string;
/**
* 校区编码
*/
campusCode?: string;
}
/**
* 宿舍区选项
*/
export interface AreaOptionVO {
/**
* 宿舍区ID
*/
id: string | number;
/**
* 宿舍区名称
*/
areaName: string;
/**
* 校区ID
*/
campusId: string | number;
/**
* 校区名称
*/
campusName?: string;
}
/**
* 宿舍楼选项
*/
export interface BuildingOptionVO {
/**
* 宿舍楼ID
*/
id: string | number;
/**
* 宿舍楼名称
*/
buildingName: string;
/**
* 宿舍区ID
*/
areaId: string | number;
/**
* 宿舍区名称
*/
areaName?: string;
}
/**
* 房间选项
*/
export interface RoomOptionVO {
/**
* 房间ID
*/
id: string | number;
/**
* 房间名称
*/
roomName: string;
/**
* 宿舍楼ID
*/
buildingId: string | number;
/**
* 宿舍楼名称
*/
buildingName?: string;
}
/**
* 床位选项
*/
export interface BedOptionVO {
/**
* 床位ID
*/
id: string | number;
/**
* 床位名称
*/
bedName: string;
/**
* 房间ID
*/
roomId: string | number;
/**
* 房间名称
*/
roomName?: string;
/**
* 床位状态(0-空闲,1-已分配,2-已入住)
*/
bedStatus?: string;
}
+7 -1
View File
@@ -17,10 +17,16 @@ export interface DormTreeNode {
id: string | number;
label: string;
children?: DormTreeNode[];
type: 'campus' | 'area' | 'building'; // 节点类型:校区、宿舍区、宿舍楼
type: 'campus' | 'area' | 'building' | 'college' | 'major' | 'class'; // 节点类型:校区、宿舍区、宿舍楼、学院、专业、班级
disabled?: boolean; // 是否禁用选择
buildingFloors?: number; // 宿舍楼层数
gender?: string; // 宿舍楼性别: 1-男生楼, 2-女生楼
buildingType?: string; // 宿舍楼类型: 1-男生楼, 2-女生楼
// 床位分配统计信息
maleAssigned?: number; // 男生已分配床位数
maleTotal?: number; // 男生总床位数
femaleAssigned?: number; // 女生已分配床位数
femaleTotal?: number; // 女生总床位数
}
// 房间信息
@@ -44,3 +44,11 @@ export function delClassMsg(id: string | number) {
method: 'delete'
});
}
// 获取当前登录人作为班主任的班级列表
export function getMyClassListAsTeacher(): AxiosPromise<ClassMsgVO[]> {
return request({
url: '/classMsg/classMsg/myClassListAsTeacher',
method: 'get'
});
}
+22 -2
View File
@@ -1,6 +1,6 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { StudentQuery, StudentVO, StudentForm, XgDeptTreeVO, R, TableDataInfo } from './types';
import { StudentQuery, StudentVO, StudentForm, XgDeptTreeVO, XgStudentTreeVO, R, TableDataInfo } from './types';
/**
* 查询部门下拉树结构
@@ -196,6 +196,25 @@ export function downloadImportTemplate(): AxiosPromise<any> {
});
}
// 获取学生信息树
export function getStudentTree(secondaryCollegeId: number = 101): AxiosPromise<R<XgStudentTreeVO[]>> {
return request({
url: '/studentMsg/studentMsg/getStudentTree',
method: 'get',
params: {
secondaryCollegeId
}
});
}
// 获取当前用户所在学院的学生信息树
export function getCurrentUserStudentTree(): AxiosPromise<R<XgStudentTreeVO[]>> {
return request({
url: '/studentMsg/studentMsg/getCurrentUserStudentTree',
method: 'get'
});
}
// 学生状态修改
export function changeStudentStatus(studentId: string | number, status: string): AxiosPromise<R<any>> {
// 实际使用时连接后端接口
@@ -444,5 +463,6 @@ export default {
deptTreeSelect,
exportStudent,
changeStudentStatus,
XgDeptTreeSelect
XgDeptTreeSelect,
getStudentTree
};
@@ -84,3 +84,25 @@ export const downloadImportTemplate = () => {
responseType: 'blob'
});
};
/**
* 根据学生ID获取班主任ID
* @param studentId 学生ID
*/
export const getClassTeacherId = (studentId: string | number): AxiosPromise<{ data: number }> => {
return request({
url: `/studentMsg/studentMsg/getClassTeacherId/${studentId}`,
method: 'get'
});
};
/**
* 根据学生ID获取学院请假审批人列表
* @param studentId 学生ID
*/
export const getCollegeLeaveApprovers = (studentId: string | number): AxiosPromise<{ data: number[] }> => {
return request({
url: `/studentMsg/studentMsg/getCollegeLeaveApprovers/${studentId}`,
method: 'get'
});
};
+20
View File
@@ -176,3 +176,23 @@ export interface TableDataInfo<T> {
total: number;
rows: T;
}
// 学生信息树节点类型
export interface XgStudentTreeVO {
id: string;
label: string;
type: 'grade' | 'college' | 'major' | 'class';
maleAssigned?: number;
maleTotal?: number;
femaleAssigned?: number;
femaleTotal?: number;
grade?: string;
collegeId?: number;
collegeName?: string;
majorId?: number;
majorName?: string;
classId?: number;
className?: string;
sortOrder?: number;
children?: XgStudentTreeVO[];
}
@@ -0,0 +1,94 @@
import request from '@/utils/request';
import { XskhAssessmentApplicationApprovalQuery, XskhAssessmentApplicationApprovalBo, XskhAssessmentApplicationApprovalVo, AvailableScheduleOption } from './types';
// 查询学生考核申请列表
export function listAssessmentApplication(query: XskhAssessmentApplicationApprovalQuery) {
return request({
url: '/assessment/application/list',
method: 'get',
params: query
});
}
// 查询学生考核申请详细
export function getAssessmentApplication(id: string | number) {
return request({
url: '/assessment/application/' + id,
method: 'get'
});
}
// 新增学生考核申请
export function addAssessmentApplication(data: XskhAssessmentApplicationApprovalBo) {
return request({
url: '/assessment/application',
method: 'post',
data: data
});
}
// 修改学生考核申请
export function updateAssessmentApplication(data: XskhAssessmentApplicationApprovalBo) {
return request({
url: '/assessment/application',
method: 'put',
data: data
});
}
// 删除学生考核申请
export function delAssessmentApplication(id: string | number | Array<string | number>) {
return request({
url: '/assessment/application/' + id,
method: 'delete'
});
}
// 保存考核申请(草稿状态)
export function saveAssessmentApplication(data: XskhAssessmentApplicationApprovalBo) {
return request({
url: '/assessment/application/save',
method: 'post',
data: data
});
}
// 提交考核申请
export function submitAssessmentApplication(id: string | number) {
return request({
url: '/assessment/application/submit/' + id,
method: 'put'
});
}
// 删除考核申请
export function deleteAssessmentApplication(id: string | number) {
return request({
url: '/assessment/application/delete/' + id,
method: 'delete'
});
}
// 获取可申请的考核计划列表
export function getAvailableAssessmentSchedules() {
return request<AvailableScheduleOption[]>({
url: '/assessment/application/available',
method: 'get'
});
}
// 根据学生ID和考核计划ID查询申请
export function getApplicationByStudentAndSchedule(studentId: string | number, scheduleId: string | number) {
return request({
url: `/assessment/application/student/${studentId}/schedule/${scheduleId}`,
method: 'get'
});
}
// 根据考核计划ID获取关联的指标数据
export function getIndicatorsByScheduleId(scheduleId: string | number) {
return request({
url: `/assessment/application/indicators/${scheduleId}`,
method: 'get'
});
}
@@ -0,0 +1,433 @@
import { BaseEntity } from '@/api/types';
/**
* 学生考核申请查询对象
*/
export interface XskhAssessmentApplicationApprovalQuery extends BaseEntity {
/** 考核计划名称 */
scheduleName?: string;
/** 状态(1-草稿 2-已提交 3-班主任审核 6-已完成) */
status?: string;
}
/**
* 学生考核申请业务对象
*/
export interface XskhAssessmentApplicationApprovalBo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 学生ID */
studentId?: string | number;
/** 学生姓名 */
studentName?: string;
/** 学号 */
studentNo?: string;
/** 学院名称 */
collegeName?: string;
/** 专业名称 */
majorName?: string;
/** 班级名称 */
className?: string;
/** 考核计划ID */
scheduleId?: string | number;
/** 考核计划名称 */
scheduleName?: string;
/** 自评得分 */
selfScore?: number;
/** 自评备注 */
selfRemark?: string;
/** 班主任评分 */
teacherScore?: number;
/** 总得分 */
totalScore?: number;
/** 状态(1-草稿 2-已提交 3-班主任审核 6-已完成) */
status?: string;
/** 班主任审核备注 */
teacherApprovalRemark?: string;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
/** 删除标志(0-未删除 1-已删除) */
deleted?: string;
/** 租户ID */
tenantId?: string | number;
/** 自评得分列表 */
selfScoreList?: XskhAssessmentSelfScoreBo[];
/** 附加分申请列表 */
bonusApprovalList?: XskhAssessmentBonusApprovalBo[];
}
/**
* 学生考核申请视图对象
*/
export interface XskhAssessmentApplicationApprovalVo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 学生ID */
studentId?: string | number;
/** 学生姓名 */
studentName?: string;
/** 学号 */
studentNo?: string;
/** 学院名称 */
collegeName?: string;
/** 专业名称 */
majorName?: string;
/** 班级名称 */
className?: string;
/** 考核计划ID */
scheduleId?: string | number;
/** 考核计划名称 */
scheduleName?: string;
/** 考核开始时间 */
startTime?: string;
/** 考核结束时间 */
endTime?: string;
/** 数据统计开始时间 */
dataStartTime?: string;
/** 数据统计结束时间 */
dataEndTime?: string;
/** 自评得分 */
selfScore?: number;
/** 自评备注 */
selfRemark?: string;
/** 班主任评分 */
teacherScore?: number;
/** 总得分 */
totalScore?: number;
/** 状态(1-草稿 2-已提交 3-班主任审核 6-已完成) */
status?: string;
/** 状态名称 */
statusName?: string;
/** 班主任审核备注 */
teacherApprovalRemark?: string;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
/** 自评得分列表 */
selfScoreList?: XskhAssessmentSelfScoreVo[];
/** 附加分申请列表 */
bonusApprovalList?: XskhAssessmentBonusApprovalVo[];
}
/**
* 学生考核申请表单对象
*/
export interface XskhAssessmentApplicationApprovalForm extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 学生ID */
studentId?: string | number;
/** 学生姓名 */
studentName?: string;
/** 学号 */
studentNo?: string;
/** 学院名称 */
collegeName?: string;
/** 专业名称 */
majorName?: string;
/** 班级名称 */
className?: string;
/** 考核计划ID */
scheduleId?: string | number;
/** 考核计划名称 */
scheduleName?: string;
/** 自评得分 */
selfScore?: number;
/** 自评备注 */
selfRemark?: string;
/** 班主任评分 */
teacherScore?: number;
/** 总得分 */
totalScore?: number;
/** 状态(1-草稿 2-已提交 3-班主任审核 6-已完成) */
status?: string;
/** 班主任审核备注 */
teacherApprovalRemark?: string;
/** 自评得分列表 */
selfScoreList?: XskhAssessmentSelfScoreForm[];
/** 附加分申请列表 */
bonusApprovalList?: XskhAssessmentBonusApprovalForm[];
}
/**
* 学生考核自评得分业务对象
*/
export interface XskhAssessmentSelfScoreBo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 考核申请ID */
applicationId?: string | number;
/** 考核指标ID */
indicatorId?: string | number;
/** 指标名称 */
indicatorName?: string;
/** 指标编码 */
indicatorCode?: string;
/** 指标说明 */
indicatorDescription?: string;
/** 指标类型 */
indicatorType?: string;
/** 最高分值 */
maxScore?: number;
/** 指标默认最高分值 */
indicatorMaxScore?: number;
/** 方案中该指标最高分值 */
planMaxScore?: number;
/** 排序号 */
sortOrder?: number;
/** 自评得分 */
selfScore?: number;
/** 自评备注 */
selfRemark?: string;
/** 班主任评分 */
teacherScore?: number;
/** 班主任备注 */
teacherRemark?: string;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
/** 删除标志(0-未删除 1-已删除) */
deleted?: string;
/** 租户ID */
tenantId?: string | number;
}
/**
* 学生考核自评得分视图对象
*/
export interface XskhAssessmentSelfScoreVo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 考核申请ID */
applicationId?: string | number;
/** 考核指标ID */
indicatorId?: string | number;
/** 指标名称 */
indicatorName?: string;
/** 指标编码 */
indicatorCode?: string;
/** 指标说明 */
indicatorDescription?: string;
/** 指标类型 */
indicatorType?: string;
/** 最高分值 */
maxScore?: number;
/** 指标默认最高分值 */
indicatorMaxScore?: number;
/** 方案中该指标最高分值 */
planMaxScore?: number;
/** 排序号 */
sortOrder?: number;
/** 自评得分 */
selfScore?: number;
/** 自评备注 */
selfRemark?: string;
/** 班主任评分 */
teacherScore?: number;
/** 班主任备注 */
teacherRemark?: string;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
}
/**
* 学生考核自评得分表单对象
*/
export interface XskhAssessmentSelfScoreForm extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 考核申请ID */
applicationId?: string | number;
/** 考核指标ID */
indicatorId?: string | number;
/** 指标名称 */
indicatorName?: string;
/** 指标编码 */
indicatorCode?: string;
/** 指标说明 */
indicatorDescription?: string;
/** 指标类型 */
indicatorType?: string;
/** 最高分值 */
maxScore?: number;
/** 指标默认最高分值 */
indicatorMaxScore?: number;
/** 方案中该指标最高分值 */
planMaxScore?: number;
/** 排序号 */
sortOrder?: number;
/** 自评得分 */
selfScore?: number;
/** 自评备注 */
selfRemark?: string;
/** 班主任评分 */
teacherScore?: number;
/** 班主任备注 */
teacherRemark?: string;
}
/**
* 学生附加分申请业务对象
*/
export interface XskhAssessmentBonusApprovalBo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 考核申请ID */
applicationId?: string | number;
/** 附加分项目名称 */
bonusItemName?: string;
/** 附加分内容 */
bonusContent?: string;
/** 附加分值 */
bonusScore?: number;
/** 附件 */
attachment?: string;
/** 审核状态(0-待审核 1-已审核) */
approvalStatus?: string;
/** 审核得分 */
approvalScore?: number;
/** 审核人 */
approvalBy?: string | number;
/** 审核时间 */
approvalTime?: string;
/** 审核备注 */
approvalRemark?: string;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
/** 删除标志(0-未删除 1-已删除) */
deleted?: string;
/** 租户ID */
tenantId?: string | number;
}
/**
* 学生附加分申请视图对象
*/
export interface XskhAssessmentBonusApprovalVo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 考核申请ID */
applicationId?: string | number;
/** 附加分项目名称 */
bonusItemName?: string;
/** 附加分内容 */
bonusContent?: string;
/** 附加分值 */
bonusScore?: number;
/** 附件 */
attachment?: string;
/** 审核状态(0-待审核 1-已审核) */
approvalStatus?: string;
/** 审核状态名称 */
approvalStatusName?: string;
/** 审核得分 */
approvalScore?: number;
/** 审核人 */
approvalBy?: string | number;
/** 审核时间 */
approvalTime?: string;
/** 审核备注 */
approvalRemark?: string;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
}
/**
* 学生附加分申请表单对象
*/
export interface XskhAssessmentBonusApprovalForm extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 考核申请ID */
applicationId?: string | number;
/** 附加分项目名称 */
bonusItemName?: string;
/** 附加分内容 */
bonusContent?: string;
/** 附加分值 */
bonusScore?: number;
/** 附件 */
attachment?: string;
/** 审核状态(0-待审核 1-已审核) */
approvalStatus?: string;
/** 审核得分 */
approvalScore?: number;
/** 审核人 */
approvalBy?: string | number;
/** 审核时间 */
approvalTime?: string;
/** 审核备注 */
approvalRemark?: string;
}
/**
* 考核计划选项
*/
export interface AssessmentScheduleOption {
/** 主键ID */
id: string | number;
/** 考核计划名称 */
scheduleName: string;
/** 考核计划说明 */
scheduleDescription: string;
/** 开始时间 */
startTime: string;
/** 结束时间 */
endTime: string;
/** 数据统计开始时间 */
dataStartTime: string;
/** 数据统计结束时间 */
dataEndTime: string;
/** 状态 */
status: string;
/** 状态名称 */
statusName: string;
}
/**
* 可申请的考核计划选项(后端返回格式)
*/
export interface AvailableScheduleOption {
/** 考核计划ID */
scheduleId: string | number;
/** 考核计划名称 */
scheduleName: string;
/** 状态 */
status: string;
/** 时间信息(临时存储在teacherApprovalRemark字段) */
teacherApprovalRemark?: string;
}
@@ -0,0 +1,74 @@
import request from '@/utils/request';
import { XskhAssessmentApprovalQuery, XskhAssessmentApprovalBo, XskhAssessmentApprovalVo } from './types';
// 查询学生考核审核列表
export function listAssessmentApproval(query: XskhAssessmentApprovalQuery) {
return request({
url: '/assessment/approval/list',
method: 'get',
params: query
});
}
// 查询学生考核审核详细
export function getAssessmentApproval(id: string | number) {
return request({
url: '/assessment/approval/' + id,
method: 'get'
});
}
// 新增学生考核审核
export function addAssessmentApproval(data: XskhAssessmentApprovalBo) {
return request({
url: '/assessment/approval',
method: 'post',
data: data
});
}
// 修改学生考核审核
export function updateAssessmentApproval(data: XskhAssessmentApprovalBo) {
return request({
url: '/assessment/approval',
method: 'put',
data: data
});
}
// 删除学生考核审核
export function delAssessmentApproval(id: string | number | Array<string | number>) {
return request({
url: '/assessment/approval/' + id,
method: 'delete'
});
}
// 审核考核申请
export function approveAssessmentApplication(data: XskhAssessmentApprovalBo) {
return request({
url: '/assessment/approval/approve',
method: 'put',
data: data
});
}
// 获取班主任班级下的考核申请列表
export function getTeacherClassApplications(scheduleId: string | number, query: XskhAssessmentApprovalQuery) {
return request({
url: '/assessment/approval/teacherClass',
method: 'get',
params: {
...query,
scheduleId: scheduleId
}
});
}
// 获取考核计划列表(进行中和已结束)
export function getAvailableAssessmentSchedules() {
return request({
url: '/assessment/approval/available',
method: 'get'
});
}
@@ -0,0 +1,415 @@
import { BaseEntity } from '@/api/types';
/**
* 学生考核审核查询对象
*/
export interface XskhAssessmentApprovalQuery extends BaseEntity {
/** 考核计划名称 */
scheduleName?: string;
/** 状态(2-已提交 3-班主任审核 6-已完成) */
status?: string;
/** 学号 */
studentNo?: string;
/** 学生姓名 */
studentName?: string;
}
/**
* 学生考核审核业务对象
*/
export interface XskhAssessmentApprovalBo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 学生ID */
studentId?: string | number;
/** 学生姓名 */
studentName?: string;
/** 学号 */
studentNo?: string;
/** 学院名称 */
collegeName?: string;
/** 专业名称 */
majorName?: string;
/** 班级名称 */
className?: string;
/** 考核计划ID */
scheduleId?: string | number;
/** 考核计划名称 */
scheduleName?: string;
/** 自评得分 */
selfScore?: number;
/** 班主任评分 */
teacherScore?: number;
/** 总得分 */
totalScore?: number;
/** 状态(2-已提交 3-班主任审核 6-已完成) */
status?: string;
/** 自评备注 */
selfRemark?: string;
/** 班主任审核备注 */
teacherApprovalRemark?: string;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
/** 删除标志(0-未删除 1-已删除) */
deleted?: string;
/** 租户ID */
tenantId?: string | number;
/** 自评得分列表 */
selfScoreList?: XskhAssessmentSelfScoreBo[];
/** 附加分申请列表 */
bonusApprovalList?: XskhAssessmentBonusApprovalBo[];
}
/**
* 学生考核审核视图对象
*/
export interface XskhAssessmentApprovalVo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 学生ID */
studentId?: string | number;
/** 学生姓名 */
studentName?: string;
/** 学号 */
studentNo?: string;
/** 学院名称 */
collegeName?: string;
/** 专业名称 */
majorName?: string;
/** 班级名称 */
className?: string;
/** 考核计划ID */
scheduleId?: string | number;
/** 考核计划名称 */
scheduleName?: string;
/** 自评得分 */
selfScore?: number;
/** 班主任评分 */
teacherScore?: number;
/** 总得分 */
totalScore?: number;
/** 状态(2-已提交 3-班主任审核 6-已完成) */
status?: string;
/** 状态名称 */
statusName?: string;
/** 自评备注 */
selfRemark?: string;
/** 班主任审核备注 */
teacherApprovalRemark?: string;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
/** 自评得分列表 */
selfScoreList?: XskhAssessmentSelfScoreVo[];
/** 附加分申请列表 */
bonusApprovalList?: XskhAssessmentBonusApprovalVo[];
}
/**
* 学生考核申请表单对象
*/
export interface XskhAssessmentApprovalForm extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 学生ID */
studentId?: string | number;
/** 学生姓名 */
studentName?: string;
/** 学号 */
studentNo?: string;
/** 学院名称 */
collegeName?: string;
/** 专业名称 */
majorName?: string;
/** 班级名称 */
className?: string;
/** 考核计划ID */
scheduleId?: string | number;
/** 考核计划名称 */
scheduleName?: string;
/** 开始时间 */
startTime?: string;
/** 结束时间 */
endTime?: string;
/** 数据统计开始时间 */
dataStartTime?: string;
/** 数据统计结束时间 */
dataEndTime?: string;
/** 自评得分 */
selfScore?: number;
/** 班主任评分 */
teacherScore?: number;
/** 总得分 */
totalScore?: number;
/** 状态(1-草稿 2-已提交 3-班主任审核 4-学院审核 5-学校审核 6-已完成) */
status?: string;
/** 自评备注 */
selfRemark?: string;
/** 班主任审核备注 */
teacherApprovalRemark?: string;
/** 自评得分列表 */
selfScoreList?: XskhAssessmentSelfScoreForm[];
/** 附加分申请列表 */
bonusApprovalList?: XskhAssessmentBonusApprovalForm[];
}
/**
* 学生考核自评得分业务对象
*/
export interface XskhAssessmentSelfScoreBo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 考核申请ID */
applicationId?: string | number;
/** 考核指标ID */
indicatorId?: string | number;
/** 指标名称 */
indicatorName?: string;
/** 指标编码 */
indicatorCode?: string;
/** 指标说明 */
description?: string;
/** 指标默认最高分值 */
indicatorMaxScore?: number;
/** 方案中该指标最高分值 */
maxScore?: number;
/** 排序号 */
sortOrder?: number;
/** 自评得分 */
selfScore?: number;
/** 自评备注 */
selfRemark?: string;
/** 班主任评分 */
teacherScore?: number;
/** 班主任备注 */
teacherRemark?: string;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
/** 删除标志(0-未删除 1-已删除) */
deleted?: string;
/** 租户ID */
tenantId?: string | number;
}
/**
* 学生考核自评得分视图对象
*/
export interface XskhAssessmentSelfScoreVo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 考核申请ID */
applicationId?: string | number;
/** 考核指标ID */
indicatorId?: string | number;
/** 指标名称 */
indicatorName?: string;
/** 指标编码 */
indicatorCode?: string;
/** 指标说明 */
description?: string;
/** 指标默认最高分值 */
indicatorMaxScore?: number;
/** 方案中该指标最高分值 */
maxScore?: number;
/** 排序号 */
sortOrder?: number;
/** 自评得分 */
selfScore?: number;
/** 自评备注 */
selfRemark?: string;
/** 班主任评分 */
teacherScore?: number;
/** 班主任备注 */
teacherRemark?: string;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
}
/**
* 学生考核自评得分表单对象
*/
export interface XskhAssessmentSelfScoreForm extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 考核申请ID */
applicationId?: string | number;
/** 考核指标ID */
indicatorId?: string | number;
/** 指标名称 */
indicatorName?: string;
/** 指标编码 */
indicatorCode?: string;
/** 指标说明 */
description?: string;
/** 指标默认最高分值 */
indicatorMaxScore?: number;
/** 方案中该指标最高分值 */
maxScore?: number;
/** 排序号 */
sortOrder?: number;
/** 自评得分 */
selfScore?: number;
/** 自评备注 */
selfRemark?: string;
/** 班主任评分 */
teacherScore?: number;
/** 班主任备注 */
teacherRemark?: string;
}
/**
* 学生附加分申请业务对象
*/
export interface XskhAssessmentBonusApprovalBo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 考核申请ID */
applicationId?: string | number;
/** 附加分项目名称 */
bonusName?: string;
/** 附加分内容 */
bonusContent?: string;
/** 附加分值 */
bonusScore?: number;
/** 附件 */
evidenceFile?: string;
/** 审核状态(0-待审核 1-已审核) */
status?: string;
/** 审核得分 */
approvalScore?: number;
/** 审核人 */
approvalBy?: string | number;
/** 审核人姓名 */
approvalByName?: string;
/** 审核时间 */
approvalTime?: string;
/** 审核备注 */
approvalRemark?: string;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
/** 删除标志(0-未删除 1-已删除) */
deleted?: string;
/** 租户ID */
tenantId?: string | number;
}
/**
* 学生附加分申请视图对象
*/
export interface XskhAssessmentBonusApprovalVo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 考核申请ID */
applicationId?: string | number;
/** 附加分项目名称 */
bonusName?: string;
/** 附加分内容 */
bonusContent?: string;
/** 附加分值 */
bonusScore?: number;
/** 附件 */
evidenceFile?: string;
/** 审核状态(0-待审核 1-已审核) */
status?: string;
/** 审核状态名称 */
statusName?: string;
/** 审核得分 */
approvalScore?: number;
/** 审核人 */
approvalBy?: string | number;
/** 审核人姓名 */
approvalByName?: string;
/** 审核时间 */
approvalTime?: string;
/** 审核备注 */
approvalRemark?: string;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
}
/**
* 学生附加分申请表单对象
*/
export interface XskhAssessmentBonusApprovalForm extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 考核申请ID */
applicationId?: string | number;
/** 附加分项目名称 */
bonusName?: string;
/** 附加分内容 */
bonusContent?: string;
/** 附加分值 */
bonusScore?: number;
/** 附件 */
evidenceFile?: string;
/** 审核状态(0-待审核 1-已审核) */
status?: string;
/** 审核得分 */
approvalScore?: number;
/** 审核人 */
approvalBy?: string | number;
/** 审核人姓名 */
approvalByName?: string;
/** 审核时间 */
approvalTime?: string;
/** 审核备注 */
approvalRemark?: string;
/** 文件列表(前端使用) */
fileList?: any[];
}
/**
* 考核计划选项
*/
export interface AssessmentScheduleOption {
/** 主键ID */
id: string | number;
/** 考核计划名称 */
scheduleName: string;
/** 考核计划说明 */
scheduleDescription: string;
/** 开始时间 */
startTime: string;
/** 结束时间 */
endTime: string;
/** 状态 */
status: string;
/** 状态名称 */
statusName: string;
}
@@ -0,0 +1,78 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { TableDataInfo, R } from '@/api/types';
import { XskhAssessmentIndicatorVo, XskhAssessmentIndicatorBo, XskhAssessmentIndicatorQuery, XskhAssessmentIndicatorForm } from './types';
/**
* 查询学生考核指标体系列表
* @param query
* @returns
*/
export function listAssessmentIndicator(query: XskhAssessmentIndicatorQuery): AxiosPromise<TableDataInfo<XskhAssessmentIndicatorVo>> {
return request({
url: '/assessment/indicator/list',
method: 'get',
params: query
});
}
/**
* 查询学生考核指标体系详细
* @param id
* @returns
*/
export function getAssessmentIndicator(id: string | number): AxiosPromise<R<XskhAssessmentIndicatorVo>> {
return request({
url: '/assessment/indicator/' + id,
method: 'get'
});
}
/**
* 新增学生考核指标体系
* @param data
* @returns
*/
export function addAssessmentIndicator(data: XskhAssessmentIndicatorForm): AxiosPromise<R<any>> {
return request({
url: '/assessment/indicator',
method: 'post',
data: data
});
}
/**
* 修改学生考核指标体系
* @param data
* @returns
*/
export function updateAssessmentIndicator(data: XskhAssessmentIndicatorForm): AxiosPromise<R<any>> {
return request({
url: '/assessment/indicator',
method: 'put',
data: data
});
}
/**
* 删除学生考核指标体系
* @param ids
* @returns
*/
export function delAssessmentIndicator(ids: string | string[] | number | number[]): AxiosPromise<R<any>> {
return request({
url: '/assessment/indicator/' + ids,
method: 'delete'
});
}
/**
* 获取启用的学生考核指标体系列表(用于下拉框)
* @returns
*/
export function getEnabledAssessmentIndicators(): AxiosPromise<R<XskhAssessmentIndicatorVo[]>> {
return request({
url: '/assessment/indicator/enabled',
method: 'get'
});
}
@@ -0,0 +1,141 @@
import { BaseEntity } from '@/api/types';
/**
* 学生考核指标体系查询对象
*/
export interface XskhAssessmentIndicatorQuery extends BaseEntity {
/** 指标编码 */
indicatorCode?: string;
/** 指标名称 */
indicatorName?: string;
/** 状态(0-启用 1-禁用) */
status?: string;
}
/**
* 学生考核指标体系业务对象
*/
export interface XskhAssessmentIndicatorBo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 指标编码 */
indicatorCode?: string;
/** 指标名称 */
indicatorName?: string;
/** 指标说明 */
description?: string;
/** 指标类型ID */
indicatorTypeId?: string | number;
/** 指标类型名称 */
indicatorTypeName?: string;
/** 最高分值 */
maxScore?: number;
/** 状态(0-启用 1-禁用) */
status?: string;
/** 排序号 */
sortOrder?: number;
/** 关联的违纪处分类型ID列表 */
disciplineTypeIds?: string[];
/** 关联的奖励类型ID列表 */
rewardTypeIds?: string[];
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
/** 删除标志(0-未删除 1-已删除) */
deleted?: string;
/** 租户ID */
tenantId?: string | number;
}
/**
* 学生考核指标体系视图对象
*/
export interface XskhAssessmentIndicatorVo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 指标编码 */
indicatorCode?: string;
/** 指标名称 */
indicatorName?: string;
/** 指标说明 */
description?: string;
/** 指标类型ID */
indicatorTypeId?: string | number;
/** 指标类型名称 */
indicatorTypeName?: string;
/** 最高分值 */
maxScore?: number;
/** 状态(0-启用 1-禁用) */
status?: string;
/** 状态名称 */
statusName?: string;
/** 排序号 */
sortOrder?: number;
/** 关联的违纪处分类型ID列表 */
disciplineTypeIds?: string[];
/** 关联的奖励类型ID列表 */
rewardTypeIds?: string[];
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
}
/**
* 学生考核指标体系表单对象
*/
export interface XskhAssessmentIndicatorForm extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 指标编码 */
indicatorCode?: string;
/** 指标名称 */
indicatorName?: string;
/** 指标说明 */
description?: string;
/** 指标类型ID */
indicatorTypeId?: string | number;
/** 最高分值 */
maxScore?: number;
/** 状态(0-启用 1-禁用) */
status?: string;
/** 排序号 */
sortOrder?: number;
/** 关联的违纪处分类型ID列表 */
disciplineTypeIds?: string[];
/** 关联的奖励类型ID列表 */
rewardTypeIds?: string[];
}
/**
* 违纪处分类型选项
*/
export interface DisciplineTypeOption {
/** 主键ID */
id: string | number;
/** 类型编码 */
typeCode: string;
/** 类型名称 */
typeName: string;
}
/**
* 奖励类型选项
*/
export interface RewardTypeOption {
/** 主键ID */
id: string | number;
/** 类型编码 */
typeCode: string;
/** 类型名称 */
typeName: string;
}
@@ -0,0 +1,78 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { TableDataInfo, R } from '@/api/types';
import { XskhAssessmentIndicatorTypeVo, XskhAssessmentIndicatorTypeBo, XskhAssessmentIndicatorTypeQuery, XskhAssessmentIndicatorTypeForm } from './types';
/**
* 查询学生考核指标类型列表
* @param query
* @returns
*/
export function listAssessmentIndicatorType(query: XskhAssessmentIndicatorTypeQuery): AxiosPromise<TableDataInfo<XskhAssessmentIndicatorTypeVo>> {
return request({
url: '/assessment/indicatorType/list',
method: 'get',
params: query
});
}
/**
* 查询学生考核指标类型详细
* @param id
* @returns
*/
export function getAssessmentIndicatorType(id: string | number): AxiosPromise<R<XskhAssessmentIndicatorTypeVo>> {
return request({
url: '/assessment/indicatorType/' + id,
method: 'get'
});
}
/**
* 新增学生考核指标类型
* @param data
* @returns
*/
export function addAssessmentIndicatorType(data: XskhAssessmentIndicatorTypeForm): AxiosPromise<R<any>> {
return request({
url: '/assessment/indicatorType',
method: 'post',
data: data
});
}
/**
* 修改学生考核指标类型
* @param data
* @returns
*/
export function updateAssessmentIndicatorType(data: XskhAssessmentIndicatorTypeForm): AxiosPromise<R<any>> {
return request({
url: '/assessment/indicatorType',
method: 'put',
data: data
});
}
/**
* 删除学生考核指标类型
* @param ids
* @returns
*/
export function delAssessmentIndicatorType(ids: string | string[] | number | number[]): AxiosPromise<R<any>> {
return request({
url: '/assessment/indicatorType/' + ids,
method: 'delete'
});
}
/**
* 获取启用的学生考核指标类型列表(用于下拉框)
* @returns
*/
export function getEnabledAssessmentIndicatorTypes(): AxiosPromise<R<XskhAssessmentIndicatorTypeVo[]>> {
return request({
url: '/assessment/indicatorType/enabled',
method: 'get'
});
}
@@ -0,0 +1,89 @@
import { BaseEntity } from '@/api/types';
/**
* 学生考核指标类型查询对象
*/
export interface XskhAssessmentIndicatorTypeQuery extends BaseEntity {
/** 类型编码 */
typeCode?: string;
/** 类型名称 */
typeName?: string;
/** 状态(0-启用 1-禁用) */
status?: string;
}
/**
* 学生考核指标类型业务对象
*/
export interface XskhAssessmentIndicatorTypeBo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 类型编码 */
typeCode?: string;
/** 类型名称 */
typeName?: string;
/** 类型说明 */
description?: string;
/** 状态(0-启用 1-禁用) */
status?: string;
/** 排序号 */
sortOrder?: number;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
/** 删除标志(0-未删除 1-已删除) */
deleted?: string;
/** 租户ID */
tenantId?: string | number;
}
/**
* 学生考核指标类型视图对象
*/
export interface XskhAssessmentIndicatorTypeVo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 类型编码 */
typeCode?: string;
/** 类型名称 */
typeName?: string;
/** 类型说明 */
description?: string;
/** 状态(0-启用 1-禁用) */
status?: string;
/** 状态名称 */
statusName?: string;
/** 排序号 */
sortOrder?: number;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
}
/**
* 学生考核指标类型表单对象
*/
export interface XskhAssessmentIndicatorTypeForm extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 类型编码 */
typeCode?: string;
/** 类型名称 */
typeName?: string;
/** 类型说明 */
description?: string;
/** 状态(0-启用 1-禁用) */
status?: string;
/** 排序号 */
sortOrder?: number;
}
@@ -0,0 +1,78 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { TableDataInfo, R } from '@/api/types';
import { XskhAssessmentPlanVo, XskhAssessmentPlanBo, XskhAssessmentPlanQuery, XskhAssessmentPlanForm } from './types';
/**
* 查询学生考核方案列表
* @param query
* @returns
*/
export function listAssessmentPlan(query: XskhAssessmentPlanQuery): AxiosPromise<TableDataInfo<XskhAssessmentPlanVo>> {
return request({
url: '/assessment/plan/list',
method: 'get',
params: query
});
}
/**
* 查询学生考核方案详细
* @param id
* @returns
*/
export function getAssessmentPlan(id: string | number): AxiosPromise<R<XskhAssessmentPlanVo>> {
return request({
url: '/assessment/plan/' + id,
method: 'get'
});
}
/**
* 新增学生考核方案
* @param data
* @returns
*/
export function addAssessmentPlan(data: XskhAssessmentPlanForm): AxiosPromise<R<any>> {
return request({
url: '/assessment/plan',
method: 'post',
data: data
});
}
/**
* 修改学生考核方案
* @param data
* @returns
*/
export function updateAssessmentPlan(data: XskhAssessmentPlanForm): AxiosPromise<R<any>> {
return request({
url: '/assessment/plan',
method: 'put',
data: data
});
}
/**
* 删除学生考核方案
* @param ids
* @returns
*/
export function delAssessmentPlan(ids: string | string[] | number | number[]): AxiosPromise<R<any>> {
return request({
url: '/assessment/plan/' + ids,
method: 'delete'
});
}
/**
* 获取启用的学生考核方案列表(用于下拉框)
* @returns
*/
export function getEnabledAssessmentPlans(): AxiosPromise<R<XskhAssessmentPlanVo[]>> {
return request({
url: '/assessment/plan/enabled',
method: 'get'
});
}
+143
View File
@@ -0,0 +1,143 @@
import { BaseEntity } from '@/api/types';
/**
* 学生考核方案查询对象
*/
export interface XskhAssessmentPlanQuery extends BaseEntity {
/** 方案编号 */
planCode?: string;
/** 方案名称 */
planName?: string;
/** 状态(0-启用 1-禁用) */
status?: string;
}
/**
* 学生考核方案业务对象
*/
export interface XskhAssessmentPlanBo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 方案编号 */
planCode?: string;
/** 方案名称 */
planName?: string;
/** 方案说明 */
description?: string;
/** 状态(0-启用 1-禁用) */
status?: string;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
/** 删除标志(0-未删除 1-已删除) */
deleted?: string;
/** 租户ID */
tenantId?: string | number;
}
/**
* 学生考核方案视图对象
*/
export interface XskhAssessmentPlanVo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 方案编号 */
planCode?: string;
/** 方案名称 */
planName?: string;
/** 方案说明 */
description?: string;
/** 状态(0-启用 1-禁用) */
status?: string;
/** 状态名称 */
statusName?: string;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
/** 关联的指标列表 */
indicatorList?: XskhAssessmentPlanIndicatorVo[];
}
/**
* 学生考核方案表单对象
*/
export interface XskhAssessmentPlanForm extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 方案编号 */
planCode?: string;
/** 方案名称 */
planName?: string;
/** 方案说明 */
description?: string;
/** 状态(0-启用 1-禁用) */
status?: string;
/** 关联的指标列表 */
indicatorList?: XskhAssessmentPlanIndicatorVo[];
}
/**
* 考核方案关联指标对象
*/
export interface XskhAssessmentPlanIndicatorVo {
/** 主键ID */
id?: string | number;
/** 考核方案ID */
planId?: string | number;
/** 考核指标ID */
indicatorId?: string | number;
/** 指标名称 */
indicatorName?: string;
/** 指标编码 */
indicatorCode?: string;
/** 指标说明 */
indicatorDescription?: string;
/** 指标默认最高分值 */
indicatorMaxScore?: number;
/** 该方案中该指标最高分值 */
maxScore?: number;
/** 排序号 */
sortOrder?: number;
}
/**
* 考核方案关联指标表单对象
*/
export interface XskhAssessmentPlanIndicatorForm {
/** 主键ID */
id?: string | number;
/** 考核方案ID */
planId?: string | number;
/** 考核指标ID */
indicatorId?: string | number;
/** 该方案中该指标最高分值 */
planMaxScore?: number;
/** 排序号 */
sortOrder?: number;
}
/**
* 考核指标选项
*/
export interface AssessmentIndicatorOption {
/** 主键ID */
id: string | number;
/** 指标编码 */
indicatorCode: string;
/** 指标名称 */
indicatorName: string;
/** 指标说明 */
indicatorDescription: string;
/** 最高分值 */
maxScore: number;
}
@@ -0,0 +1,127 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { TableDataInfo, R } from '@/api/types';
import { XskhAssessmentScheduleVo, XskhAssessmentScheduleBo, XskhAssessmentScheduleQuery, XskhAssessmentScheduleForm } from './types';
/**
* 查询学生考核计划列表
* @param query
* @returns
*/
export function listAssessmentSchedule(query: XskhAssessmentScheduleQuery): AxiosPromise<TableDataInfo<XskhAssessmentScheduleVo>> {
return request({
url: '/assessment/schedule/list',
method: 'get',
params: query
});
}
/**
* 根据状态列表查询学生考核计划列表
* @param query
* @returns
*/
export function listAssessmentScheduleByStatus(query: XskhAssessmentScheduleQuery): AxiosPromise<TableDataInfo<XskhAssessmentScheduleVo>> {
return request({
url: '/assessment/schedule/listByStatus',
method: 'get',
params: query
});
}
/**
* 查询学生考核计划详细
* @param id
* @returns
*/
export function getAssessmentSchedule(id: string | number): AxiosPromise<R<XskhAssessmentScheduleVo>> {
return request({
url: '/assessment/schedule/' + id,
method: 'get'
});
}
/**
* 新增学生考核计划
* @param data
* @returns
*/
export function addAssessmentSchedule(data: XskhAssessmentScheduleForm): AxiosPromise<R<any>> {
return request({
url: '/assessment/schedule',
method: 'post',
data: data
});
}
/**
* 修改学生考核计划
* @param data
* @returns
*/
export function updateAssessmentSchedule(data: XskhAssessmentScheduleForm): AxiosPromise<R<any>> {
return request({
url: '/assessment/schedule',
method: 'put',
data: data
});
}
/**
* 删除学生考核计划
* @param ids
* @returns
*/
export function delAssessmentSchedule(ids: string | string[] | number | number[]): AxiosPromise<R<any>> {
return request({
url: '/assessment/schedule/' + ids,
method: 'delete'
});
}
/**
* 上线考核计划
* @param id
* @returns
*/
export function onlineAssessmentSchedule(id: string | number): AxiosPromise<R<any>> {
return request({
url: '/assessment/schedule/online/' + id,
method: 'put'
});
}
/**
* 下线考核计划
* @param id
* @returns
*/
export function offlineAssessmentSchedule(id: string | number): AxiosPromise<R<any>> {
return request({
url: '/assessment/schedule/offline/' + id,
method: 'put'
});
}
/**
* 完成考核计划
* @param id
* @returns
*/
export function completeAssessmentSchedule(id: string | number): AxiosPromise<R<any>> {
return request({
url: '/assessment/schedule/complete/' + id,
method: 'put'
});
}
/**
* 获取启用的学生考核方案列表(用于下拉框)
* @returns
*/
export function getEnabledAssessmentPlans(): AxiosPromise<R<any[]>> {
return request({
url: '/assessment/plan/enabled',
method: 'get'
});
}
@@ -0,0 +1,145 @@
import { BaseEntity } from '@/api/types';
/**
* 学生考核计划查询对象
*/
export interface XskhAssessmentScheduleQuery extends BaseEntity {
/** 考核计划名称 */
scheduleName?: string;
/** 学年 */
academicYear?: string;
/** 学期 */
semester?: string;
/** 状态(1-未开始 2-进行中 3-已结束) */
status?: string;
/** 状态列表(1-未开始 2-进行中 3-已结束) */
statusList?: string[];
}
/**
* 学生考核计划业务对象
*/
export interface XskhAssessmentScheduleBo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 考核计划名称 */
scheduleName?: string;
/** 考核计划说明 */
description?: string;
/** 考核方案ID */
planId?: string | number;
/** 考核方案名称 */
planName?: string;
/** 学年 */
academicYear?: string;
/** 学期(1-第一学期 2-第二学期) */
semester?: string;
/** 开始时间 */
startTime?: string;
/** 结束时间 */
endTime?: string;
/** 数据统计开始时间 */
dataStartTime?: string;
/** 数据统计结束时间 */
dataEndTime?: string;
/** 状态(1-未开始 2-进行中 3-已结束) */
status?: string;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
/** 删除标志(0-未删除 1-已删除) */
deleted?: string;
/** 租户ID */
tenantId?: string | number;
}
/**
* 学生考核计划视图对象
*/
export interface XskhAssessmentScheduleVo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 考核计划名称 */
scheduleName?: string;
/** 考核计划说明 */
description?: string;
/** 考核方案ID */
planId?: string | number;
/** 考核方案名称 */
planName?: string;
/** 学年 */
academicYear?: string;
/** 学期(1-第一学期 2-第二学期) */
semester?: string;
/** 学期名称 */
semesterName?: string;
/** 开始时间 */
startTime?: string;
/** 结束时间 */
endTime?: string;
/** 数据统计开始时间 */
dataStartTime?: string;
/** 数据统计结束时间 */
dataEndTime?: string;
/** 状态(1-未开始 2-进行中 3-已结束) */
status?: string;
/** 状态名称 */
statusName?: string;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
}
/**
* 学生考核计划表单对象
*/
export interface XskhAssessmentScheduleForm extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 考核计划名称 */
scheduleName?: string;
/** 考核计划说明 */
description?: string;
/** 考核方案ID */
planId?: string | number;
/** 考核方案名称 */
planName?: string;
/** 学年 */
academicYear?: string;
/** 学期(1-第一学期 2-第二学期) */
semester?: string;
/** 开始时间 */
startTime?: string;
/** 结束时间 */
endTime?: string;
/** 数据统计开始时间 */
dataStartTime?: string;
/** 数据统计结束时间 */
dataEndTime?: string;
/** 状态(1-未开始 2-进行中 3-已结束) */
status?: string;
}
/**
* 考核方案选项
*/
export interface AssessmentPlanOption {
/** 主键ID */
id: string | number;
/** 方案编号 */
planCode: string;
/** 方案名称 */
planName: string;
/** 方案说明 */
planDescription: string;
}
@@ -0,0 +1,88 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { DisciplineRecordVO, DisciplineRecordForm, DisciplineRecordQuery, XskhStudentOptionVO } from './disciplineRecord/types';
/**
* 查询学生违纪处分记录列表
* @param query
* @returns {*}
*/
export const listDisciplineRecord = (query?: DisciplineRecordQuery): AxiosPromise<DisciplineRecordVO[]> => {
return request({
url: '/disciplineRecord/disciplineRecord/list',
method: 'get',
params: query
});
};
/**
* 查询学生违纪处分记录详细
* @param id
*/
export const getDisciplineRecord = (id: string | number): AxiosPromise<DisciplineRecordVO> => {
return request({
url: '/disciplineRecord/disciplineRecord/' + id,
method: 'get'
});
};
/**
* 新增学生违纪处分记录
* @param data
*/
export const addDisciplineRecord = (data: DisciplineRecordForm) => {
return request({
url: '/disciplineRecord/disciplineRecord',
method: 'post',
data: data
});
};
/**
* 修改学生违纪处分记录
* @param data
*/
export const updateDisciplineRecord = (data: DisciplineRecordForm) => {
return request({
url: '/disciplineRecord/disciplineRecord',
method: 'put',
data: data
});
};
/**
* 删除学生违纪处分记录
* @param id
*/
export const delDisciplineRecord = (id: string | number | Array<string | number>) => {
return request({
url: '/disciplineRecord/disciplineRecord/' + id,
method: 'delete'
});
};
/**
* 查询学生选项列表(用于下拉框)
* @param keyword
*/
export const getStudentOptions = (keyword?: string): AxiosPromise<XskhStudentOptionVO[]> => {
return request({
url: '/disciplineRecord/disciplineRecord/studentOptions',
method: 'get',
params: { keyword }
});
};
/**
* 查询当前登录学生的违纪处分记录列表
* @param query
* @returns {*}
*/
export const listMyDisciplineRecord = (query?: DisciplineRecordQuery): AxiosPromise<DisciplineRecordVO[]> => {
return request({
url: '/disciplineRecord/disciplineRecord/my',
method: 'get',
params: query
});
};
@@ -0,0 +1,342 @@
import { PageQuery } from '@/types/base';
export interface DisciplineRecordVO {
/**
* 主键ID
*/
id: string | number;
/**
* 学生ID
*/
studentId: string | number;
/**
* 学号
*/
studentNo: string;
/**
* 学生姓名
*/
studentName: string;
/**
* 学院ID
*/
collegeId: string | number;
/**
* 学院名称
*/
collegeName: string;
/**
* 专业ID
*/
majorId: string | number;
/**
* 专业名称
*/
majorName: string;
/**
* 班级ID
*/
classId: string | number;
/**
* 班级名称
*/
className: string;
/**
* 违纪处分类型ID
*/
disciplineTypeId: string | number;
/**
* 违纪处分类型名称
*/
disciplineTypeName: string;
/**
* 违纪处分日期
*/
disciplineDate: string;
/**
* 违纪处分原因
*/
disciplineReason: string;
/**
* 违纪处分内容
*/
disciplineContent: string;
/**
* 扣分分值
*/
scoreDeduction: number;
/**
* 状态(1-生效 2-已撤销)
*/
status: string;
/**
* 附件OSS ID列表,逗号分隔
*/
attachmentOssIds: string;
/**
* 创建者
*/
createBy: string | number;
/**
* 创建时间
*/
createTime: string;
/**
* 更新者
*/
updateBy: string | number;
/**
* 更新时间
*/
updateTime: string;
}
export interface DisciplineRecordForm {
/**
* 主键ID
*/
id?: string | number;
/**
* 学生ID
*/
studentId?: string | number;
/**
* 学号
*/
studentNo?: string;
/**
* 学生姓名
*/
studentName?: string;
/**
* 学院ID
*/
collegeId?: string | number;
/**
* 学院名称
*/
collegeName?: string;
/**
* 专业ID
*/
majorId?: string | number;
/**
* 专业名称
*/
majorName?: string;
/**
* 班级ID
*/
classId?: string | number;
/**
* 班级名称
*/
className?: string;
/**
* 违纪处分类型ID
*/
disciplineTypeId?: string | number;
/**
* 违纪处分类型名称
*/
disciplineTypeName?: string;
/**
* 违纪处分日期
*/
disciplineDate?: string;
/**
* 违纪处分原因
*/
disciplineReason?: string;
/**
* 违纪处分内容
*/
disciplineContent?: string;
/**
* 扣分分值
*/
scoreDeduction?: number;
/**
* 状态(1-生效 2-已撤销)
*/
status?: string;
/**
* 附件OSS ID列表,逗号分隔
*/
attachmentOssIds?: string;
}
export interface DisciplineRecordQuery extends PageQuery {
/**
* 学生ID
*/
studentId?: string | number;
/**
* 学号
*/
studentNo?: string;
/**
* 学生姓名
*/
studentName?: string;
/**
* 学院ID
*/
collegeId?: string | number;
/**
* 学院名称
*/
collegeName?: string;
/**
* 专业ID
*/
majorId?: string | number;
/**
* 专业名称
*/
majorName?: string;
/**
* 班级ID
*/
classId?: string | number;
/**
* 班级名称
*/
className?: string;
/**
* 违纪处分类型ID
*/
disciplineTypeId?: string | number;
/**
* 违纪处分类型名称
*/
disciplineTypeName?: string;
/**
* 违纪处分日期
*/
disciplineDate?: string;
/**
* 违纪处分原因
*/
disciplineReason?: string;
/**
* 违纪处分内容
*/
disciplineContent?: string;
/**
* 扣分分值
*/
scoreDeduction?: number;
/**
* 状态(1-生效 2-已撤销)
*/
status?: string;
/**
* 日期范围参数
*/
dateRange?: string[];
}
/**
* 学生考核-学生选项
*/
export interface XskhStudentOptionVO {
/**
* 学生ID
*/
id: string | number;
/**
* 学号
*/
studentNo: string;
/**
* 学生姓名
*/
name: string;
/**
* 学院ID
*/
collegeId: string | number;
/**
* 学院名称
*/
collegeName: string;
/**
* 专业ID
*/
majorId: string | number;
/**
* 专业名称
*/
majorName: string;
/**
* 班级ID
*/
classId: string | number;
/**
* 班级名称
*/
className: string;
}
@@ -0,0 +1,110 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { DisciplineRevokeVO, DisciplineRevokeForm, DisciplineRevokeQuery } from './types';
/**
* 查询违纪处分撤销申请审批列表
* @param query
* @returns {*}
*/
export const listDisciplineRevoke = (query?: DisciplineRevokeQuery): AxiosPromise<DisciplineRevokeVO[]> => {
return request({
url: '/disciplineRevoke/disciplineRevoke/list',
method: 'get',
params: query
});
};
/**
* 查询违纪处分撤销申请审批详细
* @param id
*/
export const getDisciplineRevoke = (id: string | number): AxiosPromise<DisciplineRevokeVO> => {
return request({
url: '/disciplineRevoke/disciplineRevoke/' + id,
method: 'get'
});
};
/**
* 新增违纪处分撤销申请审批
* @param data
*/
export const addDisciplineRevoke = (data: DisciplineRevokeForm) => {
return request({
url: '/disciplineRevoke/disciplineRevoke',
method: 'post',
data: data
});
};
/**
* 修改违纪处分撤销申请审批
* @param data
*/
export const updateDisciplineRevoke = (data: DisciplineRevokeForm) => {
return request({
url: '/disciplineRevoke/disciplineRevoke',
method: 'put',
data: data
});
};
/**
* 删除违纪处分撤销申请审批
* @param id
*/
export const delDisciplineRevoke = (id: string | number | Array<string | number>) => {
return request({
url: '/disciplineRevoke/disciplineRevoke/' + id,
method: 'delete'
});
};
/**
* 根据违纪记录ID查询撤销申请记录
* @param disciplineRecordId 违纪记录ID
*/
export const getDisciplineRevokeByRecordId = (disciplineRecordId: string | number): AxiosPromise<DisciplineRevokeVO> => {
return request({
url: '/disciplineRevoke/disciplineRevoke/byDisciplineRecord/' + disciplineRecordId,
method: 'get'
});
};
/**
* 查询当前登录学生的撤销申请列表
* @param query
* @returns {*}
*/
export const listMyDisciplineRevoke = (query?: DisciplineRevokeQuery): AxiosPromise<DisciplineRevokeVO[]> => {
return request({
url: '/disciplineRevoke/disciplineRevoke/my',
method: 'get',
params: query
});
};
/**
* 学生申请撤销违纪记录
* @param data
*/
export const applyDisciplineRevoke = (data: DisciplineRevokeForm) => {
return request({
url: '/disciplineRevoke/disciplineRevoke/apply',
method: 'post',
data: data
});
};
/**
* 审核撤销申请
* @param data
*/
export const approveDisciplineRevoke = (data: DisciplineRevokeForm) => {
return request({
url: '/disciplineRevoke/disciplineRevoke/approve',
method: 'put',
data: data
});
};
+192
View File
@@ -0,0 +1,192 @@
import { PageQuery } from '@/types/base';
export interface DisciplineRevokeVO {
/**
* 主键ID
*/
id: string | number;
/**
* 违纪记录ID
*/
disciplineRecordId: string | number;
/**
* 学生ID
*/
studentId: string | number;
/**
* 学生姓名
*/
studentName: string;
/**
* 撤销申请原因
*/
revokeReason: string;
/**
* 撤销证明材料,附件的oss_id,多个用逗号分隔
*/
revokeEvidence: string;
/**
* 申请时间
*/
applyTime: string;
/**
* 状态(1-待审核 2-审核通过 3-审核拒绝)
*/
status: string;
/**
* 审核人ID
*/
approvalBy: string | number;
/**
* 审核人姓名
*/
approvalByName: string;
/**
* 审核时间
*/
approvalTime: string;
/**
* 审核备注
*/
approvalRemark: string;
/**
* 创建者
*/
createBy: string | number;
/**
* 创建时间
*/
createTime: string;
/**
* 更新者
*/
updateBy: string | number;
/**
* 更新时间
*/
updateTime: string;
}
export interface DisciplineRevokeForm {
/**
* 主键ID
*/
id?: string | number;
/**
* 违纪记录ID
*/
disciplineRecordId?: string | number;
/**
* 学生ID
*/
studentId?: string | number;
/**
* 学生姓名
*/
studentName?: string;
/**
* 撤销申请原因
*/
revokeReason?: string;
/**
* 撤销证明材料,附件的oss_id,多个用逗号分隔
*/
revokeEvidence?: string;
/**
* 申请时间
*/
applyTime?: string;
/**
* 状态(1-待审核 2-审核通过 3-审核拒绝)
*/
status?: string;
/**
* 审核人ID
*/
approvalBy?: string | number;
/**
* 审核时间
*/
approvalTime?: string;
/**
* 审核备注
*/
approvalRemark?: string;
}
export interface DisciplineRevokeQuery extends PageQuery {
/**
* 违纪记录ID
*/
disciplineRecordId?: string | number;
/**
* 学生ID
*/
studentId?: string | number;
/**
* 学生姓名
*/
studentName?: string;
/**
* 撤销申请原因
*/
revokeReason?: string;
/**
* 申请时间
*/
applyTime?: string;
/**
* 状态(1-待审核 2-审核通过 3-审核拒绝)
*/
status?: string;
/**
* 审核人ID
*/
approvalBy?: string | number;
/**
* 审核时间
*/
approvalTime?: string;
/**
* 审核备注
*/
approvalRemark?: string;
/**
* 其他参数
*/
params?: any;
}
@@ -0,0 +1,63 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { DisciplineTypeVO, DisciplineTypeForm, DisciplineTypeQuery } from '@/api/xskh/disciplineType/disciplineType/types';
/**
* 查询学生违纪处分类型列表
* @param query
* @returns {*}
*/
export const listDisciplineType = (query?: DisciplineTypeQuery): AxiosPromise<DisciplineTypeVO[]> => {
return request({
url: '/disciplineType/disciplineType/list',
method: 'get',
params: query
});
};
/**
* 查询学生违纪处分类型详细
* @param id
*/
export const getDisciplineType = (id: string | number): AxiosPromise<DisciplineTypeVO> => {
return request({
url: '/disciplineType/disciplineType/' + id,
method: 'get'
});
};
/**
* 新增学生违纪处分类型
* @param data
*/
export const addDisciplineType = (data: DisciplineTypeForm) => {
return request({
url: '/disciplineType/disciplineType',
method: 'post',
data: data
});
};
/**
* 修改学生违纪处分类型
* @param data
*/
export const updateDisciplineType = (data: DisciplineTypeForm) => {
return request({
url: '/disciplineType/disciplineType',
method: 'put',
data: data
});
};
/**
* 删除学生违纪处分类型
* @param id
*/
export const delDisciplineType = (id: string | number | Array<string | number>) => {
return request({
url: '/disciplineType/disciplineType/' + id,
method: 'delete'
});
};
@@ -0,0 +1,120 @@
export interface DisciplineTypeVO {
/**
* 主键ID
*/
id: string | number;
/**
* 类型编码
*/
typeCode: string;
/**
* 类型名称
*/
typeName: string;
/**
* 类型分类(1-违纪类型 2-处分类型)
*/
typeCategory: string;
/**
* 类型说明
*/
remark: string;
/**
* 状态(0-正常 1-停用)
*/
status: string;
/**
* 排序号
*/
sortOrder: number;
/**
* 删除标志(0-未删除 1-已删除)
*/
deleted: number;
}
export interface DisciplineTypeForm extends BaseEntity {
/**
* 主键ID
*/
id?: string | number;
/**
* 类型编码
*/
typeCode?: string;
/**
* 类型名称
*/
typeName?: string;
/**
* 类型分类(1-违纪类型 2-处分类型)
*/
typeCategory?: string;
/**
* 类型说明
*/
remark?: string;
/**
* 状态(0-正常 1-停用)
*/
status?: string;
/**
* 排序号
*/
sortOrder?: number;
/**
* 删除标志(0-未删除 1-已删除)
*/
deleted?: number;
}
export interface DisciplineTypeQuery extends PageQuery {
/**
* 类型编码
*/
typeCode?: string;
/**
* 类型名称
*/
typeName?: string;
/**
* 类型分类(1-违纪类型 2-处分类型)
*/
typeCategory?: string;
/**
* 状态(0-正常 1-停用)
*/
status?: string;
/**
* 排序号
*/
sortOrder?: number;
/**
* 删除标志(0-未删除 1-已删除)
*/
deleted?: number;
/**
* 日期范围参数
*/
params?: any;
}
@@ -0,0 +1,119 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { TableDataInfo, R } from '@/api/types';
import { XskhRewardRecordVo, XskhRewardRecordBo, XskhRewardRecordQuery, XskhRewardRecordForm, XskhStudentOptionVO } from './types';
/**
* 查询学生奖励记录列表
* @param query
* @returns
*/
export function listRewardRecord(query: XskhRewardRecordQuery): AxiosPromise<TableDataInfo<XskhRewardRecordVo>> {
return request({
url: '/rewardRecord/rewardRecord/list',
method: 'get',
params: query
});
}
/**
* 查询学生奖励记录详细
* @param id
* @returns
*/
export function getRewardRecord(id: string | number): AxiosPromise<R<XskhRewardRecordVo>> {
return request({
url: '/rewardRecord/rewardRecord/' + id,
method: 'get'
});
}
/**
* 新增学生奖励记录
* @param data
* @returns
*/
export function addRewardRecord(data: XskhRewardRecordForm): AxiosPromise<R<any>> {
return request({
url: '/rewardRecord/rewardRecord',
method: 'post',
data: data
});
}
/**
* 修改学生奖励记录
* @param data
* @returns
*/
export function updateRewardRecord(data: XskhRewardRecordForm): AxiosPromise<R<any>> {
return request({
url: '/rewardRecord/rewardRecord',
method: 'put',
data: data
});
}
/**
* 删除学生奖励记录
* @param ids
* @returns
*/
export function delRewardRecord(ids: string | string[] | number | number[]): AxiosPromise<R<any>> {
return request({
url: '/rewardRecord/rewardRecord/' + ids,
method: 'delete'
});
}
/**
* 导出学生奖励记录
* @param query
* @returns
*/
export function exportRewardRecord(query: XskhRewardRecordQuery): AxiosPromise<any> {
return request({
url: '/rewardRecord/rewardRecord/export',
method: 'post',
data: query
});
}
/**
* 获取学生选项列表(用于下拉框)
* @param keyword
* @returns
*/
export function getStudentOptions(keyword?: string): AxiosPromise<R<XskhStudentOptionVO[]>> {
return request({
url: '/rewardRecord/rewardRecord/studentOptions',
method: 'get',
params: { keyword }
});
}
/**
* 查询当前登录学生的奖励记录列表
* @param query
* @returns
*/
export function listMyRewardRecords(query: XskhRewardRecordQuery): AxiosPromise<TableDataInfo<XskhRewardRecordVo>> {
return request({
url: '/rewardRecord/rewardRecord/my',
method: 'get',
params: query
});
}
/**
* 查询班主任班级的奖励记录列表(班主任专用)
* @param query
* @returns
*/
export function listClassTeacherRewardRecords(query: XskhRewardRecordQuery): AxiosPromise<TableDataInfo<XskhRewardRecordVo>> {
return request({
url: '/rewardRecord/rewardRecord/classTeacherList',
method: 'get',
params: query
});
}
+211
View File
@@ -0,0 +1,211 @@
import { BaseEntity } from '@/types/axios';
/**
* 学生奖励记录对象
*/
export interface XskhRewardRecordVo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 学生ID */
studentId?: string | number;
/** 学号 */
studentNo?: string;
/** 学生姓名 */
studentName?: string;
/** 学院ID */
collegeId?: string | number;
/** 学院名称 */
collegeName?: string;
/** 专业ID */
majorId?: string | number;
/** 专业名称 */
majorName?: string;
/** 班级ID */
classId?: string | number;
/** 班级名称 */
className?: string;
/** 奖励类型ID */
rewardTypeId?: string | number;
/** 奖励类型名称 */
rewardTypeName?: string;
/** 奖励日期 */
rewardDate?: string;
/** 奖励内容 */
rewardContent?: string;
/** 加分分值 */
scoreAddition?: number;
/** 附件OSS文件ID,多个用逗号分隔 */
attachmentOssIds?: string;
/** 状态(1-生效 2-撤销) */
status?: string;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
}
/**
* 学生奖励记录业务对象
*/
export interface XskhRewardRecordBo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 学生ID */
studentId?: string | number;
/** 学号 */
studentNo?: string;
/** 学生姓名 */
studentName?: string;
/** 学院ID */
collegeId?: string | number;
/** 学院名称 */
collegeName?: string;
/** 专业ID */
majorId?: string | number;
/** 专业名称 */
majorName?: string;
/** 班级ID */
classId?: string | number;
/** 班级名称 */
className?: string;
/** 奖励类型ID */
rewardTypeId?: string | number;
/** 奖励类型名称 */
rewardTypeName?: string;
/** 奖励日期 */
rewardDate?: string;
/** 奖励内容 */
rewardContent?: string;
/** 加分分值 */
scoreAddition?: number;
/** 附件OSS文件ID,多个用逗号分隔 */
attachmentOssIds?: string;
/** 状态(1-生效 2-撤销) */
status?: string;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
}
/**
* 学生奖励记录查询对象
*/
export interface XskhRewardRecordQuery extends BaseEntity {
/** 当前页码 */
pageNum?: number;
/** 每页数量 */
pageSize?: number;
/** 学生ID */
studentId?: string | number;
/** 学号 */
studentNo?: string;
/** 学生姓名 */
studentName?: string;
/** 学院ID */
collegeId?: string | number;
/** 学院名称 */
collegeName?: string;
/** 专业ID */
majorId?: string | number;
/** 专业名称 */
majorName?: string;
/** 班级ID */
classId?: string | number;
/** 班级名称 */
className?: string;
/** 奖励类型ID */
rewardTypeId?: string | number;
/** 奖励类型名称 */
rewardTypeName?: string;
/** 奖励日期 */
rewardDate?: string;
/** 奖励内容 */
rewardContent?: string;
/** 加分分值 */
scoreAddition?: number;
/** 状态(1-生效 2-撤销) */
status?: string;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
/** 请求参数 */
params?: any;
}
/**
* 学生奖励记录表单对象
*/
export interface XskhRewardRecordForm extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 学生ID */
studentId?: string | number;
/** 学号 */
studentNo?: string;
/** 学生姓名 */
studentName?: string;
/** 学院ID */
collegeId?: string | number;
/** 学院名称 */
collegeName?: string;
/** 专业ID */
majorId?: string | number;
/** 专业名称 */
majorName?: string;
/** 班级ID */
classId?: string | number;
/** 班级名称 */
className?: string;
/** 奖励类型ID */
rewardTypeId?: string | number;
/** 奖励类型名称 */
rewardTypeName?: string;
/** 奖励日期 */
rewardDate?: string;
/** 奖励内容 */
rewardContent?: string;
/** 加分分值 */
scoreAddition?: number;
/** 附件OSS文件ID,多个用逗号分隔 */
attachmentOssIds?: string;
/** 状态(1-生效 2-撤销) */
status?: string;
}
/**
* 学生选项VO
*/
export interface XskhStudentOptionVO {
/** 学生ID */
id: string | number;
/** 学号 */
studentNo: string;
/** 学生姓名 */
name: string;
/** 学院ID */
collegeId: string | number;
/** 学院名称 */
collegeName: string;
/** 专业ID */
majorId: string | number;
/** 专业名称 */
majorName: string;
/** 班级ID */
classId: string | number;
/** 班级名称 */
className: string;
}
+80
View File
@@ -0,0 +1,80 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { TableDataInfo, R } from '@/api/types';
import { XskhRewardTypeVo, XskhRewardTypeBo, XskhRewardTypeQuery } from './types';
/**
* 查询奖励类型列表
* @param query
* @returns
*/
export function listRewardType(query: XskhRewardTypeQuery): AxiosPromise<TableDataInfo<XskhRewardTypeVo>> {
return request({
url: '/rewardType/rewardType/list',
method: 'get',
params: query
});
}
/**
* 查询奖励类型详细
* @param id
* @returns
*/
export function getRewardType(id: string | number): AxiosPromise<R<XskhRewardTypeVo>> {
return request({
url: '/rewardType/rewardType/' + id,
method: 'get'
});
}
/**
* 新增奖励类型
* @param data
* @returns
*/
export function addRewardType(data: XskhRewardTypeBo): AxiosPromise<R<any>> {
return request({
url: '/rewardType/rewardType',
method: 'post',
data: data
});
}
/**
* 修改奖励类型
* @param data
* @returns
*/
export function updateRewardType(data: XskhRewardTypeBo): AxiosPromise<R<any>> {
return request({
url: '/rewardType/rewardType',
method: 'put',
data: data
});
}
/**
* 删除奖励类型
* @param ids
* @returns
*/
export function delRewardType(ids: string | string[] | number | number[]): AxiosPromise<R<any>> {
return request({
url: '/rewardType/rewardType/' + ids,
method: 'delete'
});
}
/**
* 导出奖励类型
* @param query
* @returns
*/
export function exportRewardType(query: XskhRewardTypeQuery): AxiosPromise<any> {
return request({
url: '/rewardType/rewardType/export',
method: 'post',
data: query
});
}
@@ -0,0 +1,63 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { RewardTypeVO, RewardTypeForm, RewardTypeQuery } from '@/api/xskh/rewardType/rewardType/types';
/**
* 查询学生奖励类型列表
* @param query
* @returns {*}
*/
export const listRewardType = (query?: RewardTypeQuery): AxiosPromise<RewardTypeVO[]> => {
return request({
url: '/rewardType/rewardType/list',
method: 'get',
params: query
});
};
/**
* 查询学生奖励类型详细
* @param id
*/
export const getRewardType = (id: string | number): AxiosPromise<RewardTypeVO> => {
return request({
url: '/rewardType/rewardType/' + id,
method: 'get'
});
};
/**
* 新增学生奖励类型
* @param data
*/
export const addRewardType = (data: RewardTypeForm) => {
return request({
url: '/rewardType/rewardType',
method: 'post',
data: data
});
};
/**
* 修改学生奖励类型
* @param data
*/
export const updateRewardType = (data: RewardTypeForm) => {
return request({
url: '/rewardType/rewardType',
method: 'put',
data: data
});
};
/**
* 删除学生奖励类型
* @param id
*/
export const delRewardType = (id: string | number | Array<string | number>) => {
return request({
url: '/rewardType/rewardType/' + id,
method: 'delete'
});
};
@@ -0,0 +1,110 @@
export interface RewardTypeVO {
/**
* 主键ID
*/
id: string | number;
/**
* 类型编码
*/
typeCode: string;
/**
* 类型名称
*/
typeName: string;
/**
* 类型说明
*/
description: string;
/**
* 状态(0-正常 1-停用)
*/
status: string;
/**
* 排序号
*/
sortOrder: number;
/**
* 删除标志(0-未删除 1-已删除)
*/
deleted: number;
}
export interface RewardTypeForm extends BaseEntity {
/**
* 主键ID
*/
id?: string | number;
/**
* 类型编码
*/
typeCode?: string;
/**
* 类型名称
*/
typeName?: string;
/**
* 类型说明
*/
description?: string;
/**
* 状态(0-正常 1-停用)
*/
status?: string;
/**
* 排序号
*/
sortOrder?: number;
/**
* 删除标志(0-未删除 1-已删除)
*/
deleted?: number;
}
export interface RewardTypeQuery extends PageQuery {
/**
* 类型编码
*/
typeCode?: string;
/**
* 类型名称
*/
typeName?: string;
/**
* 类型说明
*/
description?: string;
/**
* 状态(0-正常 1-停用)
*/
status?: string;
/**
* 排序号
*/
sortOrder?: number;
/**
* 删除标志(0-未删除 1-已删除)
*/
deleted?: number;
/**
* 日期范围参数
*/
params?: any;
}
+79
View File
@@ -0,0 +1,79 @@
import { BaseEntity } from '@/types/axios';
/**
* 奖励类型对象
*/
export interface XskhRewardTypeVo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 类型编码 */
typeCode?: string;
/** 类型名称 */
typeName?: string;
/** 类型说明 */
description?: string;
/** 状态(0-正常 1-停用) */
status?: string;
/** 排序号 */
sortOrder?: number;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
}
/**
* 奖励类型业务对象
*/
export interface XskhRewardTypeBo extends BaseEntity {
/** 主键ID */
id?: string | number;
/** 类型编码 */
typeCode?: string;
/** 类型名称 */
typeName?: string;
/** 类型说明 */
description?: string;
/** 状态(0-正常 1-停用) */
status?: string;
/** 排序号 */
sortOrder?: number;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
}
/**
* 奖励类型查询对象
*/
export interface XskhRewardTypeQuery extends BaseEntity {
/** 当前页码 */
pageNum?: number;
/** 每页数量 */
pageSize?: number;
/** 类型编码 */
typeCode?: string;
/** 类型名称 */
typeName?: string;
/** 状态(0-正常 1-停用) */
status?: string;
/** 创建者 */
createBy?: string | number;
/** 创建时间 */
createTime?: string;
/** 更新者 */
updateBy?: string | number;
/** 更新时间 */
updateTime?: string;
/** 请求参数 */
params?: any;
}
@@ -0,0 +1,75 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { DisciplineRecordVO, DisciplineRecordForm, DisciplineRecordQuery, XskhStudentOptionVO } from './xsDisciplineRecord/types';
/**
* 查询学生违纪处分记录列表
* @param query
* @returns {*}
*/
export const listDisciplineRecord = (query?: DisciplineRecordQuery): AxiosPromise<DisciplineRecordVO[]> => {
return request({
url: '/disciplineRecord/disciplineRecord/list',
method: 'get',
params: query
});
};
/**
* 查询学生违纪处分记录详细
* @param id
*/
export const getDisciplineRecord = (id: string | number): AxiosPromise<DisciplineRecordVO> => {
return request({
url: '/disciplineRecord/disciplineRecord/' + id,
method: 'get'
});
};
/**
* 新增学生违纪处分记录
* @param data
*/
export const addDisciplineRecord = (data: DisciplineRecordForm) => {
return request({
url: '/disciplineRecord/disciplineRecord',
method: 'post',
data: data
});
};
/**
* 修改学生违纪处分记录
* @param data
*/
export const updateDisciplineRecord = (data: DisciplineRecordForm) => {
return request({
url: '/disciplineRecord/disciplineRecord',
method: 'put',
data: data
});
};
/**
* 删除学生违纪处分记录
* @param id
*/
export const delDisciplineRecord = (id: string | number | Array<string | number>) => {
return request({
url: '/disciplineRecord/disciplineRecord/' + id,
method: 'delete'
});
};
/**
* 查询学生选项列表(用于下拉框)
* @param keyword
*/
export const getStudentOptions = (keyword?: string): AxiosPromise<XskhStudentOptionVO[]> => {
return request({
url: '/disciplineRecord/disciplineRecord/studentOptions',
method: 'get',
params: { keyword }
});
};
@@ -0,0 +1,342 @@
import { PageQuery } from '@/types/base';
export interface DisciplineRecordVO {
/**
* 主键ID
*/
id: string | number;
/**
* 学生ID
*/
studentId: string | number;
/**
* 学号
*/
studentNo: string;
/**
* 学生姓名
*/
studentName: string;
/**
* 学院ID
*/
collegeId: string | number;
/**
* 学院名称
*/
collegeName: string;
/**
* 专业ID
*/
majorId: string | number;
/**
* 专业名称
*/
majorName: string;
/**
* 班级ID
*/
classId: string | number;
/**
* 班级名称
*/
className: string;
/**
* 违纪处分类型ID
*/
disciplineTypeId: string | number;
/**
* 违纪处分类型名称
*/
disciplineTypeName: string;
/**
* 违纪处分日期
*/
disciplineDate: string;
/**
* 违纪处分原因
*/
disciplineReason: string;
/**
* 违纪处分内容
*/
disciplineContent: string;
/**
* 扣分分值
*/
scoreDeduction: number;
/**
* 状态(1-生效 2-已撤销)
*/
status: string;
/**
* 附件OSS ID列表,逗号分隔
*/
attachmentOssIds: string;
/**
* 创建者
*/
createBy: string | number;
/**
* 创建时间
*/
createTime: string;
/**
* 更新者
*/
updateBy: string | number;
/**
* 更新时间
*/
updateTime: string;
}
export interface DisciplineRecordForm {
/**
* 主键ID
*/
id?: string | number;
/**
* 学生ID
*/
studentId?: string | number;
/**
* 学号
*/
studentNo?: string;
/**
* 学生姓名
*/
studentName?: string;
/**
* 学院ID
*/
collegeId?: string | number;
/**
* 学院名称
*/
collegeName?: string;
/**
* 专业ID
*/
majorId?: string | number;
/**
* 专业名称
*/
majorName?: string;
/**
* 班级ID
*/
classId?: string | number;
/**
* 班级名称
*/
className?: string;
/**
* 违纪处分类型ID
*/
disciplineTypeId?: string | number;
/**
* 违纪处分类型名称
*/
disciplineTypeName?: string;
/**
* 违纪处分日期
*/
disciplineDate?: string;
/**
* 违纪处分原因
*/
disciplineReason?: string;
/**
* 违纪处分内容
*/
disciplineContent?: string;
/**
* 扣分分值
*/
scoreDeduction?: number;
/**
* 状态(1-生效 2-已撤销)
*/
status?: string;
/**
* 附件OSS ID列表,逗号分隔
*/
attachmentOssIds?: string;
}
export interface DisciplineRecordQuery extends PageQuery {
/**
* 学生ID
*/
studentId?: string | number;
/**
* 学号
*/
studentNo?: string;
/**
* 学生姓名
*/
studentName?: string;
/**
* 学院ID
*/
collegeId?: string | number;
/**
* 学院名称
*/
collegeName?: string;
/**
* 专业ID
*/
majorId?: string | number;
/**
* 专业名称
*/
majorName?: string;
/**
* 班级ID
*/
classId?: string | number;
/**
* 班级名称
*/
className?: string;
/**
* 违纪处分类型ID
*/
disciplineTypeId?: string | number;
/**
* 违纪处分类型名称
*/
disciplineTypeName?: string;
/**
* 违纪处分日期
*/
disciplineDate?: string;
/**
* 违纪处分原因
*/
disciplineReason?: string;
/**
* 违纪处分内容
*/
disciplineContent?: string;
/**
* 扣分分值
*/
scoreDeduction?: number;
/**
* 状态(1-生效 2-已撤销)
*/
status?: string;
/**
* 日期范围参数
*/
dateRange?: string[];
}
/**
* 学生考核-学生选项
*/
export interface XskhStudentOptionVO {
/**
* 学生ID
*/
id: string | number;
/**
* 学号
*/
studentNo: string;
/**
* 学生姓名
*/
name: string;
/**
* 学院ID
*/
collegeId: string | number;
/**
* 学院名称
*/
collegeName: string;
/**
* 专业ID
*/
majorId: string | number;
/**
* 专业名称
*/
majorName: string;
/**
* 班级ID
*/
classId: string | number;
/**
* 班级名称
*/
className: string;
}
+1
View File
@@ -103,6 +103,7 @@ export function listEnrollmentInfo(query: EnrollmentInfoQuery) {
## 📱 移动端支持
部分接口支持移动端访问,主要包括:
- 学生在线报名
- 报名状态查询
- 录取结果查询
+115
View File
@@ -0,0 +1,115 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import {
InternshipInfoVO,
InternshipInfoQuery,
InternshipInfoAddBO,
InternshipInfoEditBO,
ClassInfoVO,
InternshipStatisticsVO
} from '@/api/zsjy/types';
import { TableDataInfo, R } from '@/api/types';
/**
* 查询实习信息列表
* @param query 查询参数
*/
export const listInternshipInfo = (query?: InternshipInfoQuery): AxiosPromise<TableDataInfo<InternshipInfoVO>> => {
return request({
url: '/zsjy/internship/list',
method: 'get',
params: query
});
};
/**
* 查询学生实习详细信息
* @param studentId 学生ID
*/
export const getInternshipInfo = (studentId: string | number): AxiosPromise<R<InternshipInfoVO>> => {
return request({
url: `/zsjy/internship/${studentId}`,
method: 'get'
});
};
/**
* 获取当前学生实习信息
* @returns 当前登录学生的实习信息
*/
export const getCurrentStudentInternship = (): AxiosPromise<R<InternshipInfoVO>> => {
return request({
url: '/zsjy/internship/current',
method: 'get'
});
};
/**
* 导出实习信息列表
* @param query 查询参数
*/
export const exportInternshipInfo = (query: InternshipInfoQuery) => {
return request({
url: '/zsjy/internship/export',
method: 'post',
data: query,
responseType: 'blob'
});
};
/**
* 获取班级信息列表(用于下拉选择)
*/
export const getClassOptions = (): AxiosPromise<R<ClassInfoVO[]>> => {
return request({
url: '/zsjy/internship/classes',
method: 'get'
});
};
/**
* 获取实习统计数据
* @param query 查询参数
*/
export const getInternshipStatistics = (query?: InternshipInfoQuery): AxiosPromise<R<InternshipStatisticsVO>> => {
return request({
url: '/zsjy/internship/statistics',
method: 'get',
params: query
});
};
/**
* 新增实习信息
* @param data 实习信息数据
*/
export const addInternshipInfo = (data: InternshipInfoAddBO): AxiosPromise<R<void>> => {
return request({
url: '/zsjy/internship',
method: 'post',
data: data
});
};
/**
* 修改实习信息
* @param data 实习信息数据
*/
export const updateInternshipInfo = (data: InternshipInfoEditBO): AxiosPromise<R<void>> => {
return request({
url: '/zsjy/internship',
method: 'put',
data: data
});
};
/**
* 删除实习信息
* @param internshipId 实习信息ID
*/
export const delInternshipInfo = (internshipId: string | number): AxiosPromise<R<void>> => {
return request({
url: `/zsjy/internship/${internshipId}`,
method: 'delete'
});
};
Loaded 100 of 2419 files, more files were not shown because too many files have changed in this diff. Show more