lxm final
This commit is contained in:
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;
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
});
|
||||
};
|
||||
@@ -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
|
||||
});
|
||||
};
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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({
|
||||
|
||||
@@ -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: '批量操作成功'
|
||||
};
|
||||
});
|
||||
};
|
||||
@@ -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: '批量操作成功'
|
||||
};
|
||||
});
|
||||
};
|
||||
@@ -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'
|
||||
});
|
||||
};
|
||||
};
|
||||
@@ -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'
|
||||
});
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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'
|
||||
});
|
||||
};
|
||||
@@ -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
|
||||
});
|
||||
}
|
||||
@@ -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';
|
||||
@@ -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
|
||||
});
|
||||
}
|
||||
@@ -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
|
||||
});
|
||||
}
|
||||
@@ -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 }
|
||||
});
|
||||
};
|
||||
@@ -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'
|
||||
});
|
||||
}
|
||||
@@ -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'
|
||||
});
|
||||
};
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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'
|
||||
});
|
||||
}
|
||||
@@ -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'
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -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
|
||||
});
|
||||
}
|
||||
@@ -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'
|
||||
});
|
||||
}
|
||||
@@ -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'
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -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'
|
||||
});
|
||||
}
|
||||
@@ -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
|
||||
});
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -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;
|
||||
}>;
|
||||
}
|
||||
@@ -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'
|
||||
});
|
||||
};
|
||||
@@ -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
|
||||
})
|
||||
}
|
||||
@@ -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'
|
||||
})
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -10,7 +10,7 @@ interface ClassTeacherCounselorRelBo {
|
||||
teacherName?: string;
|
||||
counselorId?: number | string;
|
||||
counselorName?: string;
|
||||
relationType?: number; // 1:班主任 2:辅导员
|
||||
relationType?: number; // 1:班主任 2:辅导员
|
||||
remark?: string;
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ import request from '@/utils/request';
|
||||
// export * from './activity' // 活动管理
|
||||
|
||||
// 导出学工用户模块API
|
||||
export * from './sysUser'
|
||||
export * from './sysUser';
|
||||
|
||||
// 临时导出一个空对象,防止编译错误
|
||||
export default {};
|
||||
@@ -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
|
||||
});
|
||||
};
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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'
|
||||
});
|
||||
}
|
||||
@@ -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'
|
||||
});
|
||||
};
|
||||
@@ -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'
|
||||
});
|
||||
}
|
||||
@@ -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
|
||||
});
|
||||
};
|
||||
@@ -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
|
||||
});
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -103,6 +103,7 @@ export function listEnrollmentInfo(query: EnrollmentInfoQuery) {
|
||||
## 📱 移动端支持
|
||||
|
||||
部分接口支持移动端访问,主要包括:
|
||||
|
||||
- 学生在线报名
|
||||
- 报名状态查询
|
||||
- 录取结果查询
|
||||
|
||||
@@ -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
Reference in new issue
Block a user