import type { PageParam, PageResult } from '#/packages/effects/request/src';
|
|
import { requestClient } from '#/api/request';
|
|
export namespace HrmTrainingApi {
|
/** 培训参训人员 */
|
export interface Participant {
|
id?: number;
|
trainingId?: number;
|
employeeId?: number;
|
employeeNo?: string;
|
employeeName?: string;
|
attended?: boolean;
|
score?: number;
|
isPass?: boolean;
|
certificateId?: number;
|
remark?: string;
|
createTime?: string;
|
}
|
|
/** 培训活动 */
|
export interface Training {
|
id?: number;
|
trainingNo?: string;
|
name?: string;
|
trainingType?: number;
|
trainingTypeName?: string;
|
trainer?: string;
|
location?: string;
|
hours?: number;
|
startDate?: string;
|
endDate?: string;
|
issueCertificate?: boolean;
|
certValidityMonths?: number;
|
status?: number;
|
statusName?: string;
|
participantCount?: number;
|
participants?: Participant[];
|
remark?: string;
|
createTime?: string;
|
}
|
|
/** 培训活动查询参数 */
|
export interface TrainingPageParam extends PageParam {
|
trainingNo?: string;
|
name?: string;
|
trainingType?: number;
|
status?: number;
|
}
|
}
|
|
/** 查询培训活动分页 */
|
export function getTrainingPage(params: HrmTrainingApi.TrainingPageParam) {
|
return requestClient.get<PageResult<HrmTrainingApi.Training>>(
|
'/hrm/training/page',
|
{ params },
|
);
|
}
|
|
/** 查询培训活动详情(含参训人员) */
|
export function getTraining(id: number) {
|
return requestClient.get<HrmTrainingApi.Training>(`/hrm/training/get?id=${id}`);
|
}
|
|
/** 创建培训活动 */
|
export function createTraining(data: ReqTraining) {
|
return requestClient.post('/hrm/training/create', data);
|
}
|
|
/** 更新培训活动 */
|
export function updateTraining(data: ReqTraining) {
|
return requestClient.put('/hrm/training/update', data);
|
}
|
|
/** 删除培训活动 */
|
export function deleteTraining(ids: number[]) {
|
return requestClient.delete('/hrm/training/delete', { params: { ids: ids.join(',') } });
|
}
|
|
/** 开始培训(草稿 → 待开展) */
|
export function startTraining(id: number) {
|
return requestClient.post('/hrm/training/start', null, { params: { id } });
|
}
|
|
/** 完成培训(草稿/待开展 → 已完成) */
|
export function completeTraining(id: number) {
|
return requestClient.post('/hrm/training/complete', null, { params: { id } });
|
}
|
|
/** 取消培训(草稿/待开展 → 已取消) */
|
export function cancelTraining(id: number) {
|
return requestClient.post('/hrm/training/cancel', null, { params: { id } });
|
}
|
|
/** 批量添加参训员工 */
|
export function addTrainingParticipants(trainingId: number, employeeIds: number[]) {
|
return requestClient.post('/hrm/training-participant/add', { trainingId, employeeIds });
|
}
|
|
/** 更新参训记录 */
|
export function updateTrainingParticipant(data: ReqParticipant) {
|
return requestClient.put('/hrm/training-participant/update', data);
|
}
|
|
/** 删除参训记录 */
|
export function deleteTrainingParticipants(ids: number[]) {
|
return requestClient.delete('/hrm/training-participant/delete', {
|
params: { ids: ids.join(',') },
|
});
|
}
|
|
/** 获取某次培训的参训人员列表 */
|
export function getTrainingParticipants(trainingId: number) {
|
return requestClient.get<HrmTrainingApi.Participant[]>(
|
`/hrm/training-participant/list?trainingId=${trainingId}`,
|
);
|
}
|
|
/** 培训活动新增/更新请求 */
|
export interface ReqTraining {
|
id?: number;
|
name?: string;
|
trainingType?: number;
|
trainer?: string;
|
location?: string;
|
hours?: number;
|
startDate?: string;
|
endDate?: string;
|
issueCertificate?: boolean;
|
certValidityMonths?: number;
|
remark?: string;
|
}
|
|
/** 参训记录更新请求 */
|
export interface ReqParticipant {
|
id?: number;
|
attended?: boolean;
|
score?: number;
|
isPass?: boolean;
|
remark?: string;
|
}
|