This commit is contained in:
李旭明 committed 2025-08-23 09:58:59 +08:00
1 parent e5029688e5
commit 0db0a99c85
288 files changed
+41335 -11400

No files matched your search

+140
View File
@@ -0,0 +1,140 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { StglActivityVO, StglActivityForm, StglActivityQuery, ClubOption, ActivityCopyParams, ActivitySummaryParams, ActivityRatingVO } from './types';
/**
* 查询活动信息列表
* @param query 查询参数
* @returns 活动信息列表
*/
export const listStglActivity = (query?: StglActivityQuery): AxiosPromise<StglActivityVO[]> => {
return request({
url: '/stgl/activity/list',
method: 'get',
params: query
});
};
/**
* 查询活动信息详细
* @param id 活动主键
* @returns 活动信息详情
*/
export const getStglActivity = (id: string | number): AxiosPromise<StglActivityVO> => {
return request({
url: '/stgl/activity/' + id,
method: 'get'
});
};
/**
* 新增活动信息
* @param data 活动信息
* @returns 操作结果
*/
export const addStglActivity = (data: StglActivityForm) => {
return request({
url: '/stgl/activity',
method: 'post',
data: data
});
};
/**
* 修改活动信息
* @param data 活动信息
* @returns 操作结果
*/
export const updateStglActivity = (data: StglActivityForm) => {
return request({
url: '/stgl/activity',
method: 'put',
data: data
});
};
/**
* 删除活动信息
* @param id 活动主键
* @returns 操作结果
*/
export const delStglActivity = (id: string | number | Array<string | number>) => {
return request({
url: '/stgl/activity/' + id,
method: 'delete'
});
};
/**
* 导出活动信息
* @param query 查询参数
* @returns 导出文件
*/
export const exportStglActivity = (query?: StglActivityQuery) => {
return request({
url: '/stgl/activity/export',
method: 'post',
data: query,
responseType: 'blob'
});
};
/**
* 复制活动信息
* @param params 复制参数
* @returns 操作结果
*/
export const copyStglActivity = (params: ActivityCopyParams) => {
return request({
url: '/stgl/activity/copy',
method: 'post',
params: params
});
};
/**
* 活动总结
* @param params 总结参数
* @returns 操作结果
*/
export const summarizeActivity = (params: ActivitySummaryParams) => {
return request({
url: '/stgl/activity/summarize',
method: 'put',
params: params
});
};
/**
* 查询社团选择器选项
* @returns 社团选项列表
*/
export const getClubOptions = (): AxiosPromise<ClubOption[]> => {
return request({
url: '/stgl/activity/club/options',
method: 'get'
});
};
/**
* 查询志愿者队伍选择器选项
* @returns 志愿者队伍选项列表
*/
export const getVolunteerTeamOptions = (): AxiosPromise<ClubOption[]> => {
return request({
url: '/stgl/activity/volunteer/options',
method: 'get'
});
};
/**
* 查询活动评分列表
* @param activityId 活动ID
* @returns 活动评分列表
*/
export const getActivityRatings = (activityId: string | number): AxiosPromise<ActivityRatingVO[]> => {
return request({
url: '/stgl/activity/' + activityId + '/ratings',
method: 'get'
});
};
+650
View File
@@ -0,0 +1,650 @@
export interface StglActivityVO {
/**
* 主键ID
*/
id: string | number;
/**
* 活动名称
*/
activityName?: string;
/**
* 活动类型
*/
activityType?: string;
/**
* 活动主题
*/
activityTheme?: string;
/**
* 开始时间
*/
startTime?: string;
/**
* 结束时间
*/
endTime?: string;
/**
* 活动地点
*/
location?: string;
/**
* 活动简介
*/
description?: string;
/**
* 活动海报路径
*/
posterUrl?: string;
/**
* 关联社团ID
*/
relatedClubId?: string | number;
/**
* 关联社团名称
*/
relatedClubName?: string;
/**
* 关联类型(1-社团 2-志愿者队伍)
*/
relatedType?: number;
/**
* 主办方名称
*/
organizerName?: string;
/**
* 主办方类型
*/
organizerType?: string;
/**
* 主办方联系人
*/
organizerContact?: string;
/**
* 主办方电话
*/
organizerPhone?: string;
/**
* 承办方信息(JSON格式存储多个承办方)
*/
coOrganizers?: string;
/**
* 指导老师列表(JSON格式)
*/
instructors?: string;
/**
* 指导老师列表(AdvisorManager组件使用)
*/
advisors?: any[];
/**
* 报名方式(1-个人 2-团队 3-两者均可)
*/
registrationType?: string;
/**
* 报名开始时间
*/
registrationStart?: string;
/**
* 报名结束时间
*/
registrationEnd?: string;
/**
* 报名状态(0-未开始 1-报名中 2-已截止 3-已关闭)
*/
registrationStatus?: number;
/**
* 总人数上限
*/
maxParticipants?: number;
/**
* 团队数量上限
*/
maxTeams?: number;
/**
* 每队最小人数
*/
teamSizeMin?: number;
/**
* 每队最大人数
*/
teamSizeMax?: number;
/**
* 是否需要审核(0-无需 1-需要)
*/
needApproval?: number;
/**
* 活动状态
*/
activityStatus?: string;
/**
* 是否为已办活动
*/
isFinished?: number;
/**
* 活动总结报告
*/
summary?: string;
/**
* 活动成果
*/
achievements?: string;
/**
* 总结报告附件
*/
summaryAttachments?: string;
/**
* 活动成果附件
*/
achievementsAttachments?: string;
/**
* 导入来源信息
*/
importSource?: string;
/**
* 备注
*/
remark?: string;
/**
* 创建者
*/
createBy?: number;
/**
* 创建时间
*/
createTime?: string;
/**
* 更新者
*/
updateBy?: number;
/**
* 更新时间
*/
updateTime?: string;
/**
* 创建者姓名
*/
createByName?: string;
/**
* 报名人数统计
*/
registrationCount?: number;
/**
* 平均评分
*/
averageRating?: number;
}
export interface StglActivityForm {
/**
* 主键ID
*/
id?: string | number;
/**
* 活动名称
*/
activityName?: string;
/**
* 活动类型
*/
activityType?: string;
/**
* 活动主题
*/
activityTheme?: string;
/**
* 开始时间
*/
startTime?: string;
/**
* 结束时间
*/
endTime?: string;
/**
* 活动地点
*/
location?: string;
/**
* 活动简介
*/
description?: string;
/**
* 活动海报路径
*/
posterUrl?: string;
/**
* 关联社团ID
*/
relatedClubId?: string | number;
/**
* 关联类型 (1: 社团, 2: 志愿者队伍)
*/
relatedType?: number;
/**
* 关联对象(用于选择器绑定)
*/
relatedClub?: ClubOption | null;
/**
* 主办方名称
*/
organizerName?: string;
/**
* 主办方类型
*/
organizerType?: string;
/**
* 主办方联系人
*/
organizerContact?: string;
/**
* 主办方电话
*/
organizerPhone?: string;
/**
* 承办方信息列表
*/
coOrganizerList?: CoOrganizerInfo[];
/**
* 承办方信息(JSON格式存储多个承办方)
*/
coOrganizers?: string;
/**
* 指导老师列表
*/
instructorList?: InstructorInfo[];
/**
* 指导老师列表(JSON格式)
*/
instructors?: string;
/**
* 指导老师列表(AdvisorManager组件使用)
*/
advisors?: any[];
/**
* 报名方式(1-个人 2-团队 3-两者均可)
*/
registrationType?: string;
/**
* 报名开始时间
*/
registrationStart?: string;
/**
* 报名结束时间
*/
registrationEnd?: string;
/**
* 报名状态(0-未开始 1-报名中 2-已截止 3-已关闭)
*/
registrationStatus?: number;
/**
* 总人数上限
*/
maxParticipants?: number;
/**
* 团队数量上限
*/
maxTeams?: number;
/**
* 每队最小人数
*/
teamSizeMin?: number;
/**
* 每队最大人数
*/
teamSizeMax?: number;
/**
* 是否需要审核(0-无需 1-需要)
*/
needApproval?: number;
/**
* 活动状态
*/
activityStatus?: string;
/**
* 是否为已办活动
*/
isFinished?: number;
/**
* 活动总结报告
*/
summary?: string;
/**
* 活动成果
*/
achievements?: string;
/**
* 总结报告附件
*/
summaryAttachments?: string;
/**
* 活动成果附件
*/
achievementsAttachments?: string;
/**
* 导入来源信息
*/
importSource?: string;
/**
* 备注
*/
remark?: string;
}
export interface StglActivityQuery extends PageQuery {
/**
* 活动名称
*/
activityName?: string;
/**
* 活动类型
*/
activityType?: string;
/**
* 活动主题
*/
activityTheme?: string;
/**
* 开始时间
*/
startTime?: string;
/**
* 结束时间
*/
endTime?: string;
/**
* 活动地点
*/
location?: string;
/**
* 关联社团ID
*/
relatedClubId?: string | number;
/**
* 主办方名称
*/
organizerName?: string;
/**
* 报名方式(1-个人 2-团队 3-两者均可)
*/
registrationType?: string;
/**
* 报名开始时间
*/
registrationStart?: string;
/**
* 报名结束时间
*/
registrationEnd?: string;
/**
* 报名状态(0-未开始 1-报名中 2-已截止 3-已关闭)
*/
registrationStatus?: number;
/**
* 活动状态
*/
activityStatus?: string;
/**
* 是否为已办活动
*/
isFinished?: number;
/**
* 日期范围参数
*/
params?: any;
}
/**
* 社团/志愿者队伍选择器选项
*/
export interface ClubOption {
/**
* ID
*/
relatedClubId: string | number;
/**
* 名称
*/
relatedClubName: string;
/**
* 类型(1-社团 2-志愿者队伍)
*/
relatedType: number;
/**
* 唯一标识(用于组件对象比较)
*/
uniqueKey?: string;
}
/**
* 承办方信息
*/
export interface CoOrganizerInfo {
/**
* 承办方名称
*/
name: string;
/**
* 承办方类型
*/
type?: string;
/**
* 联系人
*/
contact?: string;
/**
* 联系电话
*/
phone?: string;
}
/**
* 指导老师信息
*/
export interface InstructorInfo {
/**
* 老师姓名
*/
name: string;
/**
* 所属部门
*/
dept?: string;
/**
* 联系电话
*/
phone?: string;
/**
* 邮箱
*/
email?: string;
/**
* 指导学时
*/
hours?: number;
}
/**
* 活动复制参数
*/
export interface ActivityCopyParams {
/**
* 源活动ID
*/
sourceId: string | number;
/**
* 新活动名称
*/
newActivityName: string;
}
/**
* 活动总结参数
*/
export interface ActivitySummaryParams {
/**
* 活动ID
*/
id: string | number;
/**
* 总结报告
*/
summary?: string;
/**
* 活动成果
*/
achievements?: string;
/**
* 总结报告附件
*/
summaryAttachments?: string;
/**
* 活动成果附件
*/
achievementsAttachments?: string;
}
/**
* 活动评分信息
*/
export interface ActivityRatingVO {
/**
* 评分ID
*/
id: string | number;
/**
* 活动ID
*/
activityId: string | number;
/**
* 评分人ID
*/
userId: string | number;
/**
* 评分人姓名
*/
userName?: string;
/**
* 评分(1-5分)
*/
ratingScore: number;
/**
* 评分备注
*/
ratingComment?: string;
/**
* 评分时间
*/
ratingTime?: string;
}
@@ -0,0 +1,121 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { StglActivityAttendanceVO, StglActivityAttendanceForm, StglActivityAttendanceQuery } from './types';
/**
* 查询活动考勤签到列表
* @param query
* @returns {*}
*/
export const listStglActivityAttendance = (query?: StglActivityAttendanceQuery): AxiosPromise<StglActivityAttendanceVO[]> => {
return request({
url: '/stgl/activityAttendance/list',
method: 'get',
params: query
});
};
/**
* 查询活动考勤签到详细
* @param id
*/
export const getStglActivityAttendance = (id: string | number): AxiosPromise<StglActivityAttendanceVO> => {
return request({
url: '/stgl/activityAttendance/' + id,
method: 'get'
});
};
/**
* 新增活动考勤签到
* @param data
*/
export const addStglActivityAttendance = (data: StglActivityAttendanceForm) => {
return request({
url: '/stgl/activityAttendance',
method: 'post',
data: data
});
};
/**
* 修改活动考勤签到
* @param data
*/
export const updateStglActivityAttendance = (data: StglActivityAttendanceForm) => {
return request({
url: '/stgl/activityAttendance',
method: 'put',
data: data
});
};
/**
* 删除活动考勤签到
* @param id
*/
export const delStglActivityAttendance = (id: string | number | Array<string | number>) => {
return request({
url: '/stgl/activityAttendance/' + id,
method: 'delete'
});
};
/**
* 导出活动考勤签到
* @param query
*/
export const exportStglActivityAttendance = (query?: StglActivityAttendanceQuery) => {
return request({
url: '/stgl/activityAttendance/export',
method: 'post',
data: query
});
};
/**
* 查询用户已报名成功且进行中的活动列表
*/
export const getUserAvailableActivities = (): AxiosPromise<StglActivityAttendanceVO[]> => {
return request({
url: '/stgl/activityAttendance/userAvailableActivities',
method: 'get'
});
};
/**
* 根据活动ID查询当前用户签到记录
* @param activityId
*/
export const getAttendanceByActivity = (activityId: string | number): AxiosPromise<StglActivityAttendanceVO> => {
return request({
url: '/stgl/activityAttendance/getByActivityAndUser',
method: 'get',
params: { activityId }
});
};
/**
* 用户签到
* @param data
*/
export const signIn = (data: StglActivityAttendanceForm) => {
return request({
url: '/stgl/activityAttendance/signIn',
method: 'post',
data: data
});
};
/**
* 用户签退
* @param data
*/
export const signOut = (data: StglActivityAttendanceForm) => {
return request({
url: '/stgl/activityAttendance/signOut',
method: 'post',
data: data
});
};
@@ -0,0 +1,332 @@
export interface StglActivityAttendanceVO {
/**
* 主键ID
*/
id: string | number;
/**
* 活动ID(关联stgl_activity表)
*/
activityId: string | number;
/**
* 用户ID(关联sys_user表)
*/
userId: string | number;
/**
* 学生姓名
*/
studentName: string;
/**
* 学号
*/
studentNo: string;
/**
* 院系
*/
department: string;
/**
* 专业
*/
major: string;
/**
* 班级
*/
className: string;
/**
* 联系电话
*/
phone: string;
/**
* 邮箱
*/
email: string;
/**
* 签到时间
*/
signInTime: string;
/**
* 签到状态(0-未签到 1-已签到)
*/
signInStatus: number;
/**
* 签到地点
*/
signInLocation: string;
/**
* 签到设备信息
*/
signInDevice: string;
/**
* 签到备注
*/
signInRemark: string;
/**
* 签退时间
*/
signOutTime: string;
/**
* 签退状态(0-未签退 1-已签退)
*/
signOutStatus: number;
/**
* 签退地点
*/
signOutLocation: string;
/**
* 签退设备信息
*/
signOutDevice: string;
/**
* 签退备注
*/
signOutRemark: string;
/**
* 签到状态(0-未签到 1-已签到 2-已签退)
*/
overallStatus: number;
/**
* 创建者
*/
createBy: string | number;
/**
* 创建时间
*/
createTime: string;
/**
* 更新者
*/
updateBy: string | number;
/**
* 更新时间
*/
updateTime: string;
// ===== 关联查询字段 =====
/**
* 活动名称
*/
activityName: string;
/**
* 活动类型
*/
activityType: string;
/**
* 活动主题
*/
activityTheme: string;
/**
* 活动地点
*/
location: string;
/**
* 开始时间
*/
startTime: string;
/**
* 结束时间
*/
endTime: string;
/**
* 记录时间(根据签到状态取sign_in_time或sign_out_time)
*/
recordTime: string;
}
export interface StglActivityAttendanceForm {
/**
* 主键ID
*/
id?: string | number;
/**
* 活动ID(关联stgl_activity表)
*/
activityId?: string | number;
/**
* 用户ID(关联sys_user表)
*/
userId?: string | number;
/**
* 学生姓名
*/
studentName?: string;
/**
* 学号
*/
studentNo?: string;
/**
* 院系
*/
department?: string;
/**
* 专业
*/
major?: string;
/**
* 班级
*/
className?: string;
/**
* 联系电话
*/
phone?: string;
/**
* 邮箱
*/
email?: string;
/**
* 签到时间
*/
signInTime?: string;
/**
* 签到状态(0-未签到 1-已签到)
*/
signInStatus?: number;
/**
* 签到地点
*/
signInLocation?: string;
/**
* 签到设备信息
*/
signInDevice?: string;
/**
* 签到备注
*/
signInRemark?: string;
/**
* 签退时间
*/
signOutTime?: string;
/**
* 签退状态(0-未签退 1-已签退)
*/
signOutStatus?: number;
/**
* 签退地点
*/
signOutLocation?: string;
/**
* 签退设备信息
*/
signOutDevice?: string;
/**
* 签退备注
*/
signOutRemark?: string;
/**
* 签到状态(0-未签到 1-已签到 2-已签退)
*/
overallStatus?: number;
}
export interface StglActivityAttendanceQuery {
/**
* 页码
*/
pageNum?: number;
/**
* 每页大小
*/
pageSize?: number;
/**
* 活动ID(关联stgl_activity表)
*/
activityId?: string | number;
/**
* 活动名称
*/
activityName?: string;
/**
* 用户ID(关联sys_user表)
*/
userId?: string | number;
/**
* 学生姓名
*/
studentName?: string;
/**
* 学号
*/
studentNo?: string;
/**
* 院系
*/
department?: string;
/**
* 专业
*/
major?: string;
/**
* 班级
*/
className?: string;
/**
* 签到状态(0-未签到 1-已签到 2-已签退)
*/
overallStatus?: number;
/**
* 日期范围参数
*/
params?: any;
}
+302
View File
@@ -0,0 +1,302 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import {
StglMaterialTaskVO,
StglMaterialTaskForm,
StglMaterialTaskQuery,
StglMaterialSubmissionVO,
StglMaterialSubmissionForm,
StglMaterialSubmissionQuery
} from './types';
/**
* 查询材料收集任务列表
*/
export function listStglMaterialTask(query: StglMaterialTaskQuery): AxiosPromise<StglMaterialTaskVO[]> {
return request({
url: '/stgl/activitymaterial/list',
method: 'get',
params: query
});
}
/**
* 查询材料收集任务详细
*/
export function getStglMaterialTask(id: string | number): AxiosPromise<StglMaterialTaskVO> {
return request({
url: '/stgl/activitymaterial/' + id,
method: 'get'
});
}
/**
* 新增材料收集任务
*/
export function addStglMaterialTask(data: StglMaterialTaskForm) {
return request({
url: '/stgl/activitymaterial',
method: 'post',
data: data
});
}
/**
* 修改材料收集任务
*/
export function updateStglMaterialTask(data: StglMaterialTaskForm) {
return request({
url: '/stgl/activitymaterial',
method: 'put',
data: data
});
}
/**
* 删除材料收集任务
*/
export function delStglMaterialTask(id: string | number | Array<string | number>) {
return request({
url: '/stgl/activitymaterial/' + id,
method: 'delete'
});
}
/**
* 导出材料收集任务
*/
export function exportStglMaterialTask(query: StglMaterialTaskQuery) {
return request({
url: '/stgl/activitymaterial/export',
method: 'post',
data: query,
responseType: 'blob'
});
}
/**
* 更新任务状态(开启/关闭)
*/
export function updateTaskStatus(id: string | number, taskStatus: number) {
return request({
url: '/stgl/activitymaterial/status',
method: 'put',
params: {
id: id,
taskStatus: taskStatus
}
});
}
/**
* 查询用户可上传的材料收集任务
*/
export function getUploadableTasks(userId: string | number, activityId?: string | number): AxiosPromise<StglMaterialTaskVO[]> {
const params: any = { userId };
if (activityId) {
params.activityId = activityId;
}
return request({
url: '/stgl/activitymaterial/uploadable',
method: 'get',
params: params
});
}
/**
* 验证用户上传权限
*/
export function validateUploadPermission(taskId: string | number, userId: string | number): AxiosPromise<boolean> {
return request({
url: '/stgl/activitymaterial/validate',
method: 'get',
params: {
taskId: taskId,
userId: userId
}
});
}
/**
* 查询活动的材料收集任务
*/
export function getTasksByActivityId(activityId: string | number): AxiosPromise<StglMaterialTaskVO[]> {
return request({
url: '/stgl/activitymaterial/activity/' + activityId,
method: 'get'
});
}
/**
* 更新任务统计信息
*/
export function updateTaskStatistics(taskId: string | number) {
return request({
url: '/stgl/activitymaterial/statistics/' + taskId,
method: 'put'
});
}
/**
* 根据活动名称查询活动选项(用于选择器)
*/
export function getActivityOptions(activityName?: string): AxiosPromise<StglMaterialTaskVO[]> {
return request({
url: '/stgl/activitymaterial/activity/options',
method: 'get',
params: activityName ? { activityName } : {}
});
}
// ==================== 材料提交相关API ====================
/**
* 查询材料提交记录列表
*/
export function listStglMaterialSubmission(query: StglMaterialSubmissionQuery): AxiosPromise<StglMaterialSubmissionVO[]> {
return request({
url: '/stgl/activitymaterial/submission/list',
method: 'get',
params: query
});
}
/**
* 查询材料提交记录详细
*/
export function getStglMaterialSubmission(id: string | number): AxiosPromise<StglMaterialSubmissionVO> {
return request({
url: '/stgl/activitymaterial/submission/' + id,
method: 'get'
});
}
/**
* 新增材料提交记录
*/
export function addStglMaterialSubmission(data: StglMaterialSubmissionForm) {
return request({
url: '/stgl/activitymaterial/submission',
method: 'post',
data: data
});
}
/**
* 修改材料提交记录
*/
export function updateStglMaterialSubmission(data: StglMaterialSubmissionForm) {
return request({
url: '/stgl/activitymaterial/submission',
method: 'put',
data: data
});
}
/**
* 删除材料提交记录
*/
export function delStglMaterialSubmission(id: string | number | Array<string | number>) {
return request({
url: '/stgl/activitymaterial/submission/' + id,
method: 'delete'
});
}
/**
* 导出材料提交记录
*/
export function exportStglMaterialSubmission(query: StglMaterialSubmissionQuery) {
return request({
url: '/stgl/activitymaterial/submission/export',
method: 'post',
data: query,
responseType: 'blob'
});
}
/**
* 材料上传
*/
export function uploadMaterial(data: StglMaterialSubmissionForm) {
return request({
url: '/stgl/activitymaterial/submission/upload',
method: 'post',
data: data
});
}
/**
* 根据任务ID查询提交记录
*/
export function getSubmissionsByTaskId(taskId: string | number): AxiosPromise<StglMaterialSubmissionVO[]> {
return request({
url: '/stgl/activitymaterial/submission/task/' + taskId,
method: 'get'
});
}
/**
* 查询用户在指定任务的提交记录
*/
export function getSubmissionByTaskIdAndUserId(taskId: string | number, userId: string | number): AxiosPromise<StglMaterialSubmissionVO> {
return request({
url: '/stgl/activitymaterial/submission/task/' + taskId + '/user/' + userId,
method: 'get'
});
}
/**
* 查询团队在指定任务的提交记录
*/
export function getSubmissionByTaskIdAndTeamId(taskId: string | number, teamId: string | number): AxiosPromise<StglMaterialSubmissionVO> {
return request({
url: '/stgl/activitymaterial/submission/task/' + taskId + '/team/' + teamId,
method: 'get'
});
}
/**
* 获取任务的提交统计信息
*/
export function getSubmissionStatistics(taskId: string | number): AxiosPromise<any> {
return request({
url: '/stgl/activitymaterial/submission/statistics/' + taskId,
method: 'get'
});
}
/**
* 审核材料
*/
export function reviewSubmission(id: string | number, reviewStatus: number, reviewRemark?: string) {
const params: any = {
reviewStatus: reviewStatus
};
if (reviewRemark) {
params.reviewRemark = reviewRemark;
}
return request({
url: '/stgl/activitymaterial/submission/review/' + id,
method: 'put',
params: params
});
}
/**
* 批量审核材料
*/
export function batchReviewSubmissions(ids: string, reviewStatus: number, reviewRemark?: string) {
const params: any = {
ids: ids,
reviewStatus: reviewStatus
};
if (reviewRemark) {
params.reviewRemark = reviewRemark;
}
return request({
url: '/stgl/activitymaterial/submission/review/batch',
method: 'put',
params: params
});
}
+536
View File
@@ -0,0 +1,536 @@
export interface StglMaterialTaskVO {
/**
* 主键ID
*/
id: string | number;
/**
* 关联活动ID
*/
activityId: string | number;
/**
* 活动名称
*/
activityName: string;
/**
* 任务名称
*/
taskName: string;
/**
* 收集类型(多选,逗号分隔)
*/
collectionTypes: string;
/**
* 收集类型显示名称
*/
collectionTypesDisplay: string;
/**
* 任务描述
*/
taskDescription: string;
/**
* 任务状态(1-开启 0-关闭)
*/
taskStatus: number;
/**
* 任务状态显示名称
*/
taskStatusDisplay: string;
/**
* 截止时间
*/
deadline: string;
/**
* 收集轮次
*/
roundNumber: number;
/**
* 文件大小限制(MB)
*/
fileSizeLimit: number;
/**
* 文件数量限制
*/
fileCountLimit: number;
/**
* 允许的文件类型
*/
allowedFileTypes: string;
/**
* 总参与人数
*/
totalParticipants: number;
/**
* 已提交人数
*/
submittedCount: number;
/**
* 待提交人数
*/
pendingCount: number;
/**
* 备注
*/
remark: string;
/**
* 创建者
*/
createBy: string | number;
/**
* 创建时间
*/
createTime: string;
/**
* 更新者
*/
updateBy: string | number;
/**
* 更新时间
*/
updateTime: string;
/**
* 创建者姓名
*/
createByName: string;
}
export interface StglMaterialTaskForm {
/**
* 主键ID
*/
id?: string | number;
/**
* 关联活动ID
*/
activityId: string | number;
/**
* 任务名称
*/
taskName: string;
/**
* 收集类型(多选,逗号分隔)
*/
collectionTypes: string;
/**
* 任务描述
*/
taskDescription: string;
/**
* 任务状态(1-开启 0-关闭)
*/
taskStatus?: number;
/**
* 截止时间
*/
deadline: string;
/**
* 收集轮次
*/
roundNumber?: number;
/**
* 文件大小限制(MB)
*/
fileSizeLimit: number;
/**
* 文件数量限制
*/
fileCountLimit: number;
/**
* 允许的文件类型
*/
allowedFileTypes?: string;
/**
* 备注
*/
remark?: string;
}
export interface StglMaterialTaskQuery {
/**
* 分页页码
*/
pageNum?: number;
/**
* 分页大小
*/
pageSize?: number;
/**
* 关联活动ID
*/
activityId?: string | number;
/**
* 活动名称
*/
activityName?: string;
/**
* 任务名称
*/
taskName?: string;
/**
* 收集类型
*/
collectionTypes?: string;
/**
* 任务状态(1-开启 0-关闭)
*/
taskStatus?: number;
/**
* 截止时间开始
*/
deadlineStart?: string;
/**
* 截止时间结束
*/
deadlineEnd?: string;
/**
* 创建者姓名
*/
creatorName?: string;
/**
* 时间范围参数(用于日期筛选)
*/
params?: Record<string, any>;
}
export interface StglMaterialSubmissionVO {
/**
* 主键ID
*/
id: string | number;
/**
* 收集任务ID
*/
taskId: string | number;
/**
* 任务名称
*/
taskName: string;
/**
* 活动ID
*/
activityId: string | number;
/**
* 活动名称
*/
activityName: string;
/**
* 用户ID
*/
userId: string | number;
/**
* 学号
*/
studentNo: string;
/**
* 学生姓名
*/
studentName: string;
/**
* 提交类型(1-个人 2-团队)
*/
submissionType: number;
/**
* 提交类型显示名称
*/
submissionTypeDisplay: string;
/**
* 团队ID
*/
teamId: string | number;
/**
* 团队名称
*/
teamName: string;
/**
* 文本内容
*/
contentText: string;
/**
* 附件路径(JSON格式)
*/
fileUrls: string;
/**
* 图片路径(JSON格式)
*/
imageUrls: string;
/**
* 提交时间
*/
submissionTime: string;
/**
* 提交轮次
*/
roundNumber: number;
/**
* 审核状态(0-待审核 1-通过 2-驳回)
*/
reviewStatus: number;
/**
* 审核状态显示名称
*/
reviewStatusDisplay: string;
/**
* 审核时间
*/
reviewTime: string;
/**
* 审核人
*/
reviewBy: string | number;
/**
* 审核人姓名
*/
reviewByName: string;
/**
* 审核意见
*/
reviewRemark: string;
/**
* 创建者
*/
createBy: string | number;
/**
* 创建时间
*/
createTime: string;
/**
* 更新者
*/
updateBy: string | number;
/**
* 更新时间
*/
updateTime: string;
}
export interface StglMaterialSubmissionForm {
/**
* 主键ID
*/
id?: string | number;
/**
* 收集任务ID
*/
taskId: string | number;
/**
* 活动ID
*/
activityId: string | number;
/**
* 用户ID
*/
userId?: string | number;
/**
* 学号
*/
studentNo?: string;
/**
* 学生姓名
*/
studentName?: string;
/**
* 提交类型(1-个人 2-团队)
*/
submissionType: number;
/**
* 团队ID
*/
teamId?: string | number;
/**
* 文本内容
*/
contentText?: string;
/**
* 附件路径(JSON格式)
*/
fileUrls?: string;
/**
* 图片路径(JSON格式)
*/
imageUrls?: string;
/**
* 提交轮次
*/
roundNumber?: number;
}
export interface StglMaterialSubmissionQuery {
/**
* 分页页码
*/
pageNum?: number;
/**
* 分页大小
*/
pageSize?: number;
/**
* 收集任务ID
*/
taskId?: string | number;
/**
* 活动ID
*/
activityId?: string | number;
/**
* 用户ID
*/
userId?: string | number;
/**
* 学号
*/
studentNo?: string;
/**
* 学生姓名
*/
studentName?: string;
/**
* 提交类型(1-个人 2-团队)
*/
submissionType?: number;
/**
* 团队ID
*/
teamId?: string | number;
/**
* 审核状态(0-待审核 1-通过 2-驳回)
*/
reviewStatus?: number;
/**
* 提交轮次
*/
roundNumber?: number;
/**
* 时间范围参数(用于日期筛选)
*/
params?: Record<string, any>;
}
/**
* 活动选项类型(用于选择器)
*/
export interface ActivityOption {
/**
* 活动ID
*/
activityId: string | number;
/**
* 活动名称
*/
activityName: string;
/**
* 活动状态
*/
activityStatus: string;
}
/**
* 材料类型选项(用于多选)
*/
export interface MaterialTypeOption {
/**
* 类型值
*/
value: string;
/**
* 类型标签
*/
label: string;
/**
* 是否选中
*/
checked?: boolean;
}
+127
View File
@@ -0,0 +1,127 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { StglActivityRegistrationVo, StglActivityRegistrationBo, StglActivityRegistrationForm } from './types';
/**
* 查询活动报名管理列表
* @param query
* @returns {*}
*/
export const listActivityRegister = (query?: any): AxiosPromise<StglActivityRegistrationVo[]> => {
return request({
url: '/stgl/activity/register/list',
method: 'get',
params: query,
});
};
/**
* 查询活动报名管理详细
* @param id
*/
export const getActivityRegister = (id: string | number): AxiosPromise<StglActivityRegistrationVo> => {
return request({
url: '/stgl/activity/register/' + id,
method: 'get',
});
};
/**
* 新增活动报名管理
* @param data
*/
export const addActivityRegister = (data: StglActivityRegistrationForm) => {
return request({
url: '/stgl/activity/register',
method: 'post',
data: data,
});
};
/**
* 修改活动报名管理
* @param data
*/
export const updateActivityRegister = (data: StglActivityRegistrationForm) => {
return request({
url: '/stgl/activity/register',
method: 'put',
data: data,
});
};
/**
* 删除活动报名管理
* @param id
*/
export const delActivityRegister = (id: string | number | Array<string | number>) => {
return request({
url: '/stgl/activity/register/' + id,
method: 'delete',
});
};
/**
* 审核活动报名
* @param id 报名ID
* @param approvalStatus 审核状态 1-通过 2-驳回
* @param approvalRemark 审核意见
*/
export const approveActivityRegister = (id: string | number, approvalStatus: number, approvalRemark?: string) => {
return request({
url: `/stgl/activity/register/approve/${id}`,
method: 'post',
params: {
approvalStatus,
approvalRemark,
},
});
};
/**
* 批量审核活动报名
* @param ids 报名ID数组
* @param approvalStatus 审核状态 1-通过 2-驳回
* @param approvalRemark 审核意见
*/
export const batchApproveActivityRegister = (ids: Array<string | number>, approvalStatus: number, approvalRemark?: string) => {
return request({
url: '/stgl/activity/register/batchApprove',
method: 'post',
data: {
ids,
approvalStatus,
approvalRemark,
},
});
};
/**
* 导出活动报名管理
* @param query 查询参数
* @returns 导出文件
*/
export const exportActivityRegister = (query?: any) => {
return request({
url: '/stgl/activity/register/export',
method: 'post',
data: query,
responseType: 'blob'
});
};
/**
* 录入活动报名成绩
* @param id 报名ID
* @param score 成绩内容
*/
export const recordActivityScore = (id: string | number, score: string) => {
return request({
url: `/stgl/activity/register/score/${id}`,
method: 'post',
params: {
score,
},
});
};
+344
View File
@@ -0,0 +1,344 @@
export interface StglActivityRegistrationVo {
/**
* 主键ID
*/
id: string | number;
/**
* 活动ID
*/
activityId: string | number;
/**
* 活动名称
*/
activityName: string;
/**
* 用户ID
*/
userId: string | number;
/**
* 学号
*/
studentNo: string;
/**
* 学生姓名
*/
studentName: string;
/**
* 报名类型(1-个人 2-团队)
*/
registrationType: number;
/**
* 团队ID(团队报名时)
*/
teamId: string | number;
/**
* 团队名称
*/
teamName: string;
/**
* 报名时间
*/
registrationTime: string;
/**
* 申请理由(非必填)
*/
remark: string;
/**
* 审核状态(0-待审核 1-通过 2-驳回)
*/
approvalStatus: number;
/**
* 审核时间
*/
approvalTime: string;
/**
* 审核人
*/
approvalBy: string | number;
/**
* 审核意见
*/
approvalRemark: string;
/**
* 获得成绩
*/
score: string;
/**
* 成绩录入时间
*/
scoreTime: string;
/**
* 成绩录入人
*/
scoreBy: string | number;
/**
* 创建时间
*/
createTime: string;
/**
* 更新时间
*/
updateTime: string;
}
export interface StglActivityRegistrationBo {
/**
* 主键ID
*/
id?: string | number;
/**
* 活动ID
*/
activityId?: string | number;
/**
* 活动名称
*/
activityName?: string;
/**
* 用户ID
*/
userId?: string | number;
/**
* 学号
*/
studentNo?: string;
/**
* 学生姓名
*/
studentName?: string;
/**
* 报名类型(1-个人 2-团队)
*/
registrationType?: number;
/**
* 团队ID(团队报名时)
*/
teamId?: string | number;
/**
* 团队名称
*/
teamName?: string;
/**
* 申请理由(非必填)
*/
remark?: string;
/**
* 审核状态(0-待审核 1-通过 2-驳回)
*/
approvalStatus?: number;
/**
* 审核时间
*/
approvalTime?: string;
/**
* 审核人
*/
approvalBy?: string | number;
/**
* 审核意见
*/
approvalRemark?: string;
/**
* 获得成绩
*/
score?: string;
/**
* 成绩录入人
*/
scoreBy?: string | number;
}
export interface StglActivityRegistrationForm {
/**
* 主键ID
*/
id?: string | number;
/**
* 活动ID
*/
activityId: string | number;
/**
* 用户ID
*/
userId?: string | number;
/**
* 学号
*/
studentNo: string;
/**
* 学生姓名
*/
studentName: string;
/**
* 报名类型(1-个人 2-团队)
*/
registrationType: number;
/**
* 团队ID(团队报名时)
*/
teamId?: string | number;
/**
* 团队名称
*/
teamName?: string;
/**
* 申请理由(非必填)
*/
remark?: string;
/**
* 审核状态(0-待审核 1-通过 2-驳回)
*/
approvalStatus?: number;
/**
* 审核意见
*/
approvalRemark?: string;
/**
* 获得成绩
*/
score?: string;
}
export interface StglActivityRegistrationQuery extends PageQuery {
/**
* 活动ID
*/
activityId?: string | number;
/**
* 用户ID
*/
userId?: string | number;
/**
* 学号
*/
studentNo?: string;
/**
* 学生姓名
*/
studentName?: string;
/**
* 报名类型(1-个人 2-团队)
*/
registrationType?: string;
/**
* 团队名称
*/
teamName?: string;
/**
* 审核状态(0-待审核 1-通过 2-驳回)
*/
approvalStatus?: string;
/**
* 活动名称
*/
activityName?: string;
/**
* 日期范围参数
*/
params?: any;
}
export interface TeamMemberInfo {
/**
* 成员姓名
*/
name: string;
/**
* 学号
*/
studentNo: string;
/**
* 性别
*/
gender?: string;
/**
* 联系电话
*/
phone?: string;
/**
* 邮箱
*/
email?: string;
/**
* 院系
*/
department?: string;
/**
* 专业
*/
major?: string;
/**
* 班级
*/
className?: string;
/**
* 是否为负责人
*/
isLeader?: boolean;
}
export interface PageQuery {
pageNum?: number;
pageSize?: number;
}
@@ -0,0 +1,62 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { StglActivityVo, StglActivityRegistrationVo, StglActivityRegistrationForm } from './types';
/**
* 查询可报名活动列表(仅显示报名状态为0和1的活动)
* @param query
* @returns {*}
*/
export const listRegistrableActivities = (query?: any): AxiosPromise<StglActivityVo[]> => {
return request({
url: '/stgl/activity/registerhall/list',
method: 'get',
params: query,
});
};
/**
* 获取活动详细信息
* @param id
*/
export const getActivityDetail = (id: string | number): AxiosPromise<StglActivityVo> => {
return request({
url: '/stgl/activity/registerhall/' + id,
method: 'get',
});
};
/**
* 学生报名活动
* @param data
*/
export const registerActivity = (data: StglActivityRegistrationForm) => {
return request({
url: '/stgl/activity/registerhall/register',
method: 'post',
data: data,
});
};
/**
* 检查用户是否已报名某活动
* @param activityId
*/
export const checkRegistration = (activityId: string | number): AxiosPromise<boolean> => {
return request({
url: `/stgl/activity/registerhall/checkRegistration/${activityId}`,
method: 'get',
});
};
/**
* 获取用户的报名记录
* @param query
*/
export const getMyRegistrations = (query?: any): AxiosPromise<StglActivityRegistrationVo[]> => {
return request({
url: '/stgl/activity/registerhall/myRegistrations',
method: 'get',
params: query,
});
};
@@ -0,0 +1,425 @@
// 活动相关类型定义
export interface StglActivityVo {
/**
* 主键ID
*/
id: string | number;
/**
* 活动名称
*/
activityName: string;
/**
* 活动类型
*/
activityType: string;
/**
* 活动主题
*/
activityTheme: string;
/**
* 开始时间
*/
startTime: string;
/**
* 结束时间
*/
endTime: string;
/**
* 活动地点
*/
location: string;
/**
* 活动简介
*/
description: string;
/**
* 活动海报路径
*/
posterUrl: string;
/**
* 关联社团ID
*/
relatedClubId: string | number;
/**
* 关联社团名称
*/
relatedClubName?: string;
/**
* 关联类型(1-社团 2-志愿者队伍)
*/
relatedType?: number;
/**
* 主办方名称
*/
organizerName: string;
/**
* 主办方类型
*/
organizerType: string;
/**
* 主办方联系人
*/
organizerContact: string;
/**
* 主办方电话
*/
organizerPhone: string;
/**
* 承办方信息(JSON格式存储多个承办方)
*/
coOrganizers: string;
/**
* 指导老师列表(JSON格式)
*/
instructors: string;
/**
* 报名方式(1-个人 2-团队 3-两者均可)
*/
registrationType: number;
/**
* 报名开始时间
*/
registrationStart: string;
/**
* 报名结束时间
*/
registrationEnd: string;
/**
* 报名状态(0-未开始 1-报名中 2-已截止 3-已关闭)
*/
registrationStatus: number;
/**
* 总人数上限
*/
maxParticipants: number;
/**
* 团队数量上限
*/
maxTeams: number;
/**
* 每队最小人数
*/
teamSizeMin: number;
/**
* 每队最大人数
*/
teamSizeMax: number;
/**
* 是否需要审核(0-无需 1-需要)
*/
needApproval: number;
/**
* 活动状态
*/
activityStatus: string;
/**
* 是否为已办活动
*/
isFinished: number;
/**
* 活动总结报告
*/
summary: string;
/**
* 活动成果
*/
achievements: string;
/**
* 创建时间
*/
createTime: string;
/**
* 更新时间
*/
updateTime: string;
/**
* 创建者姓名
*/
createByName?: string;
/**
* 报名人数统计
*/
registrationCount?: number;
/**
* 平均评分
*/
averageRating?: number;
}
// 活动报名相关类型定义
export interface StglActivityRegistrationVo {
/**
* 主键ID
*/
id: string | number;
/**
* 活动ID
*/
activityId: string | number;
/**
* 活动名称
*/
activityName: string;
/**
* 用户ID
*/
userId: string | number;
/**
* 学号
*/
studentNo: string;
/**
* 学生姓名
*/
studentName: string;
/**
* 报名类型(1-个人 2-团队)
*/
registrationType: number;
/**
* 团队ID(团队报名时)
*/
teamId: string | number;
/**
* 团队名称
*/
teamName: string;
/**
* 报名时间
*/
registrationTime: string;
/**
* 申请理由(非必填)
*/
remark: string;
/**
* 审核状态(0-待审核 1-通过 2-驳回)
*/
approvalStatus: number;
/**
* 审核时间
*/
approvalTime: string;
/**
* 审核人
*/
approvalBy: string | number;
/**
* 审核意见
*/
approvalRemark: string;
/**
* 获得成绩
*/
score: string;
/**
* 成绩录入时间
*/
scoreTime: string;
/**
* 成绩录入人
*/
scoreBy: string | number;
/**
* 创建时间
*/
createTime: string;
/**
* 更新时间
*/
updateTime: string;
}
export interface StglActivityRegistrationForm {
/**
* 主键ID
*/
id?: string | number;
/**
* 活动ID
*/
activityId: string | number;
/**
* 用户ID
*/
userId?: string | number;
/**
* 学号
*/
studentNo: string;
/**
* 学生姓名
*/
studentName: string;
/**
* 报名类型(1-个人 2-团队)
*/
registrationType: number;
/**
* 团队ID(团队报名时)
*/
teamId?: string | number;
/**
* 团队名称
*/
teamName?: string;
/**
* 申请理由(非必填)
*/
remark?: string;
/**
* 团队成员信息(用于团队报名)
*/
teamMembers?: TeamMemberInfo[];
/**
* 团队描述
*/
teamDescription?: string;
/**
* 性别
*/
gender?: string;
/**
* 联系电话
*/
phone?: string;
/**
* 邮箱
*/
email?: string;
/**
* 院系
*/
department?: string;
/**
* 专业
*/
major?: string;
/**
* 班级
*/
className?: string;
}
// 团队成员信息
export interface TeamMemberInfo {
/**
* 用户ID
*/
userId: string | number;
/**
* 学号
*/
studentNo: string;
/**
* 姓名
*/
studentName: string;
/**
* 性别
*/
gender: string;
/**
* 联系电话
*/
phone: string;
/**
* 邮箱
*/
email: string;
/**
* 院系
*/
department: string;
/**
* 专业
*/
major: string;
/**
* 班级
*/
className: string;
/**
* 是否为队长(0-否 1-是)
*/
isLeader: number;
}
+122
View File
@@ -0,0 +1,122 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { StglClubVO, StglClubForm, StglClubQuery } from '@/api/stgl/club/types';
/**
* 查询社团信息列表
* @param query
* @returns {*}
*/
export const listStglClub = (query?: StglClubQuery): AxiosPromise<StglClubVO[]> => {
return request({
url: '/stgl/club/list',
method: 'get',
params: query,
headers: {
isEncrypt: 'true'
}
});
};
/**
* 查询社团信息详细
* @param id
*/
export const getStglClub = (id: string | number): AxiosPromise<StglClubVO> => {
return request({
url: '/stgl/club/' + id,
method: 'get',
headers: {
isEncrypt: 'true'
}
});
};
/**
* 新增社团信息
* @param data
*/
export const addStglClub = (data: StglClubForm) => {
return request({
url: '/stgl/club',
method: 'post',
data: data,
headers: {
isEncrypt: 'true'
}
});
};
/**
* 修改社团信息
* @param data
*/
export const updateStglClub = (data: StglClubForm) => {
return request({
url: '/stgl/club',
method: 'put',
data: data,
headers: {
isEncrypt: 'true'
}
});
};
/**
* 删除社团信息
* @param id
*/
export const delStglClub = (id: string | number | Array<string | number>) => {
return request({
url: '/stgl/club/' + id,
method: 'delete',
headers: {
isEncrypt: 'true'
}
});
};
/**
* 获取社团类型选项
*/
export const getClubTypeOptions = (): AxiosPromise<any[]> => {
return request({
url: '/stgl/club/typeOptions',
method: 'get',
headers: {
isEncrypt: 'true'
}
});
};
/**
* 社团转让
* @param id 社团ID
* @param newPresidentUserId 新社长用户ID
*/
export const transferClub = (id: string | number, newPresidentUserId: number) => {
return request({
url: `/stgl/club/transfer/${id}`,
method: 'post',
params: {
newPresidentUserId: newPresidentUserId
},
headers: {
isEncrypt: 'true'
}
});
};
/**
* 验证当前用户是否为社团社长
* @param id 社团ID
*/
export const checkPresidentRole = (id: string | number) => {
return request({
url: `/stgl/club/checkPresident/${id}`,
method: 'get',
headers: {
isEncrypt: 'true'
}
});
};
+415
View File
@@ -0,0 +1,415 @@
import { StudentVO } from '@/api/xg/student/types';
import { TeacherVO } from '@/api/system/teacher/types';
import { VicePresidentVO } from '@/components/VicePresidentManager/index.vue';
import { AdvisorVO } from '@/components/AdvisorManager/index.vue';
export interface StglClubVO {
/**
* 主键ID
*/
id: string | number;
/**
* 社团名称
*/
clubName: string;
/**
* 社团类型
*/
clubType: string;
/**
* 成立日期
*/
establishDate: string;
/**
* 社团简介
*/
description: string;
/**
* 邮箱
*/
email: string;
/**
* 电话
*/
phone: string;
/**
* logo图片路径
*/
logoUrl: string;
/**
* 社长信息对象
*/
presidentStudent: StudentVO;
/**
* 社长姓名
*/
presidentName: string;
/**
* 社长学号
*/
presidentStudentNo: string;
/**
* 社长院系
*/
presidentDept: string;
/**
* 社长专业
*/
presidentMajor: string;
/**
* 社长班级
*/
presidentClass: string;
/**
* 社长联系方式
*/
presidentPhone: string;
/**
* 副社长列表
*/
vicePresidents: VicePresidentVO[];
/**
* 副社长姓名(兼容旧版本)
*/
vicePresidentName: string;
/**
* 副社长学号(兼容旧版本)
*/
vicePresidentStudentNo: string;
/**
* 副社长院系(兼容旧版本)
*/
vicePresidentDept: string;
/**
* 副社长专业(兼容旧版本)
*/
vicePresidentMajor: string;
/**
* 副社长班级(兼容旧版本)
*/
vicePresidentClass: string;
/**
* 副社长联系方式(兼容旧版本)
*/
vicePresidentPhone: string;
/**
* 指导老师列表
*/
advisors: AdvisorVO[];
/**
* 指导老师姓名(兼容旧版本)
*/
advisorName: string;
/**
* 指导老师所属院系(兼容旧版本)
*/
advisorDept: string;
/**
* 指导老师联系电话(兼容旧版本)
*/
advisorPhone: string;
/**
* 指导老师邮箱(兼容旧版本)
*/
advisorEmail: string;
/**
* 副社长列表JSON格式存储
*/
vicePresidentsJson?: string;
/**
* 指导老师列表JSON格式存储
*/
advisorsJson?: string;
/**
* 成员规模上限
*/
memberLimit: number;
/**
* 组织架构
*/
departments: string;
/**
* 招新周期
*/
recruitCycle: string;
/**
* 招新时间
*/
recruitTime: string;
/**
* 活动频率
*/
activityFrequency: string;
/**
* 经费来源(多选数组)
*/
fundingSources: string[];
/**
* 章程文档路径
*/
charterUrl: string;
/**
* 状态
*/
status: string;
/**
* 备注
*/
remark: string;
/**
* 当前成员数量
*/
memberCount: number;
/**
* 创建时间
*/
createTime: string;
}
export interface StglClubForm {
/**
* 主键ID
*/
id?: string | number;
/**
* 社团名称
*/
clubName?: string;
/**
* 社团类型
*/
clubType?: string;
/**
* 成立日期
*/
establishDate?: string;
/**
* 社团简介
*/
description?: string;
/**
* 邮箱
*/
email?: string;
/**
* 电话
*/
phone?: string;
/**
* logo图片路径
*/
logoUrl?: string;
/**
* 社长信息对象
*/
presidentStudent?: StudentVO | null;
/**
* 社长姓名
*/
presidentName?: string;
/**
* 社长学号
*/
presidentStudentNo?: string;
/**
* 社长院系
*/
presidentDept?: string;
/**
* 社长专业
*/
presidentMajor?: string;
/**
* 社长班级
*/
presidentClass?: string;
/**
* 社长联系方式
*/
presidentPhone?: string;
/**
* 副社长列表
*/
vicePresidents?: VicePresidentVO[];
/**
* 副社长姓名(兼容旧版本)
*/
vicePresidentName?: string;
/**
* 副社长学号(兼容旧版本)
*/
vicePresidentStudentNo?: string;
/**
* 副社长院系(兼容旧版本)
*/
vicePresidentDept?: string;
/**
* 副社长专业(兼容旧版本)
*/
vicePresidentMajor?: string;
/**
* 副社长班级(兼容旧版本)
*/
vicePresidentClass?: string;
/**
* 副社长联系方式(兼容旧版本)
*/
vicePresidentPhone?: string;
/**
* 指导老师列表
*/
advisors?: AdvisorVO[];
/**
* 指导老师姓名(兼容旧版本)
*/
advisorName?: string;
/**
* 指导老师所属院系(兼容旧版本)
*/
advisorDept?: string;
/**
* 指导老师联系电话(兼容旧版本)
*/
advisorPhone?: string;
/**
* 指导老师邮箱(兼容旧版本)
*/
advisorEmail?: string;
/**
* 成员规模上限
*/
memberLimit?: number;
/**
* 组织架构
*/
departments?: string;
/**
* 招新周期
*/
recruitCycle?: string;
/**
* 招新时间
*/
recruitTime?: string;
/**
* 活动频率
*/
activityFrequency?: string;
/**
* 经费来源(多选数组)
*/
fundingSources?: string[];
/**
* 章程文档路径
*/
charterUrl?: string;
/**
* 状态
*/
status?: string;
/**
* 备注
*/
remark?: string;
/**
* 当前成员数量
*/
memberCount?: number;
}
export interface StglClubQuery extends PageQuery {
/**
* 社团名称
*/
clubName?: string;
/**
* 社团类型
*/
clubType?: string;
/**
* 状态
*/
status?: string;
/**
* 日期范围参数
*/
params?: any;
}
+106
View File
@@ -0,0 +1,106 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { StglMemberVO, StglMemberForm, StglMemberQuery } from '@/api/stgl/member/types';
/**
* 查询社团成员列表
* @param query
* @returns {*}
*/
export const listStglMember = (query?: StglMemberQuery): AxiosPromise<StglMemberVO[]> => {
return request({
url: '/stgl/member/list',
method: 'get',
params: query,
headers: {
isEncrypt: 'true'
}
});
};
/**
* 查询社团成员详细
* @param id
*/
export const getStglMember = (id: string | number): AxiosPromise<StglMemberVO> => {
return request({
url: '/stgl/member/' + id,
method: 'get',
headers: {
isEncrypt: 'true'
}
});
};
/**
* 新增社团成员
* @param data
*/
export const addStglMember = (data: StglMemberForm) => {
return request({
url: '/stgl/member',
method: 'post',
data: data,
headers: {
isEncrypt: 'true'
}
});
};
/**
* 修改社团成员
* @param data
*/
export const updateStglMember = (data: StglMemberForm) => {
return request({
url: '/stgl/member',
method: 'put',
data: data,
headers: {
isEncrypt: 'true'
}
});
};
/**
* 删除社团成员
* @param id
*/
export const delStglMember = (id: string | number | Array<string | number>) => {
return request({
url: '/stgl/member/' + id,
method: 'delete',
headers: {
isEncrypt: 'true'
}
});
};
/**
* 获取角色类型选项
*/
export const getRoleTypeOptions = (): AxiosPromise<any[]> => {
return request({
url: '/stgl/member/roleOptions',
method: 'get',
headers: {
isEncrypt: 'true'
}
});
};
/**
* 审核成员申请
* @param id 成员ID
* @param approved 是否通过(true-通过,false-拒绝)
*/
export const approveMember = (id: string | number, approved: boolean) => {
return request({
url: `/stgl/member/approve/${id}`,
method: 'put',
params: { approved },
headers: {
isEncrypt: 'true'
}
});
};
+232
View File
@@ -0,0 +1,232 @@
import { StudentVO } from '@/api/xg/student/types';
export interface StglMemberVO {
/**
* 主键ID
*/
id: string | number;
/**
* 成员类型(1-社团成员 2-志愿者)
*/
memberType: number;
/**
* 关联ID(社团ID)
*/
relationId: string | number;
/**
* 社团名称
*/
clubName: string;
/**
* 用户ID
*/
userId: string | number;
/**
* 学号
*/
studentNo: string;
/**
* 学生姓名
*/
studentName: string;
/**
* 性别
*/
gender: string;
/**
* 院系
*/
department: string;
/**
* 专业
*/
major: string;
/**
* 班级
*/
className: string;
/**
* 联系方式
*/
phone: string;
/**
* 邮箱
*/
email: string;
/**
* 角色类型
*/
roleType: number;
/**
* 角色名称
*/
roleName: string;
/**
* 加入时间
*/
joinTime: string;
/**
* 状态
*/
status: string;
/**
* 备注
*/
remark: string;
/**
* 创建时间
*/
createTime: string;
}
export interface StglMemberForm {
/**
* 主键ID
*/
id?: string | number;
/**
* 成员类型(1-社团成员 2-志愿者)
*/
memberType?: number;
/**
* 关联ID(社团ID)
*/
relationId?: string | number;
/**
* 用户ID
*/
userId?: string | number;
/**
* 选择的学生对象
*/
selectedStudent?: StudentVO | null;
/**
* 学号
*/
studentNo?: string;
/**
* 学生姓名
*/
studentName?: string;
/**
* 性别
*/
gender?: string;
/**
* 院系
*/
department?: string;
/**
* 专业
*/
major?: string;
/**
* 班级
*/
className?: string;
/**
* 联系方式
*/
phone?: string;
/**
* 邮箱
*/
email?: string;
/**
* 角色类型
*/
roleType?: number;
/**
* 角色名称
*/
roleName?: string;
/**
* 加入时间
*/
joinTime?: string;
/**
* 状态
*/
status?: string;
/**
* 备注
*/
remark?: string;
}
export interface StglMemberQuery extends PageQuery {
/**
* 成员类型(1-社团成员 2-志愿者)
*/
memberType?: number;
/**
* 关联ID(社团ID)
*/
relationId?: string | number;
/**
* 社团名称
*/
clubName?: string;
/**
* 学号
*/
studentNo?: string;
/**
* 学生姓名
*/
studentName?: string;
/**
* 角色类型
*/
roleType?: number;
/**
* 状态
*/
status?: string;
/**
* 日期范围参数
*/
params?: any;
}
+68
View File
@@ -0,0 +1,68 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { MyClubVO, MyVolunteerTeamVO, MyActivityVO, MyRegistrationVO, ActivityRatingForm, MyRegistrationQuery, MyClubQuery, MyVolunteerQuery, MyActivityQuery } from './types';
/**
* 查询我参与的社团列表
*/
export function getMyClubs(query?: MyClubQuery): AxiosPromise<MyClubVO[]> {
return request({
url: '/stgl/my/clubs',
method: 'get',
params: query
});
}
/**
* 查询我参与的志愿团队列表
*/
export function getMyVolunteerTeams(query?: MyVolunteerQuery): AxiosPromise<MyVolunteerTeamVO[]> {
return request({
url: '/stgl/my/volunteerTeams',
method: 'get',
params: query
});
}
/**
* 查询我报名的活动列表
*/
export function getMyActivities(query?: MyActivityQuery): AxiosPromise<MyActivityVO[]> {
return request({
url: '/stgl/my/activities',
method: 'get',
params: query
});
}
/**
* 分页查询我的报名记录
*/
export function getMyRegistrations(query: MyRegistrationQuery): AxiosPromise<MyRegistrationVO[]> {
return request({
url: '/stgl/my/registrations',
method: 'get',
params: query
});
}
/**
* 对活动进行评分
*/
export function rateActivity(activityId: string | number, data: ActivityRatingForm): AxiosPromise<void> {
return request({
url: `/stgl/my/activities/${activityId}/rate`,
method: 'post',
data: data
});
}
/**
* 检查是否可以对活动评分
*/
export function canRateActivity(activityId: string | number): AxiosPromise<boolean> {
return request({
url: `/stgl/my/activities/${activityId}/canRate`,
method: 'get'
});
}
+214
View File
@@ -0,0 +1,214 @@
export interface MyClubVO {
/** 社团ID */
id: string | number;
/** 社团名称 */
clubName: string;
/** 社团类型 */
clubType: string;
/** LOGO地址 */
logoUrl?: string;
/** 社长姓名 */
presidentName?: string;
/** 社长院系 */
presidentDept?: string;
/** 指导老师姓名 */
advisorName?: string;
/** 指导老师部门 */
advisorDept?: string;
/** 成员数量 */
memberCount?: number;
/** 成员限制 */
memberLimit?: number;
/** 社团状态 */
status: string;
/** 我的角色 */
myRole: string;
/** 加入时间 */
joinTime: string;
/** 成员状态 */
memberStatus: string;
/** 社团简介 */
description?: string;
/** 成立日期 */
establishDate?: string;
/** 创建时间 */
createTime?: string;
/** 更新时间 */
updateTime?: string;
}
export interface MyVolunteerTeamVO {
/** 团队ID */
id: string | number;
/** 队伍名称 */
teamName: string;
/** 队长姓名 */
leaderName?: string;
/** 队长院系 */
leaderDept?: string;
/** 指导老师姓名 */
advisorName?: string;
/** 指导老师部门 */
advisorDept?: string;
/** 当前成员数量 */
currentMemberCount?: number;
/** 成员限制 */
memberLimit?: number;
/** 团队状态 */
status: string;
/** 我的角色 */
myRole: string;
/** 加入时间 */
joinTime: string;
/** 成员状态 */
memberStatus: string;
/** 队伍简介 */
description?: string;
/** 成立日期 */
establishDate?: string;
/** 联系电话 */
contactPhone?: string;
/** 邮箱 */
email?: string;
/** 创建时间 */
createTime?: string;
/** 更新时间 */
updateTime?: string;
}
export interface MyActivityVO {
/** 活动ID */
id: string | number;
/** 活动名称 */
activityName: string;
/** 活动类型 */
activityType: string;
/** 活动主题 */
activityTheme?: string;
/** 开始时间 */
startTime?: string;
/** 结束时间 */
endTime?: string;
/** 活动地点 */
location?: string;
/** 主办方名称 */
organizerName?: string;
/** 关联类型(1-社团 2-志愿者队伍) */
relatedType?: number;
/** 关联组织名称(社团名称或志愿者团队名称) */
organizationName?: string;
/** 指导老师 */
instructors?: string;
/** 活动状态 */
activityStatus: string;
/** 报名状态 */
registrationStatus?: string;
/** 海报地址 */
posterUrl?: string;
/** 活动简介 */
description?: string;
/** 我的报名时间 */
myRegistrationTime: string;
/** 我的报名状态 */
myRegistrationStatus: string;
/** 我的评分状态(0-未评分 1-已评分) */
myRatingStatus: number;
/** 我的综合评分 */
myRatingScore?: number;
/** 我的评分时间 */
myRatingTime?: string;
/** 活动平均评分 */
averageRating?: number;
/** 是否可以评分 */
canRate: boolean;
/** 创建时间 */
createTime?: string;
/** 更新时间 */
updateTime?: string;
}
export interface MyRegistrationVO {
/** 记录ID */
id: string | number;
/** 报名类型(1-社团 2-志愿团队 3-活动) */
registrationType: string;
/** 目标ID */
targetId: string | number;
/** 名称 */
targetName: string;
/** 类型 */
targetType?: string;
/** 报名时间 */
registrationTime: string;
/** 审核状态 */
approvalStatus: string;
/** 审核时间 */
approvalTime?: string;
/** 审核人 */
approvalBy?: string;
/** 备注信息 */
remark?: string;
/** 当前状态 */
currentStatus: string;
/** 角色 */
role?: string;
/** 组织者/负责人 */
organizer?: string;
/** 时间信息 */
timeInfo?: string;
/** 地点信息 */
location?: string;
/** 创建时间 */
createTime?: string;
/** 更新时间 */
updateTime?: string;
}
export interface ActivityRatingForm {
/** 活动ID */
activityId: string | number;
/** 学号 */
studentNo?: string;
/** 学生姓名 */
studentName?: string;
/** 内容评分(1-5分) */
contentScore: number;
/** 组织评分(1-5分) */
organizationScore: number;
/** 体验评分(1-5分) */
experienceScore: number;
/** 评价意见 */
ratingComment?: string;
}
export interface MyClubQuery {
/** 社团名称 */
clubName?: string;
/** 社团类型 */
clubType?: string;
}
export interface MyVolunteerQuery {
/** 队伍名称 */
teamName?: string;
}
export interface MyActivityQuery {
/** 活动名称 */
activityName?: string;
/** 活动类型 */
activityType?: string;
/** 是否评分 */
isRated?: string;
}
export interface MyRegistrationQuery {
/** 页码 */
pageNum?: number;
/** 每页显示记录数 */
pageSize?: number;
/** 报名类型 */
registrationType?: string;
/** 审核状态 */
approvalStatus?: string;
}
+80
View File
@@ -0,0 +1,80 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { StglClubRegisterVO, StglClubRegisterQuery, StglRegisterForm } from '@/api/stgl/register/types';
/**
* 查询社团报名大厅列表
* @param query
* @returns {*}
*/
export const listStglClubRegister = (query?: StglClubRegisterQuery): AxiosPromise<StglClubRegisterVO[]> => {
return request({
url: '/stgl/clubRegister/list',
method: 'get',
params: query,
headers: {
isEncrypt: 'true'
}
});
};
/**
* 查询推荐社团列表
* @param query
* @returns {*}
*/
export const listRecommendedClubs = (query?: StglClubRegisterQuery): AxiosPromise<StglClubRegisterVO[]> => {
return request({
url: '/stgl/clubRegister/recommend',
method: 'get',
params: query,
headers: {
isEncrypt: 'true'
}
});
};
/**
* 查询我的社团列表
* @param query
* @returns {*}
*/
export const listMyClubs = (query?: StglClubRegisterQuery): AxiosPromise<StglClubRegisterVO[]> => {
return request({
url: '/stgl/clubRegister/myClubs',
method: 'get',
params: query,
headers: {
isEncrypt: 'true'
}
});
};
/**
* 申请加入社团
* @param data
*/
export const applyJoinClub = (data: StglRegisterForm) => {
return request({
url: `/stgl/clubRegister/apply?clubId=${data.clubId}`,
method: 'post',
data: { reason: data.reason },
headers: {
isEncrypt: 'true'
}
});
};
/**
* 退出社团
* @param clubId
*/
export const quitClub = (clubId: string | number) => {
return request({
url: '/stgl/clubRegister/quit/' + clubId,
method: 'delete',
headers: {
isEncrypt: 'true'
}
});
};
+261
View File
@@ -0,0 +1,261 @@
export interface StglClubRegisterVO {
/**
* 主键ID
*/
id: string | number;
/**
* 社团名称
*/
clubName: string;
/**
* 社团类型
*/
clubType: string;
/**
* 社团简介
*/
description: string;
/**
* logo图片路径
*/
logoUrl: string;
/**
* 社长姓名
*/
presidentName: string;
/**
* 指导老师姓名
*/
advisorName: string;
/**
* 成员规模上限
*/
memberLimit: number;
/**
* 当前成员数量
*/
currentMemberCount: number;
/**
* 是否可报名
*/
canRegister: boolean;
/**
* 招新周期
*/
recruitCycle: string;
/**
* 招新时间
*/
recruitTime: string;
/**
* 活动频率
*/
activityFrequency: string;
/**
* 我在该社团的角色类型
*/
myRoleType?: number;
/**
* 我加入该社团的时间
*/
myJoinTime?: string;
/**
* 我在该社团的角色名称
*/
myRoleName?: string;
/**
* 是否已报名/加入
*/
hasRegistered?: boolean;
// ========== 新增字段 ==========
/**
* 成立日期
*/
establishDate?: string;
/**
* 经费来源
*/
fundingSources?: string[];
/**
* 电话
*/
phone?: string;
/**
* 邮箱
*/
email?: string;
/**
* 社长院系
*/
presidentDept?: string;
/**
* 社长专业
*/
presidentMajor?: string;
/**
* 社长班级
*/
presidentClass?: string;
/**
* 社长联系方式
*/
presidentPhone?: string;
/**
* 社长学号
*/
presidentStudentNo?: string;
/**
* 副社长姓名
*/
vicePresidentName?: string;
/**
* 副社长院系
*/
vicePresidentDept?: string;
/**
* 副社长专业
*/
vicePresidentMajor?: string;
/**
* 副社长班级
*/
vicePresidentClass?: string;
/**
* 副社长联系方式
*/
vicePresidentPhone?: string;
/**
* 副社长学号
*/
vicePresidentStudentNo?: string;
/**
* 副社长信息数组(支持多个副社长)
*/
vicePresidents?: Array<{
name: string;
dept?: string;
major?: string;
className?: string;
phone?: string;
studentNo?: string;
}>;
/**
* 指导老师部门
*/
advisorDept?: string;
/**
* 指导老师电话
*/
advisorPhone?: string;
/**
* 指导老师邮箱
*/
advisorEmail?: string;
/**
* 指导老师信息数组(支持多个指导老师)
*/
advisors?: Array<{
name: string;
dept?: string;
phone?: string;
email?: string;
}>;
/**
* 组织架构
*/
organizationStructure?: string;
/**
* 部门信息(组织架构的另一种表示)
*/
departments?: string;
/**
* 章程文件
*/
charterUrl?: string;
constitutionFile?: string;
constitutionFileUrl?: string;
/**
* 备注信息
*/
remark?: string;
/**
* 备注信息(另一种表示)
*/
remarks?: string;
}
export interface StglClubRegisterQuery extends PageQuery {
/**
* 社团名称
*/
clubName?: string;
/**
* 社团类型
*/
clubType?: string;
/**
* 是否可报名
*/
canRegister?: boolean;
/**
* 日期范围参数
*/
params?: any;
}
export interface StglRegisterForm {
/**
* 社团ID
*/
clubId: string | number;
/**
* 申请理由
*/
reason?: string;
}
+9
View File
@@ -0,0 +1,9 @@
import request from '@/utils/request';
// 统计相关API接口
export function getStatisticsData() {
return request({
url: '/stgl/statistics/data',
method: 'get'
});
}
+212
View File
@@ -0,0 +1,212 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import {
VolunteerMemberVO,
VolunteerMemberForm,
VolunteerMemberQuery,
VolunteerTeamOption,
VolunteerMemberStats,
BatchAssignTeamForm
} from '@/api/stgl/volunteermember/types';
/**
* 查询志愿者成员列表
* @param query
* @returns {*}
*/
export const listVolunteerMember = (query?: VolunteerMemberQuery): AxiosPromise<VolunteerMemberVO[]> => {
return request({
url: '/stgl/volunteer/member/list',
method: 'get',
params: query,
headers: {
isEncrypt: 'true'
}
});
};
/**
* 查询志愿者成员详细
* @param id
* @returns {*}
*/
export const getVolunteerMember = (id: string | number): AxiosPromise<VolunteerMemberVO> => {
return request({
url: '/stgl/volunteer/member/' + id,
method: 'get',
headers: {
isEncrypt: 'true'
}
});
};
/**
* 新增志愿者成员
* @param data
* @returns {*}
*/
export const addVolunteerMember = (data: VolunteerMemberForm): AxiosPromise<any> => {
return request({
url: '/stgl/volunteer/member',
method: 'post',
data: data,
headers: {
isEncrypt: 'true'
}
});
};
/**
* 修改志愿者成员
* @param data
* @returns {*}
*/
export const updateVolunteerMember = (data: VolunteerMemberForm): AxiosPromise<any> => {
return request({
url: '/stgl/volunteer/member',
method: 'put',
data: data,
headers: {
isEncrypt: 'true'
}
});
};
/**
* 删除志愿者成员
* @param ids
* @returns {*}
*/
export const delVolunteerMember = (ids: string | number): AxiosPromise<any> => {
return request({
url: '/stgl/volunteer/member/' + ids,
method: 'delete',
headers: {
isEncrypt: 'true'
}
});
};
/**
* 导入志愿者成员
* @param data
* @returns {*}
*/
export const importVolunteerMember = (data: FormData): AxiosPromise<any> => {
return request({
url: '/stgl/volunteer/member/importData',
method: 'post',
data: data,
headers: {
'Content-Type': 'multipart/form-data',
isEncrypt: 'true'
}
});
};
/**
* 导出志愿者成员
* @param query
* @returns {*}
*/
export const exportVolunteerMember = (query?: VolunteerMemberQuery): AxiosPromise<any> => {
return request({
url: '/stgl/volunteer/member/export',
method: 'post',
params: query,
responseType: 'blob',
headers: {
isEncrypt: 'true'
}
});
};
/**
* 根据队伍ID查询成员
* @param teamId
* @returns {*}
*/
export const getMembersByTeamId = (teamId: string | number): AxiosPromise<VolunteerMemberVO[]> => {
return request({
url: '/stgl/volunteer/member/team/' + teamId,
method: 'get',
headers: {
isEncrypt: 'true'
}
});
};
/**
* 批量分配队伍
* @param data
* @returns {*}
*/
export const batchAssignTeam = (data: BatchAssignTeamForm): AxiosPromise<any> => {
return request({
url: '/stgl/volunteer/member/batchAdd',
method: 'post',
data: data,
headers: {
isEncrypt: 'true'
}
});
};
/**
* 获取成员统计信息
* @returns {*}
*/
export const getVolunteerMemberStats = (): AxiosPromise<VolunteerMemberStats> => {
return request({
url: '/stgl/volunteer/member/stats',
method: 'get',
headers: {
isEncrypt: 'true'
}
});
};
/**
* 下载导入模板
* @returns {*}
*/
export const downloadTemplate = (): AxiosPromise<Blob> => {
return request({
url: '/stgl/volunteer/member/importTemplate',
method: 'post',
responseType: 'blob',
headers: {
isEncrypt: 'true'
}
});
};
/**
* 获取志愿者团队选项列表
* @returns {*}
*/
export const getVolunteerTeamOptions = (): AxiosPromise<VolunteerTeamOption[]> => {
return request({
url: '/stgl/volunteerTeam/options',
method: 'get',
headers: {
isEncrypt: 'true'
}
});
};
/**
* 审核志愿者成员申请
* @param id 成员ID
* @param approved 是否通过(true-通过,false-拒绝)
* @returns {*}
*/
export const approveVolunteerMember = (id: string | number, approved: boolean): AxiosPromise<any> => {
return request({
url: `/stgl/volunteer/member/approve/${id}?approved=${approved}`,
method: 'put',
headers: {
isEncrypt: 'true'
}
});
};
+275
View File
@@ -0,0 +1,275 @@
export interface VolunteerMemberVO {
/**
* 主键ID
*/
id: string | number;
/**
* 学号
*/
studentNo: string;
/**
* 姓名
*/
studentName: string;
/**
* 性别
*/
gender: string;
/**
* 院系
*/
department?: string;
/**
* 专业
*/
major?: string;
/**
* 班级
*/
className: string;
/**
* 联系电话
*/
phone: string;
/**
* 邮箱
*/
email: string;
/**
* 关联ID(志愿者队伍ID)
*/
relationId: string | number;
/**
* 志愿者队伍名称
*/
relationName?: string;
/**
* 成员角色(0队长 1队员)
*/
roleType: string;
/**
* 加入时间
*/
joinTime: string;
/**
* 状态(0正常 1停用)
*/
status: string;
/**
* 备注
*/
remark?: string;
/**
* 创建者
*/
createBy?: string | number;
/**
* 创建时间
*/
createTime?: string;
/**
* 更新者
*/
updateBy?: string | number;
/**
* 更新时间
*/
updateTime?: string;
}
export interface VolunteerMemberForm {
/**
* 主键ID
*/
id?: string | number;
/**
* 学号
*/
studentNo: string;
/**
* 姓名
*/
studentName: string;
/**
* 性别
*/
gender: string;
/**
* 院系
*/
department?: string;
/**
* 专业
*/
major?: string;
/**
* 班级
*/
className: string;
/**
* 联系电话
*/
phone: string;
/**
* 邮箱
*/
email?: string;
/**
* 关联ID(志愿者队伍ID)
*/
relationId: string | number;
/**
* 成员角色(0队长 1队员)
*/
roleType: string;
/**
* 加入时间
*/
joinTime?: string;
/**
* 状态(0正常 1停用)
*/
status?: string;
/**
* 备注
*/
remark?: string;
}
export interface VolunteerMemberQuery {
/**
* 页码
*/
pageNum?: number;
/**
* 页面大小
*/
pageSize?: number;
/**
* 学号
*/
studentNo?: string;
/**
* 姓名
*/
studentName?: string;
/**
* 性别
*/
gender?: string;
/**
* 班级
*/
className?: string;
/**
* 联系电话
*/
phone?: string;
/**
* 关联ID(志愿者队伍ID)
*/
relationId?: string | number;
/**
* 状态(0正常 1停用)
*/
status?: string;
/**
* 开始日期
*/
params?: {
beginTime?: string;
endTime?: string;
};
}
export interface VolunteerTeamOption {
/**
* 团队ID
*/
value: string | number;
/**
* 团队名称
*/
label: string;
}
export interface VolunteerMemberStats {
/**
* 总成员数
*/
totalMembers: number;
/**
* 活跃成员数
*/
activeMembers: number;
/**
* 各团队成员分布
*/
teamDistribution: {
teamName: string;
memberCount: number;
}[];
/**
* 性别分布
*/
genderDistribution: {
male: number;
female: number;
};
}
export interface BatchAssignTeamForm {
/**
* 成员ID列表
*/
memberIds: (string | number)[];
/**
* 目标团队ID
*/
teamId: string | number;
}
@@ -0,0 +1,60 @@
import request from '@/utils/request';
// 查询志愿者队伍列表(报名大厅专用)
export function listVolunteerTeamForRegistration(query: any) {
return request({
url: '/stgl/volunteerTeam/registration/list',
method: 'get',
params: query
});
}
// 查询志愿者队伍列表(学生专用,新权限)
export function listVolunteerTeamForStudentRegistration(query: any) {
return request({
url: '/stgl/volunteerTeam/registration/student/list',
method: 'get',
params: query
});
}
// 查询志愿者队伍详细信息(报名大厅专用)
export function getVolunteerTeamDetail(id: number) {
return request({
url: '/stgl/volunteerTeam/' + id,
method: 'get'
});
}
// 获取志愿者队伍详细信息(学生报名大厅专用)
export function getVolunteerRegistrationInfo(id: number) {
return request({
url: '/stgl/volunteerTeam/registration/' + id,
method: 'get'
});
}
// 申请加入志愿者队伍
export function applyJoinVolunteerTeam(data: any) {
return request({
url: '/stgl/volunteerTeam/apply',
method: 'post',
data: data
});
}
// 查询我的志愿者申请记录
export function getMyVolunteerApplications() {
return request({
url: '/stgl/volunteer/member/myApplications',
method: 'get'
});
}
// 撤销志愿者申请
export function quitVolunteerApplication(applicationId: number) {
return request({
url: '/stgl/volunteer/member/quitApplication/' + applicationId,
method: 'delete'
});
}
+214
View File
@@ -0,0 +1,214 @@
import request from '@/utils/request';
// 查询志愿者队伍列表
export function listVolunteerTeam(query) {
return request({
url: '/stgl/volunteerTeam/list',
method: 'get',
params: query
});
}
// 查询志愿者队伍详细
export function getVolunteerTeam(id) {
return request({
url: '/stgl/volunteerTeam/' + id,
method: 'get'
});
}
// 新增志愿者队伍
export function addVolunteerTeam(data) {
return request({
url: '/stgl/volunteerTeam',
method: 'post',
data: data
});
}
// 修改志愿者队伍
export function updateVolunteerTeam(data) {
return request({
url: '/stgl/volunteerTeam',
method: 'put',
data: data
});
}
// 删除志愿者队伍
export function delVolunteerTeam(ids) {
return request({
url: '/stgl/volunteerTeam/' + ids,
method: 'delete'
});
}
// 导出志愿者队伍
export function exportVolunteerTeam(query) {
return request({
url: '/stgl/volunteerTeam/export',
method: 'post',
params: query
});
}
// 获取志愿者队伍可用选项
export function getVolunteerTeamOptions() {
return request({
url: '/stgl/volunteerTeam/options',
method: 'get'
});
}
// 我的队伍数据
export function getMyVolunteerTeams() {
return request({
url: '/stgl/volunteerTeam/my',
method: 'get'
});
}
// 待处理队伍
export function getPendingVolunteerTeams() {
return request({
url: '/stgl/volunteerTeam/pending',
method: 'get'
});
}
// 队伍规则检查
export function checkVolunteerTeamRules(data) {
return request({
url: '/stgl/volunteerTeam/check',
method: 'post',
data: data
});
}
// 队伍审批
export function approveVolunteerTeam(data) {
return request({
url: '/stgl/volunteerTeam/approve',
method: 'post',
data: data
});
}
// 启用队伍
export function enableVolunteerTeam(ids) {
return request({
url: '/stgl/volunteerTeam/enable/' + ids,
method: 'put'
});
}
// 禁用队伍
export function disableVolunteerTeam(ids) {
return request({
url: '/stgl/volunteerTeam/disable/' + ids,
method: 'put'
});
}
// 获取队伍统计信息
export function getVolunteerTeamStats() {
return request({
url: '/stgl/volunteerTeam/stats',
method: 'get'
});
}
// 批量操作
export function batchVolunteerTeam(data) {
return request({
url: '/stgl/volunteerTeam/batch',
method: 'post',
data: data
});
}
// 申请加入志愿者队伍
export function applyJoinVolunteerTeam(data) {
return request({
url: '/stgl/volunteerTeam/apply',
method: 'post',
data: data
});
}
// 根据姓名搜索学生信息(用于队长选择)
export function searchStudentByName(name) {
return request({
url: '/stgl/volunteerTeam/searchStudentByName',
method: 'get',
params: { name }
});
}
// 根据学号获取学生详细信息(用于自动填充)
export function getStudentByNo(studentNo) {
return request({
url: '/stgl/volunteerTeam/getStudentByNo',
method: 'get',
params: { studentNo }
});
}
// 根据姓名搜索指导老师信息
export function searchTeacherByName(name) {
return request({
url: '/stgl/volunteerTeam/searchTeacherByName',
method: 'get',
params: { name }
});
}
// 根据用户ID获取教师详细信息(用于自动填充)
export function getTeacherById(userId) {
return request({
url: '/stgl/volunteerTeam/getTeacherById',
method: 'get',
params: { userId }
});
}
/**
* 验证当前用户是否为志愿者队伍队长
* @param id 队伍ID
*/
export const checkTeamLeader = (id) => {
return request({
url: `/stgl/volunteerTeam/checkLeader/${id}`,
method: 'get',
headers: {
isEncrypt: 'true'
}
});
};
/**
* 志愿者队伍转让
* @param id 队伍ID
* @param newLeaderUserId 新队长用户ID
*/
export const transferVolunteerTeam = (id, newLeaderUserId) => {
return request({
url: `/stgl/volunteerTeam/transfer/${id}`,
method: 'post',
params: {
newLeaderUserId: newLeaderUserId
},
headers: {
isEncrypt: 'true'
}
});
};
// 查询志愿者队伍报名大厅列表(学生专用)
export function listVolunteerTeamForRegistration(query) {
return request({
url: '/stgl/volunteerTeam/registration/student/list',
method: 'get',
params: query
});
}
+4 -10
View File
@@ -58,7 +58,6 @@ export interface DormRoomVO {
* 备注
*/
remark: string;
}
export interface DormRoomForm extends BaseEntity {
@@ -116,11 +115,9 @@ export interface DormRoomForm extends BaseEntity {
* 备注
*/
remark?: string;
}
export interface DormRoomQuery extends PageQuery {
/**
* 房间编号
*/
@@ -166,11 +163,8 @@ export interface DormRoomQuery extends PageQuery {
*/
deleted?: string;
/**
* 日期范围参数
*/
params?: any;
/**
* 日期范围参数
*/
params?: any;
}
@@ -38,7 +38,6 @@ export interface DormManagerSourceVO {
* 备注
*/
remark: string;
}
export interface DormManagerSourceForm extends BaseEntity {
@@ -81,11 +80,9 @@ export interface DormManagerSourceForm extends BaseEntity {
* 备注
*/
remark?: string;
}
export interface DormManagerSourceQuery extends PageQuery {
/**
* 管理员ID
*/
@@ -116,11 +113,8 @@ export interface DormManagerSourceQuery extends PageQuery {
*/
deleted?: string;
/**
* 日期范围参数
*/
params?: any;
/**
* 日期范围参数
*/
params?: any;
}
@@ -28,7 +28,6 @@ export interface DormManagerBuildingVO {
* 备注
*/
remark: string;
}
export interface DormManagerBuildingForm extends BaseEntity {
@@ -61,11 +60,9 @@ export interface DormManagerBuildingForm extends BaseEntity {
* 备注
*/
remark?: string;
}
export interface DormManagerBuildingQuery extends PageQuery {
/**
* 管理员ID
*/
@@ -86,11 +83,8 @@ export interface DormManagerBuildingQuery extends PageQuery {
*/
deleted?: string;
/**
* 日期范围参数
*/
params?: any;
/**
* 日期范围参数
*/
params?: any;
}
@@ -53,7 +53,6 @@ export interface DormManagerVO {
* 授权范围名称(逗号分隔的字符串)
*/
scopeNames?: string;
}
export interface DormManagerForm extends BaseEntity {
@@ -106,11 +105,9 @@ export interface DormManagerForm extends BaseEntity {
* 备注
*/
remark?: string;
}
export interface DormManagerQuery extends PageQuery {
/**
* 管理员姓名
*/
@@ -151,11 +148,8 @@ export interface DormManagerQuery extends PageQuery {
*/
deleted?: string;
/**
* 日期范围参数
*/
params?: any;
/**
* 日期范围参数
*/
params?: any;
}
@@ -17,8 +17,7 @@ export interface DormBuildingVO {
floors: number;
}
export interface DormBuildingForm extends Omit<DormBuildingVO, 'createTime' | 'createBy' | 'updateTime' | 'updateBy' | 'areaName' | 'campusName'> {
}
export interface DormBuildingForm extends Omit<DormBuildingVO, 'createTime' | 'createBy' | 'updateTime' | 'updateBy' | 'areaName' | 'campusName'> {}
export interface DormBuildingQuery {
buildingCode?: string;
@@ -45,6 +44,3 @@ export interface BuildingTreeSelectVo {
floors?: number;
updateTime?: string;
}
+4 -10
View File
@@ -28,7 +28,6 @@ export interface DormAreaVO {
* 排序号
*/
sortOrder: number;
}
export interface DormAreaForm extends BaseEntity {
@@ -61,11 +60,9 @@ export interface DormAreaForm extends BaseEntity {
* 排序号
*/
sortOrder?: number;
}
export interface DormAreaQuery extends PageQuery {
/**
* 宿舍区编码
*/
@@ -81,10 +78,10 @@ export interface DormAreaQuery extends PageQuery {
*/
areaDescription?: string;
/**
* 日期范围参数
*/
params?: any;
/**
* 日期范围参数
*/
params?: any;
}
/**
@@ -102,6 +99,3 @@ export interface TreeSelectVo {
/** 子节点 */
children?: TreeSelectVo[];
}
+4 -10
View File
@@ -28,7 +28,6 @@ export interface DormCampusVO {
* 备注
*/
remark: string;
}
export interface DormCampusForm extends BaseEntity {
@@ -61,11 +60,9 @@ export interface DormCampusForm extends BaseEntity {
* 备注
*/
remark?: string;
}
export interface DormCampusQuery extends PageQuery {
/**
* 校区编码
*/
@@ -76,11 +73,8 @@ export interface DormCampusQuery extends PageQuery {
*/
campusName?: string;
/**
* 日期范围参数
*/
params?: any;
/**
* 日期范围参数
*/
params?: any;
}
+2 -2
View File
@@ -198,7 +198,7 @@ export function getMockDormTree(): { data: DormTreeNode[] } {
}
// 生成房间数据的模拟数据
export function getMockRooms(buildingId: string | number, floorNumber?: number): { rows: RoomInfo[], total: number } {
export function getMockRooms(buildingId: string | number, floorNumber?: number): { rows: RoomInfo[]; total: number } {
const rooms: RoomInfo[] = [];
// 根据buildingId判断楼层数
@@ -233,7 +233,7 @@ export function getMockRooms(buildingId: string | number, floorNumber?: number):
}
return {
rows: rooms.filter(room => !floorNumber || room.floorNumber === floorNumber),
rows: rooms.filter((room) => !floorNumber || room.floorNumber === floorNumber),
total: rooms.length
};
}
@@ -33,7 +33,6 @@ export interface StuColBatchVO {
* 收集类型 1 - 新学期收集 2 - 其他
*/
collectionType: string;
}
export interface StuColBatchForm extends BaseEntity {
@@ -71,11 +70,9 @@ export interface StuColBatchForm extends BaseEntity {
* 收集类型 1 - 新学期收集 2 - 其他
*/
collectionType?: string;
}
export interface StuColBatchQuery extends PageQuery {
/**
* 批次名称
*/
@@ -91,11 +88,8 @@ export interface StuColBatchQuery extends PageQuery {
*/
collectionType?: string;
/**
* 日期范围参数
*/
params?: any;
/**
* 日期范围参数
*/
params?: any;
}
@@ -48,7 +48,6 @@ export interface ClassMsgVO {
* 备注信息
*/
remark: string;
}
export interface ClassMsgForm extends BaseEntity {
@@ -291,11 +290,9 @@ export interface ClassMsgForm extends BaseEntity {
* 备注信息
*/
remark?: string;
}
export interface ClassMsgQuery extends PageQuery {
/**
* 学院代码
*/
@@ -326,11 +323,8 @@ export interface ClassMsgQuery extends PageQuery {
*/
classStatus?: string;
/**
* 日期范围参数
*/
params?: any;
/**
* 日期范围参数
*/
params?: any;
}
@@ -48,7 +48,6 @@ export interface StuColBatchClassVO {
* 删除标志(0代表存在 1代表删除)
*/
deleted: number;
}
export interface StuColBatchClassForm extends BaseEntity {
@@ -101,11 +100,9 @@ export interface StuColBatchClassForm extends BaseEntity {
* 删除标志(0代表存在 1代表删除)
*/
deleted?: number;
}
export interface StuColBatchClassQuery extends PageQuery {
/**
* 批次ID
*/
@@ -146,11 +143,8 @@ export interface StuColBatchClassQuery extends PageQuery {
*/
deleted?: number;
/**
* 日期范围参数
*/
params?: any;
/**
* 日期范围参数
*/
params?: any;
}
+4 -10
View File
@@ -33,7 +33,6 @@ export interface StuColBatchVO {
* 收集类型 1 - 新学期收集 2 - 其他
*/
collectionType: string;
}
export interface StuColBatchForm extends BaseEntity {
@@ -71,11 +70,9 @@ export interface StuColBatchForm extends BaseEntity {
* 收集类型 1 - 新学期收集 2 - 其他
*/
collectionType?: string;
}
export interface StuColBatchQuery extends PageQuery {
/**
* 批次名称
*/
@@ -91,11 +88,8 @@ export interface StuColBatchQuery extends PageQuery {
*/
collectionType?: string;
/**
* 日期范围参数
*/
params?: any;
/**
* 日期范围参数
*/
params?: any;
}
+4 -10
View File
@@ -33,7 +33,6 @@ export interface StuColBatchVO {
* 收集类型 1 - 新学期收集 2 - 其他
*/
collectionType: string;
}
export interface StuColBatchForm extends BaseEntity {
@@ -71,11 +70,9 @@ export interface StuColBatchForm extends BaseEntity {
* 收集类型 1 - 新学期收集 2 - 其他
*/
collectionType?: string;
}
export interface StuColBatchQuery extends PageQuery {
/**
* 批次名称
*/
@@ -91,11 +88,8 @@ export interface StuColBatchQuery extends PageQuery {
*/
collectionType?: string;
/**
* 日期范围参数
*/
params?: any;
/**
* 日期范围参数
*/
params?: any;
}
+19 -9
View File
@@ -2,7 +2,6 @@ import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { StudentQuery, StudentVO, StudentForm, XgDeptTreeVO, R, TableDataInfo } from './types';
/**
* 查询部门下拉树结构
* @param deptId 部门ID
@@ -32,7 +31,6 @@ export const XgDeptTreeSelect = (belongDeptId?: number): AxiosPromise<XgDeptTree
// }) as any;
};
// 查询学生列表
export function listStudent(query?: StudentQuery): AxiosPromise<R<TableDataInfo<StudentVO[]>>> {
// 实际使用时连接后端接口
@@ -56,11 +54,13 @@ export function listStudent(query?: StudentQuery): AxiosPromise<R<TableDataInfo<
}
// 查询学生详细
export function getStudent(studentId?: string | number): AxiosPromise<R<{
student: StudentVO;
majors: any[];
classes: any[];
}>> {
export function getStudent(studentId?: string | number): AxiosPromise<
R<{
student: StudentVO;
majors: any[];
classes: any[];
}>
> {
if (studentId) {
// 实际使用时连接后端接口
// return request({
@@ -69,7 +69,7 @@ export function getStudent(studentId?: string | number): AxiosPromise<R<{
// });
// 模拟数据
const student = mockStudentData.find(item => item.studentId === studentId);
const student = mockStudentData.find((item) => item.studentId === studentId);
return Promise.resolve({
data: {
code: 200,
@@ -435,4 +435,14 @@ const mockClasses = [
}
];
export default { listStudent, getStudent, addStudent, updateStudent, delStudent, deptTreeSelect, exportStudent, changeStudentStatus, XgDeptTreeSelect };
export default {
listStudent,
getStudent,
addStudent,
updateStudent,
delStudent,
deptTreeSelect,
exportStudent,
changeStudentStatus,
XgDeptTreeSelect
};
@@ -45,7 +45,7 @@ export interface StudentMsgVO {
birthDate: string;
/**
* 民族
* 民族
*/
nationality: string;
@@ -140,7 +140,7 @@ export interface StudentMsgVO {
wechat: string;
/**
* 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶
* 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶
*/
maritalStatus: string;
@@ -518,7 +518,6 @@ export interface StudentMsgVO {
* 备注信息
*/
remark: string;
}
export interface StudentMsgForm extends BaseEntity {
@@ -568,7 +567,7 @@ export interface StudentMsgForm extends BaseEntity {
birthDate?: string;
/**
* 民族
* 民族
*/
nationality?: string;
@@ -663,7 +662,7 @@ export interface StudentMsgForm extends BaseEntity {
wechat?: string;
/**
* 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶
* 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶
*/
maritalStatus?: string;
@@ -1041,11 +1040,9 @@ export interface StudentMsgForm extends BaseEntity {
* 备注信息
*/
remark?: string;
}
export interface StudentMsgQuery extends PageQuery {
/**
* 删除标志(0代表存在 1代表删除)
*/
@@ -1087,7 +1084,7 @@ export interface StudentMsgQuery extends PageQuery {
birthDate?: string;
/**
* 民族
* 民族
*/
nationality?: string;
@@ -1182,7 +1179,7 @@ export interface StudentMsgQuery extends PageQuery {
wechat?: string;
/**
* 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶
* 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶
*/
maritalStatus?: string;
@@ -1556,11 +1553,8 @@ export interface StudentMsgQuery extends PageQuery {
*/
extField5?: string;
/**
* 日期范围参数
*/
params?: any;
/**
* 日期范围参数
*/
params?: any;
}
@@ -45,7 +45,7 @@ export interface StudentMsgBatchVO {
birthDate: string;
/**
* 民族
* 民族
*/
nationality: string;
@@ -140,7 +140,7 @@ export interface StudentMsgBatchVO {
wechat: string;
/**
* 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶
* 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶
*/
maritalStatus: string;
@@ -523,7 +523,6 @@ export interface StudentMsgBatchVO {
* 正在进行中的批次id
*/
batchId: string | number;
}
export interface StudentMsgBatchForm extends BaseEntity {
@@ -573,7 +572,7 @@ export interface StudentMsgBatchForm extends BaseEntity {
birthDate?: string;
/**
* 民族
* 民族
*/
nationality?: string;
@@ -668,7 +667,7 @@ export interface StudentMsgBatchForm extends BaseEntity {
wechat?: string;
/**
* 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶
* 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶
*/
maritalStatus?: string;
@@ -1051,11 +1050,9 @@ export interface StudentMsgBatchForm extends BaseEntity {
* 正在进行中的批次id
*/
batchId?: string | number;
}
export interface StudentMsgBatchQuery extends PageQuery {
/**
* 删除标志(0代表存在 1代表删除)
*/
@@ -1097,7 +1094,7 @@ export interface StudentMsgBatchQuery extends PageQuery {
birthDate?: string;
/**
* 民族
* 民族
*/
nationality?: string;
@@ -1192,7 +1189,7 @@ export interface StudentMsgBatchQuery extends PageQuery {
wechat?: string;
/**
* 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶
* 婚姻状况:1 未婚、2 已婚、3 离异、4 丧偶
*/
maritalStatus?: string;
@@ -1571,11 +1568,8 @@ export interface StudentMsgBatchQuery extends PageQuery {
*/
batchId?: string | number;
/**
* 日期范围参数
*/
params?: any;
/**
* 日期范围参数
*/
params?: any;
}
@@ -53,7 +53,6 @@ export interface XgClassPosDictVO {
* 备注信息
*/
remark: string;
}
export interface XgClassPosDictForm extends BaseEntity {
@@ -111,11 +110,9 @@ export interface XgClassPosDictForm extends BaseEntity {
* 备注信息
*/
remark?: string;
}
export interface XgClassPosDictQuery extends PageQuery {
/**
* 删除标志(0代表存在 1代表删除)
*/
@@ -161,11 +158,8 @@ export interface XgClassPosDictQuery extends PageQuery {
*/
sortOrder?: number;
/**
* 日期范围参数
*/
params?: any;
/**
* 日期范围参数
*/
params?: any;
}
@@ -118,7 +118,6 @@ export interface XgClassPosMsgVO {
* 备注信息
*/
remark: string;
}
export interface XgClassPosMsgForm extends BaseEntity {
@@ -246,11 +245,9 @@ export interface XgClassPosMsgForm extends BaseEntity {
* 备注信息
*/
remark?: string;
}
export interface XgClassPosMsgQuery extends PageQuery {
/**
* 删除标志(0代表存在 1代表删除)
*/
@@ -336,11 +333,8 @@ export interface XgClassPosMsgQuery extends PageQuery {
*/
deptId?: string | number;
/**
* 日期范围参数
*/
params?: any;
/**
* 日期范围参数
*/
params?: any;
}
@@ -63,7 +63,6 @@ export interface XgLeaveTypeConfigVO {
* 销假逾期多少时长给予提醒(天)
*/
cancelOverdueReminder: number;
}
export interface XgLeaveTypeConfigForm extends BaseEntity {
@@ -131,11 +130,9 @@ export interface XgLeaveTypeConfigForm extends BaseEntity {
* 销假逾期多少时长给予提醒(天)
*/
cancelOverdueReminder?: number;
}
export interface XgLeaveTypeConfigQuery extends PageQuery {
/**
* 删除标志(0代表存在 1代表删除)
*/
@@ -156,11 +153,8 @@ export interface XgLeaveTypeConfigQuery extends PageQuery {
*/
isEnabled?: string;
/**
* 日期范围参数
*/
params?: any;
/**
* 日期范围参数
*/
params?: any;
}
@@ -48,7 +48,6 @@ export interface StudentManagerVO {
* 备注
*/
remark: string;
}
export interface StudentManagerForm extends BaseEntity {
@@ -101,11 +100,9 @@ export interface StudentManagerForm extends BaseEntity {
* 备注
*/
remark?: string;
}
export interface StudentManagerQuery extends PageQuery {
/**
* 管理员姓名
*/
@@ -146,11 +143,8 @@ export interface StudentManagerQuery extends PageQuery {
*/
deleted?: string;
/**
* 日期范围参数
*/
params?: any;
/**
* 日期范围参数
*/
params?: any;
}
@@ -1,6 +1,10 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { StudentManagerSourceVO, StudentManagerSourceForm, StudentManagerSourceQuery } from '@/api/xg/xsjcxx/xgStudentManagerSource/studentManagerSource/types';
import {
StudentManagerSourceVO,
StudentManagerSourceForm,
StudentManagerSourceQuery
} from '@/api/xg/xsjcxx/xgStudentManagerSource/studentManagerSource/types';
/**
* 查询学生管理员授权关系列表
@@ -38,7 +38,6 @@ export interface StudentManagerSourceVO {
* 备注
*/
remark: string;
}
export interface StudentManagerSourceForm extends BaseEntity {
@@ -81,11 +80,9 @@ export interface StudentManagerSourceForm extends BaseEntity {
* 备注
*/
remark?: string;
}
export interface StudentManagerSourceQuery extends PageQuery {
/**
* 管理员ID
*/
@@ -116,11 +113,8 @@ export interface StudentManagerSourceQuery extends PageQuery {
*/
deleted?: string;
/**
* 日期范围参数
*/
params?: any;
/**
* 日期范围参数
*/
params?: any;
}
@@ -1 +0,0 @@
+44 -43
View File
@@ -1,4 +1,5 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import {
XljkConsultationScheduleVO,
XljkConsultationScheduleForm,
@@ -14,44 +15,44 @@ import {
// ===== 预约时段管理 API =====
// 查询预约时段列表
export const listSchedule = (query: XljkConsultationScheduleQuery) => {
export const listXljkSchedule = (query: XljkConsultationScheduleQuery): AxiosPromise<XljkConsultationScheduleVO[]> => {
return request({
url: '/api/xljk/consultation/schedule/list',
url: '/xljk/consultation/schedule/list',
method: 'get',
params: query
});
};
// 查询预约时段详细信息
export const getSchedule = (id: string | number) => {
export const getXljkSchedule = (id: string | number): AxiosPromise<XljkConsultationScheduleVO> => {
return request({
url: `/api/xljk/consultation/schedule/${id}`,
url: `/xljk/consultation/schedule/${id}`,
method: 'get'
});
};
// 新增预约时段
export const addSchedule = (data: any) => {
export const addXljkSchedule = (data: any) => {
return request({
url: '/api/xljk/consultation/schedule',
url: '/xljk/consultation/schedule',
method: 'post',
data: data
});
};
// 修改预约时段
export const updateSchedule = (data: XljkConsultationScheduleForm) => {
export const updateXljkSchedule = (data: XljkConsultationScheduleForm) => {
return request({
url: '/api/xljk/consultation/schedule',
url: '/xljk/consultation/schedule',
method: 'put',
data: data
});
};
// 删除预约时段
export const delSchedule = (ids: string | number | Array<string | number>) => {
export const delXljkSchedule = (ids: string | number | Array<string | number>) => {
return request({
url: `/api/xljk/consultation/schedule/${typeof ids === 'object' ? ids.join(',') : ids}`,
url: `/xljk/consultation/schedule/${typeof ids === 'object' ? ids.join(',') : ids}`,
method: 'delete'
});
};
@@ -59,59 +60,59 @@ export const delSchedule = (ids: string | number | Array<string | number>) => {
// ===== 预约记录管理 API =====
// 查询预约记录列表
export const listAppointment = (query: XljkConsultationAppointmentQuery) => {
export const listXljkAppointment = (query: XljkConsultationAppointmentQuery): AxiosPromise<XljkConsultationAppointmentVO[]> => {
return request({
url: '/api/xljk/consultation/appointment/list',
url: '/xljk/consultation/appointment/list',
method: 'get',
params: query
});
};
// 查询预约记录详细信息
export const getAppointment = (id: string | number) => {
export const getXljkAppointment = (id: string | number): AxiosPromise<XljkConsultationAppointmentVO> => {
return request({
url: `/api/xljk/consultation/appointment/${id}`,
url: `/xljk/consultation/appointment/${id}`,
method: 'get'
});
};
// 修改预约记录
export const updateAppointment = (data: XljkConsultationAppointmentForm) => {
export const updateXljkAppointment = (data: XljkConsultationAppointmentForm) => {
return request({
url: '/api/xljk/consultation/appointment',
url: '/xljk/consultation/appointment',
method: 'put',
data: data
});
};
// 删除预约记录
export const delAppointment = (ids: string | number | Array<string | number>) => {
export const delXljkAppointment = (ids: string | number | Array<string | number>) => {
return request({
url: `/api/xljk/consultation/appointment/${typeof ids === 'object' ? ids.join(',') : ids}`,
url: `/xljk/consultation/appointment/${typeof ids === 'object' ? ids.join(',') : ids}`,
method: 'delete'
});
};
// 获取可预约时段列表(用于日历视图)
export const getAvailableTimeSlots = (startDate: string, endDate: string) => {
export const getXljkAvailableTimeSlots = (startDate: string, endDate: string): AxiosPromise<AvailableTimeSlot[]> => {
return request({
url: '/api/xljk/consultation/appointment/available-slots',
url: '/xljk/consultation/appointment/available-slots',
method: 'get',
params: { startDate, endDate }
});
};
// 获取可用的详细时段列表(30分钟一个时段)
export const getAvailableDetailSlots = (date: string, timeSlot: string) => {
export const getXljkAvailableDetailSlots = (date: string, timeSlot: string): AxiosPromise<TimeSlotDetail[]> => {
return request({
url: '/api/xljk/consultation/appointment/available-detail-slots',
url: '/xljk/consultation/appointment/available-detail-slots',
method: 'get',
params: { date, timeSlot }
});
};
// 学生提交预约
export const submitAppointment = async (data: XljkConsultationAppointmentForm) => {
export const submitXljkAppointment = async (data: XljkConsultationAppointmentForm) => {
// 检查是否被限制预约
try {
const { checkLimitation } = await import('./noshow');
@@ -129,27 +130,27 @@ export const submitAppointment = async (data: XljkConsultationAppointmentForm) =
console.error('检查预约限制失败', error);
// 检查失败不阻止预约,继续提交
}
// 提交预约申请
return request({
url: '/api/xljk/consultation/appointment/submit',
url: '/xljk/consultation/appointment/submit',
method: 'post',
data: data
});
};
// 获取我的预约记录(学生用)
export const getMyAppointments = (studentId: string | number, forceRefresh: boolean = false) => {
let url = `/api/xljk/consultation/appointment/my-appointments/${studentId}`;
export const getXljkMyAppointments = (studentId: string | number, forceRefresh: boolean = false): AxiosPromise<XljkConsultationAppointmentVO[]> => {
let url = `/xljk/consultation/appointment/my-appointments/${studentId}`;
// 强制添加时间戳参数,确保绕过浏览器缓存
url += `?_t=${new Date().getTime()}`;
// 如果需要额外强制刷新(如用户手动点击刷新按钮)
if (forceRefresh) {
url += `&force=true`;
}
return request({
url,
method: 'get',
@@ -163,52 +164,52 @@ export const getMyAppointments = (studentId: string | number, forceRefresh: bool
};
// 记录咨询结果
export const recordConsultation = (id: string | number, data: any) => {
export const recordXljkConsultation = (id: string | number, data: any) => {
return request({
url: `/api/xljk/consultation/appointment/record-consultation/${id}`,
url: `/xljk/consultation/appointment/record-consultation/${id}`,
method: 'post',
data: data
});
};
// 获取咨询师选项
export const getCounselorOptions = () => {
export const getXljkCounselorOptions = (): AxiosPromise<CounselorOption[]> => {
return request({
url: '/api/xljk/consultation/schedule/options/counselors',
url: '/xljk/consultation/schedule/options/counselors',
method: 'get'
});
};
// 获取学生信息(通过学号)
export const getStudentByNo = (studentNo: string) => {
export const getXljkStudentByNo = (studentNo: string): AxiosPromise<any> => {
return request({
url: `/api/xljk/consultation/student/${studentNo}`,
url: `/xljk/consultation/student/${studentNo}`,
method: 'get'
});
};
// 获取院系选项
export const getCollegeOptions = () => {
export const getXljkConsultationCollegeOptions = (): AxiosPromise<Array<{ value: string; label: string }>> => {
return request({
url: '/api/xljk/consultation/appointment/options/colleges',
url: '/xljk/consultation/appointment/options/colleges',
method: 'get'
});
};
// 获取专业选项
export const getMajorOptions = (collegeName?: string) => {
export const getXljkConsultationMajorOptions = (collegeName?: string): AxiosPromise<Array<{ value: string; label: string }>> => {
return request({
url: '/api/xljk/consultation/appointment/options/majors',
url: '/xljk/consultation/appointment/options/majors',
method: 'get',
params: { collegeName }
});
};
// 获取班级选项
export const getClassOptions = (collegeName?: string, majorName?: string) => {
export const getXljkConsultationClassOptions = (collegeName?: string, majorName?: string): AxiosPromise<Array<{ value: string; label: string }>> => {
return request({
url: '/api/xljk/consultation/appointment/options/classes',
url: '/xljk/consultation/appointment/options/classes',
method: 'get',
params: { collegeName, majorName }
});
};
};
+7 -7
View File
@@ -9,14 +9,14 @@ import { NoShowQuery, NoShowVO } from './types';
export function listNoShow(query: NoShowQuery) {
// 创建一个新的查询对象,避免修改原始对象
const params = { ...query };
// 如果状态是'all',表示"全部",则从参数中移除
if (params.status === 'all') {
delete params.status;
}
return request({
url: '/api/xljk/consultation/no-show/list',
url: '/xljk/consultation/no-show/list',
method: 'get',
params
});
@@ -29,7 +29,7 @@ export function listNoShow(query: NoShowQuery) {
*/
export function getNoShow(id: string | number) {
return request({
url: `/api/xljk/consultation/no-show/${id}`,
url: `/xljk/consultation/no-show/${id}`,
method: 'get'
});
}
@@ -41,7 +41,7 @@ export function getNoShow(id: string | number) {
*/
export function releaseNoShowLimitation(id: string | number) {
return request({
url: `/api/xljk/consultation/no-show/${id}/release`,
url: `/xljk/consultation/no-show/${id}/release`,
method: 'put'
});
}
@@ -53,8 +53,8 @@ export function releaseNoShowLimitation(id: string | number) {
*/
export function checkLimitation(studentId: string | number) {
return request({
url: '/api/xljk/consultation/no-show/check-limitation',
url: '/xljk/consultation/no-show/check-limitation',
method: 'get',
params: { studentId }
});
}
}
+4 -4
View File
@@ -556,17 +556,17 @@ export interface NoShowVO {
* 咨询师名称
*/
counselorName?: string;
/**
* 预约日期
*/
appointmentDate?: string;
/**
* 预约时段
*/
appointmentDetailTime?: string;
/**
* 咨询原因
*/
@@ -601,4 +601,4 @@ export interface NoShowVO {
* 更新时间
*/
updateTime?: string;
}
}
+44 -43
View File
@@ -1,4 +1,5 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import {
XljkEvaluationVO,
XljkEvaluationForm,
@@ -13,179 +14,179 @@ import {
} from './types';
// 查询心理健康测评列表
export const listEvaluation = (query: XljkEvaluationQuery) => {
export const listXljkEvaluation = (query: XljkEvaluationQuery): AxiosPromise<XljkEvaluationVO[]> => {
return request({
url: '/api/xljk/evaluation/list',
url: '/xljk/evaluation/list',
method: 'get',
params: query
});
};
// 查询心理健康测评详细信息
export const getEvaluation = (id: string | number) => {
export const getXljkEvaluation = (id: string | number): AxiosPromise<XljkEvaluationVO> => {
return request({
url: `/api/xljk/evaluation/${id}`,
url: `/xljk/evaluation/${id}`,
method: 'get'
});
};
// 新增心理健康测评
export const addEvaluation = (data: XljkEvaluationForm) => {
export const addXljkEvaluation = (data: XljkEvaluationForm) => {
// 确保必填字段都有值,避免数据库插入错误
if (data.departmentName && !data.departmentId) {
data.departmentId = 0; // 使用临时ID,后端会根据名称处理
}
if (data.majorName && !data.majorId) {
data.majorId = 0; // 使用临时ID,后端会根据名称处理
}
if (data.className && !data.classId) {
data.classId = 0; // 使用临时ID,后端会根据名称处理
}
return request({
url: '/api/xljk/evaluation',
url: '/xljk/evaluation',
method: 'post',
data: data
});
};
// 修改心理健康测评
export const updateEvaluation = (data: XljkEvaluationForm) => {
export const updateXljkEvaluation = (data: XljkEvaluationForm) => {
return request({
url: '/api/xljk/evaluation',
url: '/xljk/evaluation',
method: 'put',
data: data
});
};
// 删除心理健康测评
export const delEvaluation = (ids: string | number | Array<string | number>) => {
export const delXljkEvaluation = (ids: string | number | Array<string | number>) => {
return request({
url: `/api/xljk/evaluation/${typeof ids === 'object' ? ids.join(',') : ids}`,
url: `/xljk/evaluation/${typeof ids === 'object' ? ids.join(',') : ids}`,
method: 'delete'
});
};
// 获取院系选项
export const getDepartmentOptions = () => {
export const getXljkDepartmentOptions = (): AxiosPromise<Array<{ value: string | number; label: string }>> => {
return request({
url: '/api/xljk/evaluation/options/department',
url: '/xljk/evaluation/options/department',
method: 'get'
});
};
// 获取院系选项(新接口)
export const getCollegeOptions = () => {
export const getXljkCollegeOptions = (): AxiosPromise<CollegeOption[]> => {
return request({
url: '/api/xljk/evaluation/options/colleges',
url: '/xljk/evaluation/options/colleges',
method: 'get'
});
};
// 获取专业选项
export const getMajorOptions = (collegeName?: string) => {
export const getXljkMajorOptions = (collegeName?: string): AxiosPromise<MajorOption[]> => {
return request({
url: '/api/xljk/evaluation/options/majors',
url: '/xljk/evaluation/options/majors',
method: 'get',
params: { collegeName }
});
};
// 获取班级选项
export const getClassOptions = (collegeName?: string, majorName?: string) => {
export const getXljkClassOptions = (collegeName?: string, majorName?: string): AxiosPromise<ClassOption[]> => {
return request({
url: '/api/xljk/evaluation/options/classes',
url: '/xljk/evaluation/options/classes',
method: 'get',
params: { collegeName, majorName }
});
};
// 获取班级学生列表
export const getStudentsByClass = (collegeName?: string, majorName?: string, className?: string) => {
export const getXljkStudentsByClass = (collegeName?: string, majorName?: string, className?: string): AxiosPromise<StudentInfo[]> => {
return request({
url: '/api/xljk/evaluation/students',
url: '/xljk/evaluation/students',
method: 'get',
params: { collegeName, majorName, className }
});
};
// 获取学期选项
export const getSemesterOptions = () => {
export const getXljkSemesterOptions = (): AxiosPromise<Array<{ value: string; label: string }>> => {
return request({
url: '/api/xljk/evaluation/options/semester',
url: '/xljk/evaluation/options/semester',
method: 'get'
});
};
// 发布测评(已废弃,改为提交功能)
export const publishEvaluation = (id: string | number) => {
export const publishXljkEvaluation = (id: string | number) => {
return request({
url: `/api/xljk/evaluation/${id}/publish`,
url: `/xljk/evaluation/${id}/publish`,
method: 'put'
});
};
// 提交测评
export const completeEvaluation = (id: string | number) => {
export const completeXljkEvaluation = (id: string | number) => {
return request({
url: `/api/xljk/evaluation/${id}/complete`,
url: `/xljk/evaluation/${id}/complete`,
method: 'put'
});
};
// 获取测评统计数据
export const getEvaluationStatistics = (id: string | number) => {
export const getXljkEvaluationStatistics = (id: string | number): AxiosPromise<any> => {
return request({
url: `/api/xljk/evaluation/${id}/statistics`,
url: `/xljk/evaluation/${id}/statistics`,
method: 'get'
});
};
// 获取重点关注学生统计
export const getFocusStudentsStatistics = (query: XljkEvaluationQuery) => {
export const getXljkFocusStudentsStatistics = (query: XljkEvaluationQuery): AxiosPromise<any> => {
return request({
url: '/api/xljk/evaluation/statistics/focus',
url: '/xljk/evaluation/statistics/focus',
method: 'get',
params: query
});
};
// 查询测评明细列表
export const listEvaluationDetail = (query: XljkEvaluationDetailQuery) => {
export const listXljkEvaluationDetail = (query: XljkEvaluationDetailQuery): AxiosPromise<XljkEvaluationDetailVO[]> => {
return request({
url: '/api/xljk/evaluation/detail/list',
url: '/xljk/evaluation/detail/list',
method: 'get',
params: query
});
};
// 获取测评明细列表
export const getEvaluationDetailsByEvaluationId = (evaluationId: string | number) => {
export const getXljkEvaluationDetailsByEvaluationId = (evaluationId: string | number): AxiosPromise<XljkEvaluationDetailVO[]> => {
return request({
url: `/api/xljk/evaluation/detail/evaluation/${evaluationId}`,
url: `/xljk/evaluation/detail/evaluation/${evaluationId}`,
method: 'get'
});
};
// 批量新增测评明细
export const batchAddEvaluationDetails = (data: XljkEvaluationDetailForm[]) => {
export const batchAddXljkEvaluationDetails = (data: XljkEvaluationDetailForm[]) => {
return request({
url: '/api/xljk/evaluation/detail/batch',
url: '/xljk/evaluation/detail/batch',
method: 'post',
data: data
});
};
// 批量更新学生心理状态
export const batchUpdateMentalStatus = (data: XljkEvaluationDetailForm[]) => {
export const batchUpdateXljkMentalStatus = (data: XljkEvaluationDetailForm[]) => {
// 确保数据中的ID字段保持原有格式,不做Number转换
console.log('批量更新数据 - 第一条记录evaluationId:', data[0]?.evaluationId);
return request({
url: '/api/xljk/evaluation/detail/batch/mentalStatus',
url: '/xljk/evaluation/detail/batch/mentalStatus',
method: 'put',
data: data
});
};
};
+11 -1
View File
@@ -198,6 +198,16 @@ export interface XljkEvaluationQuery extends PageQuery {
*/
status?: string;
/**
* 排序字段
*/
orderByColumn?: string;
/**
* 排序方式(asc/desc)
*/
isAsc?: string;
/**
* 日期范围参数
*/
@@ -525,4 +535,4 @@ export interface EvaluationStatistics {
* 重点关注学生百分比
*/
focusPercent: number;
}
}
+95
View File
@@ -0,0 +1,95 @@
/**
* 心理健康模块 API 接口入口
*
* 统一导出心理健康测评和心理咨询预约相关的API接口和类型定义
* 与后勤管理模块保持一致的导出方式
*/
// ===== 心理健康测评相关接口 =====
export {
// 测评管理
listXljkEvaluation,
getXljkEvaluation,
addXljkEvaluation,
updateXljkEvaluation,
delXljkEvaluation,
// 选项获取
getXljkDepartmentOptions,
getXljkCollegeOptions,
getXljkMajorOptions,
getXljkClassOptions,
getXljkStudentsByClass,
getXljkSemesterOptions,
// 测评操作
publishXljkEvaluation,
completeXljkEvaluation,
getXljkEvaluationStatistics,
getXljkFocusStudentsStatistics,
// 测评明细
listXljkEvaluationDetail,
getXljkEvaluationDetailsByEvaluationId,
batchAddXljkEvaluationDetails,
batchUpdateXljkMentalStatus
} from './evaluation';
// ===== 心理咨询预约相关接口 =====
export {
// 预约时段管理
listXljkSchedule,
getXljkSchedule,
addXljkSchedule,
updateXljkSchedule,
delXljkSchedule,
// 预约记录管理
listXljkAppointment,
getXljkAppointment,
updateXljkAppointment,
delXljkAppointment,
// 预约相关操作
getXljkAvailableTimeSlots,
getXljkAvailableDetailSlots,
submitXljkAppointment,
getXljkMyAppointments,
recordXljkConsultation,
// 选项获取
getXljkCounselorOptions,
getXljkStudentByNo,
getXljkConsultationCollegeOptions,
getXljkConsultationMajorOptions,
getXljkConsultationClassOptions
} from './consultation';
// ===== 类型定义导出 =====
// 心理健康测评类型
export type {
XljkEvaluationVO,
XljkEvaluationForm,
XljkEvaluationQuery,
XljkEvaluationDetailVO,
XljkEvaluationDetailForm,
XljkEvaluationDetailQuery,
CollegeOption,
MajorOption,
ClassOption,
StudentInfo
} from './evaluation/types';
// 心理咨询预约类型
export type {
XljkConsultationScheduleVO,
XljkConsultationScheduleForm,
XljkConsultationScheduleQuery,
XljkConsultationAppointmentVO,
XljkConsultationAppointmentForm,
XljkConsultationAppointmentQuery,
AvailableTimeSlot,
TimeSlotDetail,
CounselorOption
} from './consultation/types';
+2 -2
View File
@@ -58,7 +58,7 @@ export const updateEnrollmentInfo = (data: EnrollmentInfoForm) => {
export const updateEnrollmentStatus = (id: string | number | Array<string | number>, status: string) => {
const data = Array.isArray(id)
? { ids: id, status } // 批量更新
: { id, status }; // 单个更新
: { id, status }; // 单个更新
return request({
url: '/zsjy/enrollment/info/updateStatus',
@@ -132,7 +132,7 @@ export const submitEnrollmentApplication = (data: EnrollmentInfoForm) => {
* 查询我的报名状态(供学生端使用)
* @param params 查询参数
*/
export const queryMyEnrollmentStatus = (params: { idCard?: string, examNumber?: string }): AxiosPromise<EnrollmentInfoVO> => {
export const queryMyEnrollmentStatus = (params: { idCard?: string; examNumber?: string }): AxiosPromise<EnrollmentInfoVO> => {
return request({
url: '/zsjy/enrollment/info/myStatus',
method: 'get',
+119 -135
View File
@@ -1,365 +1,365 @@
import request from '@/utils/request'
import { AxiosPromise } from 'axios'
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
export interface EnrollmentProcessVO {
/**
* 主键ID
*/
id: string | number
id: string | number;
/**
* 报名信息ID,关联zsjy_enrollment_info.id
*/
enrollmentId: number
enrollmentId: number;
/**
* 学生姓名
*/
studentName: string
studentName: string;
/**
* 身份证号
*/
idCard: string
idCard: string;
/**
* 当前状态(0-待审核 1-信息审核中 2-录取处理中 3-待最终确认 4-录取完成 9-已驳回)
*/
currentStatus: string
currentStatus: string;
/**
* 当前处理人ID
*/
currentHandler: number
currentHandler: number;
/**
* 当前处理人姓名
*/
currentHandlerName: string
currentHandlerName: string;
/**
* 信息审核状态(0-待审核 1-审核通过 9-审核驳回)
*/
infoAuditStatus: string
infoAuditStatus: string;
/**
* 信息审核人ID
*/
infoAuditUser: number
infoAuditUser: number;
/**
* 信息审核人姓名
*/
infoAuditUserName: string
infoAuditUserName: string;
/**
* 信息审核时间
*/
infoAuditTime: string
infoAuditTime: string;
/**
* 信息审核意见
*/
infoAuditOpinion: string
infoAuditOpinion: string;
/**
* 录取处理状态(0-待处理 1-处理完成 9-处理驳回)
*/
admissionStatus: string
admissionStatus: string;
/**
* 录取处理人ID
*/
admissionUser: number
admissionUser: number;
/**
* 录取处理人姓名
*/
admissionUserName: string
admissionUserName: string;
/**
* 录取处理时间
*/
admissionTime: string
admissionTime: string;
/**
* 缴费状态(0-未缴费 1-已缴费)
*/
paymentStatus: string
paymentStatus: string;
/**
* 缴费确认时间
*/
paymentConfirmTime: string
paymentConfirmTime: string;
/**
* 录取通知书号码
*/
noticeNumber: string
noticeNumber: string;
/**
* 录取处理意见
*/
admissionOpinion: string
admissionOpinion: string;
/**
* 最终审核状态(0-待确认 1-确认通过 9-确认驳回)
*/
finalAuditStatus: string
finalAuditStatus: string;
/**
* 最终审核人ID
*/
finalAuditUser: number
finalAuditUser: number;
/**
* 最终审核人姓名
*/
finalAuditUserName: string
finalAuditUserName: string;
/**
* 最终审核时间
*/
finalAuditTime: string
finalAuditTime: string;
/**
* 最终审核意见
*/
finalAuditOpinion: string
finalAuditOpinion: string;
/**
* 是否完成录取(0-未完成 1-已完成)
*/
isCompleted: number
isCompleted: number;
/**
* 录取完成时间
*/
completionTime: string
completionTime: string;
/**
* 备注
*/
remark: string
remark: string;
/**
* 创建时间
*/
createTime: string
createTime: string;
/**
* 更新时间
*/
updateTime: string
updateTime: string;
/**
* 性别(0-男 1-女)
*/
gender?: string
gender?: string;
/**
* 地区/省份
*/
province?: string
province?: string;
/**
* 学院名称(驼峰命名)
*/
collegeName?: string
collegeName?: string;
/**
* 学院代码(驼峰命名)
*/
collegeId?: string
collegeId?: string;
/**
* 学院名称(下划线命名)
*/
college_name?: string
college_name?: string;
/**
* 学院代码(下划线命名)
*/
college_id?: string
college_id?: string;
/**
* 学院名称(拼写变体 - collage)
*/
collage_name?: string
collage_name?: string;
/**
* 学院代码(拼写变体 - collage)
*/
collage_id?: string
collage_id?: string;
/**
* 专业名称(驼峰命名)
*/
majorName?: string
majorName?: string;
/**
* 专业代码(驼峰命名)
*/
majorCode?: string
majorCode?: string;
/**
* 专业名称(下划线命名)
*/
major_name?: string
major_name?: string;
/**
* 专业代码(下划线命名)
*/
major_code?: string
major_code?: string;
/**
* 报考专业(来自报名信息表)
*/
appliedMajor?: string
appliedMajor?: string;
/**
* 关联的报名信息对象
*/
enrollmentInfo?: any
enrollmentInfo?: any;
}
export interface EnrollmentProcessForm extends BaseEntity {
/**
* 主键ID
*/
id?: string | number
id?: string | number;
/**
* 报名信息ID,关联zsjy_enrollment_info.id
*/
enrollmentId?: number
enrollmentId?: number;
/**
* 学生姓名
*/
studentName?: string
studentName?: string;
/**
* 身份证号
*/
idCard?: string
idCard?: string;
/**
* 当前状态(0-待审核 1-信息审核中 2-录取处理中 3-待最终确认 4-录取完成 9-已驳回)
*/
currentStatus?: string
currentStatus?: string;
/**
* 当前处理人ID
*/
currentHandler?: number
currentHandler?: number;
/**
* 当前处理人姓名
*/
currentHandlerName?: string
currentHandlerName?: string;
/**
* 信息审核状态(0-待审核 1-审核通过 9-审核驳回)
*/
infoAuditStatus?: string
infoAuditStatus?: string;
/**
* 信息审核意见
*/
infoAuditOpinion?: string
infoAuditOpinion?: string;
/**
* 录取处理状态(0-待处理 1-处理完成 9-处理驳回)
*/
admissionStatus?: string
admissionStatus?: string;
/**
* 缴费状态(0-未缴费 1-已缴费)
*/
paymentStatus?: string
paymentStatus?: string;
/**
* 录取通知书号码
*/
noticeNumber?: string
noticeNumber?: string;
/**
* 录取处理意见
*/
admissionOpinion?: string
admissionOpinion?: string;
/**
* 最终审核状态(0-待确认 1-确认通过 9-确认驳回)
*/
finalAuditStatus?: string
finalAuditStatus?: string;
/**
* 最终审核意见
*/
finalAuditOpinion?: string
finalAuditOpinion?: string;
/**
* 是否完成录取(0-未完成 1-已完成)
*/
isCompleted?: number
isCompleted?: number;
/**
* 备注
*/
remark?: string
remark?: string;
}
export interface EnrollmentProcessQuery extends PageQuery {
/**
* 报名信息ID,关联zsjy_enrollment_info.id
*/
enrollmentId?: number
enrollmentId?: number;
/**
* 学生姓名
*/
studentName?: string
studentName?: string;
/**
* 身份证号
*/
idCard?: string
idCard?: string;
/**
* 当前状态(0-待审核 1-信息审核中 2-录取处理中 3-待最终确认 4-录取完成 9-已驳回)
*/
currentStatus?: string
currentStatus?: string;
/**
* 当前处理人ID
*/
currentHandler?: number
currentHandler?: number;
/**
* 信息审核状态(0-待审核 1-审核通过 9-审核驳回)
*/
infoAuditStatus?: string
infoAuditStatus?: string;
/**
* 录取处理状态(0-待处理 1-处理完成 9-处理驳回)
*/
admissionStatus?: string
admissionStatus?: string;
/**
* 最终审核状态(0-待确认 1-确认通过 9-确认驳回)
*/
finalAuditStatus?: string
finalAuditStatus?: string;
/**
* 是否完成录取(0-未完成 1-已完成)
*/
isCompleted?: number
isCompleted?: number;
/**
* 日期范围参数
*/
params?: any
params?: any;
}
// 查询录取流程状态列表
@@ -368,8 +368,8 @@ export const listEnrollmentProcess = (query: EnrollmentProcessQuery): AxiosPromi
url: '/zsjy/enrollment/process/list',
method: 'get',
params: query
})
}
});
};
// 查询我的待审核列表
export const listMyAuditProcess = (query: EnrollmentProcessQuery): AxiosPromise<EnrollmentProcessVO[]> => {
@@ -377,16 +377,16 @@ export const listMyAuditProcess = (query: EnrollmentProcessQuery): AxiosPromise<
url: '/zsjy/enrollment/process/myAudit',
method: 'get',
params: query
})
}
});
};
// 查询录取流程状态详细
export const getEnrollmentProcess = (id: string | number): AxiosPromise<EnrollmentProcessVO> => {
return request({
url: '/zsjy/enrollment/process/' + id,
method: 'get'
})
}
});
};
// 新增录取流程状态
export const addEnrollmentProcess = (data: EnrollmentProcessForm) => {
@@ -394,8 +394,8 @@ export const addEnrollmentProcess = (data: EnrollmentProcessForm) => {
url: '/zsjy/enrollment/process',
method: 'post',
data: data
})
}
});
};
// 从报名信息创建流程
export const createProcessFromEnrollment = (enrollmentId: number) => {
@@ -403,8 +403,8 @@ export const createProcessFromEnrollment = (enrollmentId: number) => {
url: '/zsjy/enrollment/process/createFromEnrollment',
method: 'post',
params: { enrollmentId }
})
}
});
};
// 同步流程状态
export const syncProcessStatus = (id: string | number) => {
@@ -412,8 +412,8 @@ export const syncProcessStatus = (id: string | number) => {
url: '/zsjy/enrollment/process/syncStatus',
method: 'post',
params: { id }
})
}
});
};
// 修改录取流程状态
export const updateEnrollmentProcess = (data: EnrollmentProcessForm) => {
@@ -421,24 +421,24 @@ export const updateEnrollmentProcess = (data: EnrollmentProcessForm) => {
url: '/zsjy/enrollment/process',
method: 'put',
data: data
})
}
});
};
// 删除录取流程状态
export const delEnrollmentProcess = (id: string | number | Array<string | number>) => {
return request({
url: '/zsjy/enrollment/process/' + id,
method: 'delete'
})
}
});
};
// 根据报名信息ID查询流程状态
export const getProcessByEnrollmentId = (enrollmentId: number): AxiosPromise<EnrollmentProcessVO> => {
return request({
url: '/zsjy/enrollment/process/enrollment/' + enrollmentId,
method: 'get'
})
}
});
};
// 查询待处理的流程列表
export const getPendingProcessList = (query: EnrollmentProcessQuery): AxiosPromise<EnrollmentProcessVO[]> => {
@@ -446,8 +446,8 @@ export const getPendingProcessList = (query: EnrollmentProcessQuery): AxiosPromi
url: '/zsjy/enrollment/process/pending',
method: 'get',
params: query
})
}
});
};
// 根据状态查询流程列表
export const getProcessListByStatus = (status: string, query: EnrollmentProcessQuery): AxiosPromise<EnrollmentProcessVO[]> => {
@@ -455,16 +455,16 @@ export const getProcessListByStatus = (status: string, query: EnrollmentProcessQ
url: '/zsjy/enrollment/process/status/' + status,
method: 'get',
params: query
})
}
});
};
// 获取流程统计数据
export const getProcessStatistics = (): AxiosPromise<any> => {
return request({
url: '/zsjy/enrollment/process/statistics',
method: 'get'
})
}
});
};
// 搜索流程
export const searchProcess = (keyword: string, query: EnrollmentProcessQuery): AxiosPromise<EnrollmentProcessVO[]> => {
@@ -472,35 +472,26 @@ export const searchProcess = (keyword: string, query: EnrollmentProcessQuery): A
url: '/zsjy/enrollment/process/search',
method: 'get',
params: { keyword, ...query }
})
}
});
};
// 信息审核
export const infoAudit = (data: {
processId: number;
auditResult: string;
auditOpinion?: string;
}) => {
export const infoAudit = (data: { processId: number; auditResult: string; auditOpinion?: string }) => {
return request({
url: '/zsjy/enrollment/process/infoAudit',
method: 'post',
params: data
})
}
});
};
// 录取处理
export const admissionProcess = (data: {
processId: number;
admissionResult: string;
admissionOpinion?: string;
noticeNumber?: string;
}) => {
export const admissionProcess = (data: { processId: number; admissionResult: string; admissionOpinion?: string; noticeNumber?: string }) => {
return request({
url: '/zsjy/enrollment/process/admissionProcess',
method: 'post',
params: data
})
}
});
};
// 确认缴费
export const confirmPayment = (processId: number) => {
@@ -508,21 +499,17 @@ export const confirmPayment = (processId: number) => {
url: '/zsjy/enrollment/process/confirmPayment',
method: 'post',
params: { processId }
})
}
});
};
// 最终审核
export const finalAudit = (data: {
processId: number;
finalResult: string;
finalOpinion?: string;
}) => {
export const finalAudit = (data: { processId: number; finalResult: string; finalOpinion?: string }) => {
return request({
url: '/zsjy/enrollment/process/finalConfirm',
method: 'post',
params: data
})
}
});
};
// 完成流程
export const completeProcess = (processId: number) => {
@@ -530,20 +517,17 @@ export const completeProcess = (processId: number) => {
url: '/zsjy/enrollment/process/complete',
method: 'post',
params: { processId }
})
}
});
};
// 驳回流程
export const rejectProcess = (data: {
processId: number;
rejectReason: string;
}) => {
export const rejectProcess = (data: { processId: number; rejectReason: string }) => {
return request({
url: '/zsjy/enrollment/process/reject',
method: 'post',
params: data
})
}
});
};
// 重置流程
export const resetProcess = (processId: number) => {
@@ -551,8 +535,8 @@ export const resetProcess = (processId: number) => {
url: '/zsjy/enrollment/process/reset',
method: 'post',
params: { processId }
})
}
});
};
// 导出录取流程状态
export const exportEnrollmentProcess = (query: EnrollmentProcessQuery) => {
@@ -560,5 +544,5 @@ export const exportEnrollmentProcess = (query: EnrollmentProcessQuery) => {
url: '/zsjy/enrollment/process/export',
method: 'post',
data: query
})
}
});
};
+14 -14
View File
@@ -1,6 +1,6 @@
import request from '@/utils/request'
import type { PageQuery } from '@/types/page'
import type { EnrollmentProcessVO } from './enrollmentProcess'
import request from '@/utils/request';
import type { PageQuery } from '@/types/page';
import type { EnrollmentProcessVO } from './enrollmentProcess';
/**
* 查询招生录取统计列表
@@ -12,7 +12,7 @@ export function listEnrollmentStatistics(query: PageQuery) {
url: '/zsjy/enrollment/statistics/list',
method: 'get',
params: query
})
});
}
/**
@@ -25,7 +25,7 @@ export function exportEnrollmentStatistics(query: PageQuery) {
method: 'post',
params: query,
responseType: 'blob'
})
});
}
/**
@@ -37,7 +37,7 @@ export function getEnrollmentStatistics(id: string | number) {
return request({
url: `/zsjy/enrollment/statistics/${id}`,
method: 'get'
})
});
}
/**
@@ -48,7 +48,7 @@ export function getEnrollmentStatisticsChartData() {
return request({
url: '/zsjy/enrollment/statistics/chart',
method: 'get'
})
});
}
/**
@@ -59,7 +59,7 @@ export function getEnrollmentStatisticsOverview() {
return request({
url: '/zsjy/enrollment/statistics/overview',
method: 'get'
})
});
}
/**
@@ -70,7 +70,7 @@ export function getEnrollmentStatisticsByMajor() {
return request({
url: '/zsjy/enrollment/statistics/major',
method: 'get'
})
});
}
/**
@@ -81,7 +81,7 @@ export function getEnrollmentStatisticsByCollege() {
return request({
url: '/zsjy/enrollment/statistics/college',
method: 'get'
})
});
}
/**
@@ -92,7 +92,7 @@ export function getEnrollmentStatisticsByRegion() {
return request({
url: '/zsjy/enrollment/statistics/region',
method: 'get'
})
});
}
/**
@@ -103,7 +103,7 @@ export function getEnrollmentStatisticsByGender() {
return request({
url: '/zsjy/enrollment/statistics/gender',
method: 'get'
})
});
}
/**
@@ -114,7 +114,7 @@ export function getEnrollmentStatisticsByPayment() {
return request({
url: '/zsjy/enrollment/statistics/payment',
method: 'get'
})
});
}
/**
@@ -125,5 +125,5 @@ export function getEnrollmentStatisticsByStatus() {
return request({
url: '/zsjy/enrollment/statistics/status',
method: 'get'
})
});
}
+1 -6
View File
@@ -1,11 +1,6 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import {
GraduateInfoVO,
GraduateInfoForm,
GraduateInfoQuery,
GraduateStatisticsVO
} from '@/api/zsjy/types';
import { GraduateInfoVO, GraduateInfoForm, GraduateInfoQuery, GraduateStatisticsVO } from '@/api/zsjy/types';
/**
* 查询毕业生信息列表
+5 -5
View File
@@ -7,14 +7,14 @@
import request from '@/utils/request';
// 导出招生就业管理模块相关的所有API接口
export * from './enterprise'; // 企业信息管理
export * from './enterprise'; // 企业信息管理
// export * from './jobPosition'; // 招聘岗位管理 (待开发)
// export * from './recruitmentPoster'; // 招聘海报管理 (待开发)
// 现有导出
export * from './statistics'; // 统计分析
export * from './enrollmentProcess'; // 录取流程管理
export * from './enrollmentStatistics'; // 报名统计
export * from './statistics'; // 统计分析
export * from './enrollmentProcess'; // 录取流程管理
export * from './enrollmentStatistics'; // 报名统计
// 类型导出
export * from './types'; // 类型定义
export * from './types'; // 类型定义
+11 -11
View File
@@ -1,6 +1,6 @@
import request from '@/utils/request'
import { JobPositionVO, JobPositionForm, JobPositionQuery, TableDataInfo } from './types'
import { AxiosPromise } from 'axios'
import request from '@/utils/request';
import { JobPositionVO, JobPositionForm, JobPositionQuery, TableDataInfo } from './types';
import { AxiosPromise } from 'axios';
/**
* 查询招聘岗位列表
@@ -12,7 +12,7 @@ export function listJobPosition(query?: JobPositionQuery): AxiosPromise<TableDat
url: '/zsjy/position/list',
method: 'get',
params: query
})
});
}
/**
@@ -24,7 +24,7 @@ export function getJobPosition(id: string | number): AxiosPromise<JobPositionVO>
return request({
url: '/zsjy/position/' + id,
method: 'get'
})
});
}
/**
@@ -37,7 +37,7 @@ export function addJobPosition(data: JobPositionForm) {
url: '/zsjy/position',
method: 'post',
data: data
})
});
}
/**
@@ -50,7 +50,7 @@ export function updateJobPosition(data: JobPositionForm) {
url: '/zsjy/position',
method: 'put',
data: data
})
});
}
/**
@@ -62,7 +62,7 @@ export function delJobPosition(id: string | number | Array<string | number>) {
return request({
url: '/zsjy/position/' + id,
method: 'delete'
})
});
}
/**
@@ -76,7 +76,7 @@ export function exportJobPosition(query: JobPositionQuery) {
method: 'post',
data: query,
responseType: 'blob'
})
});
}
/**
@@ -87,5 +87,5 @@ export function listEnterpriseOptions() {
return request({
url: '/zsjy/enterprise/options',
method: 'get'
})
}
});
}
+11 -11
View File
@@ -1,6 +1,6 @@
import request from '@/utils/request'
import { RecruitmentPosterVO, RecruitmentPosterForm, RecruitmentPosterQuery, TableDataInfo } from './types'
import { AxiosPromise } from 'axios'
import request from '@/utils/request';
import { RecruitmentPosterVO, RecruitmentPosterForm, RecruitmentPosterQuery, TableDataInfo } from './types';
import { AxiosPromise } from 'axios';
/**
* 查询招聘海报列表
@@ -12,7 +12,7 @@ export function listRecruitmentPoster(query?: RecruitmentPosterQuery): AxiosProm
url: '/zsjy/poster/list',
method: 'get',
params: query
})
});
}
/**
@@ -24,7 +24,7 @@ export function getRecruitmentPoster(id: string | number): AxiosPromise<Recruitm
return request({
url: '/zsjy/poster/' + id,
method: 'get'
})
});
}
/**
@@ -37,7 +37,7 @@ export function addRecruitmentPoster(data: RecruitmentPosterForm) {
url: '/zsjy/poster',
method: 'post',
data: data
})
});
}
/**
@@ -50,7 +50,7 @@ export function updateRecruitmentPoster(data: RecruitmentPosterForm) {
url: '/zsjy/poster',
method: 'put',
data: data
})
});
}
/**
@@ -62,7 +62,7 @@ export function delRecruitmentPoster(id: string | number | Array<string | number
return request({
url: '/zsjy/poster/' + id,
method: 'delete'
})
});
}
/**
@@ -76,7 +76,7 @@ export function exportRecruitmentPoster(query: RecruitmentPosterQuery) {
method: 'post',
data: query,
responseType: 'blob'
})
});
}
/**
@@ -89,5 +89,5 @@ export function listPositionOptions(enterpriseId?: number | string) {
url: '/zsjy/position/options',
method: 'get',
params: { enterpriseId }
})
}
});
}
+11 -11
View File
@@ -11,7 +11,7 @@ export function getStatisticsOverview() {
headers: {
'isToken': true
}
}).catch(error => {
}).catch((error) => {
console.error('获取统计概览数据失败:', error);
ElMessage.error('获取统计数据失败,请联系管理员');
throw error;
@@ -28,7 +28,7 @@ export function getMajorDistribution() {
headers: {
'isToken': true
}
}).catch(error => {
}).catch((error) => {
console.error('获取专业分布数据失败:', error);
ElMessage.error('获取专业分布数据失败,请联系管理员');
throw error;
@@ -45,7 +45,7 @@ export function getRegionDistribution() {
headers: {
'isToken': true
}
}).catch(error => {
}).catch((error) => {
console.error('获取地区分布数据失败:', error);
ElMessage.error('获取地区分布数据失败,请联系管理员');
throw error;
@@ -62,7 +62,7 @@ export function getGenderRatio() {
headers: {
'isToken': true
}
}).catch(error => {
}).catch((error) => {
console.error('获取性别比例数据失败:', error);
ElMessage.error('获取性别比例数据失败,请联系管理员');
throw error;
@@ -81,7 +81,7 @@ export function getEnrollmentTrend(days?: number) {
headers: {
'isToken': true
}
}).catch(error => {
}).catch((error) => {
console.error('获取报名趋势数据失败:', error);
ElMessage.error('获取报名趋势数据失败,请联系管理员');
throw error;
@@ -98,7 +98,7 @@ export function getStatusDistribution() {
headers: {
'isToken': true
}
}).catch(error => {
}).catch((error) => {
console.error('获取状态分布数据失败:', error);
ElMessage.error('获取状态分布数据失败,请联系管理员');
throw error;
@@ -113,9 +113,9 @@ export interface StatisticsOverview {
paymentRate: string;
admittedCount: number;
admissionRate: string;
majorDistribution: Array<{[key: string]: any}>;
regionDistribution: Array<{[key: string]: any}>;
genderRatio: {[key: string]: number};
weeklyTrend: Array<{[key: string]: any}>;
statusDistribution: {[key: string]: number};
majorDistribution: Array<{ [key: string]: any }>;
regionDistribution: Array<{ [key: string]: any }>;
genderRatio: { [key: string]: number };
weeklyTrend: Array<{ [key: string]: any }>;
statusDistribution: { [key: string]: number };
}