429 lines
11 KiB
TypeScript
429 lines
11 KiB
TypeScript
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;
|
|
location?: string; // 培训地点
|
|
userId?: number | string;
|
|
userName?: string;
|
|
department?: string;
|
|
status?: string;
|
|
excludeStatus?: 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;
|
|
currentTitle?: string; // 现职称
|
|
currentPosition?: string; // 现岗位
|
|
workStartTime?: string; // 参加工作时间
|
|
phone?: string; // 联系电话
|
|
organizerUnit?: string; // 主办单位
|
|
trainingType?: string; // 培训类型
|
|
trainingFee?: number; // 培训费用
|
|
companions?: string; // 同行人员(JSON字符串)
|
|
trainingPurpose?: string; // 培训目的
|
|
reason?: string;
|
|
status: string;
|
|
applyTime: string;
|
|
currentApprover?: string;
|
|
location?: string;
|
|
duration?: number;
|
|
startTime?: string;
|
|
endTime?: string;
|
|
rejectTime?: string; // 拒绝时间
|
|
attachmentIds?: string; // 附件ID列表
|
|
createTime: string;
|
|
updateTime: string;
|
|
createBy: number; // 修正类型:string -> number
|
|
updateBy: number; // 修正类型:string -> number
|
|
remark: string;
|
|
}
|
|
|
|
// 培训申请表单类型
|
|
export interface ApplicationForm {
|
|
applicationId?: number | string;
|
|
courseId: number | string;
|
|
courseName?: string; // 自定义课程名称
|
|
userId?: number | string;
|
|
userName?: string;
|
|
department?: string;
|
|
position?: string;
|
|
currentTitle?: string; // 现职称
|
|
currentPosition?: string; // 现岗位
|
|
workStartTime?: string; // 参加工作时间
|
|
phone?: string; // 联系电话
|
|
organizerUnit?: string; // 主办单位
|
|
trainingType?: string; // 培训类型
|
|
trainingTypeOther?: string; // 其他培训类型描述
|
|
trainingFee?: number; // 培训费用
|
|
companions?: (string | number)[]; // 同行人员数组
|
|
trainingPurpose?: string; // 培训目的
|
|
reason?: string;
|
|
status?: string;
|
|
location?: string;
|
|
duration?: number;
|
|
startTime?: string;
|
|
endTime?: string;
|
|
attachmentIds?: string[]; // 附件ID数组
|
|
remark?: string;
|
|
}
|
|
|
|
// 培训记录查询参数类型
|
|
export interface RecordQuery {
|
|
pageNum: number;
|
|
pageSize: number;
|
|
courseId?: number | string;
|
|
courseName?: string;
|
|
userId?: number | string;
|
|
userName?: string;
|
|
location?: string;
|
|
department?: string;
|
|
completionStatus?: string;
|
|
includeApprovedApplications?: boolean; // 是否包含已通过审批的申请数据
|
|
params?: Record<string, any>;
|
|
}
|
|
|
|
// 培训记录数据类型
|
|
export interface RecordVO {
|
|
recordId: number | string;
|
|
applicationId?: number | string;
|
|
courseId: number | string;
|
|
courseName: string;
|
|
userId: number | string;
|
|
userName: string;
|
|
location?: 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;
|
|
}
|
|
|
|
// ============================================
|
|
// 注意:培训课程模块已废弃 (2025-01-03)
|
|
// 课程信息现在直接存储在 rs_training_application 表中
|
|
// 以下培训课程相关接口已移除,请使用培训申请相关接口
|
|
// ============================================
|
|
|
|
// 查询培训申请列表
|
|
export function listTrainingApplication(query: ApplicationQuery) {
|
|
return request({
|
|
url: '/rs/training/application/list',
|
|
method: 'get',
|
|
params: query
|
|
});
|
|
}
|
|
|
|
// 查询待审批的培训申请列表(供审批人使用)
|
|
export function listPendingTrainingApplication(query: ApplicationQuery) {
|
|
return request({
|
|
url: '/rs/training/application/pending/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 listMyTrainingRecord(query: RecordQuery) {
|
|
return request({
|
|
url: '/rs/training/record/my',
|
|
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',
|
|
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
|
|
});
|
|
}
|