This commit is contained in:
李旭明 committed 2025-09-09 11:35:35 +08:00
1 parent bb2a04ffb9
commit de3ed43b6d
63 files changed
+8724 -328

No files matched your search

+60
View File
@@ -44,6 +44,26 @@ export interface StglActivityVO {
*/
posterUrl?: string;
/**
* 关联部门ID(多个部门时用逗号分隔)
*/
relatedDeptId?: string | number;
/**
* 关联部门ID列表
*/
relatedDeptIds?: (string | number)[];
/**
* 关联部门名称(多个部门时用逗号分隔)
*/
relatedDeptName?: string;
/**
* 关联部门名称列表
*/
relatedDeptNames?: string[];
/**
* 关联社团ID
*/
@@ -272,6 +292,26 @@ export interface StglActivityForm {
*/
posterUrl?: string;
/**
* 关联部门ID(多个部门时用逗号分隔)
*/
relatedDeptId?: string | number;
/**
* 关联部门ID列表
*/
relatedDeptIds?: (string | number)[];
/**
* 关联部门对象(用于选择器绑定)
*/
relatedDept?: DeptOption | null;
/**
* 关联部门对象列表(多选时使用)
*/
relatedDepts?: DeptOption[] | null;
/**
* 关联社团ID
*/
@@ -454,6 +494,11 @@ export interface StglActivityQuery extends PageQuery {
*/
location?: string;
/**
* 关联部门ID
*/
relatedDeptId?: string | number;
/**
* 关联社团ID
*/
@@ -505,6 +550,21 @@ export interface StglActivityQuery extends PageQuery {
params?: any;
}
/**
* 部门选择器选项
*/
export interface DeptOption {
/**
* 部门ID
*/
deptId: string | number;
/**
* 部门名称
*/
deptName: string;
}
/**
* 社团/志愿者队伍选择器选项
*/
@@ -45,6 +45,26 @@ export interface StglActivityVo {
*/
posterUrl: string;
/**
* 关联部门ID(多个部门时用逗号分隔)
*/
relatedDeptId?: string | number;
/**
* 关联部门ID列表
*/
relatedDeptIds?: (string | number)[];
/**
* 关联部门名称(多个部门时用逗号分隔)
*/
relatedDeptName?: string;
/**
* 关联部门名称列表
*/
relatedDeptNames?: string[];
/**
* 关联社团ID
*/
+276
View File
@@ -0,0 +1,276 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
export interface StglClubAdvisorHistoryVO {
/**
* 主键ID
*/
id?: string | number;
/**
* 社团ID
*/
clubId?: string | number;
/**
* 社团名称
*/
clubName?: string;
/**
* 指导老师姓名
*/
advisorName?: string;
/**
* 指导老师部门
*/
advisorDept?: string;
/**
* 指导老师电话
*/
advisorPhone?: string;
/**
* 指导老师邮箱
*/
advisorEmail?: string;
/**
* 指导老师用户ID
*/
advisorUserId?: string | number;
/**
* 在任状态:1-当前在任,0-历史(已离任)
*/
status?: number;
/**
* 上任时间
*/
startTime?: string;
/**
* 离任时间
*/
endTime?: string;
/**
* 创建者
*/
createBy?: string | number;
/**
* 创建时间
*/
createTime?: string;
/**
* 更新者
*/
updateBy?: string | number;
/**
* 更新时间
*/
updateTime?: string;
}
export interface StglClubAdvisorHistoryForm extends BaseEntity {
/**
* 主键ID
*/
id?: string | number;
/**
* 社团ID
*/
clubId?: string | number;
/**
* 指导老师姓名
*/
advisorName?: string;
/**
* 指导老师部门
*/
advisorDept?: string;
/**
* 指导老师电话
*/
advisorPhone?: string;
/**
* 指导老师邮箱
*/
advisorEmail?: string;
/**
* 指导老师用户ID
*/
advisorUserId?: string | number;
/**
* 在任状态:1-当前在任,0-历史(已离任)
*/
status?: number;
/**
* 上任时间
*/
startTime?: string;
/**
* 离任时间
*/
endTime?: string;
}
export interface StglClubAdvisorHistoryQuery extends PageQuery {
/**
* 社团ID
*/
clubId?: string | number;
/**
* 指导老师姓名
*/
advisorName?: string;
/**
* 指导老师部门
*/
advisorDept?: string;
/**
* 指导老师电话
*/
advisorPhone?: string;
/**
* 指导老师邮箱
*/
advisorEmail?: string;
/**
* 指导老师用户ID
*/
advisorUserId?: string | number;
/**
* 在任状态:1-当前在任,0-历史(已离任)
*/
status?: number;
/**
* 上任时间
*/
startTime?: string;
/**
* 离任时间
*/
endTime?: string;
/**
* 日期范围参数
*/
params?: any;
}
/**
* 查询社团指导老师任职历史列表
* @param query
* @returns {*}
*/
export const listStglClubAdvisorHistory = (query?: StglClubAdvisorHistoryQuery): AxiosPromise<StglClubAdvisorHistoryVO[]> => {
return request({
url: '/stgl/club/advisor/history/list',
method: 'get',
params: query
});
};
/**
* 查询社团指导老师任职历史详细
* @param id
*/
export const getStglClubAdvisorHistory = (id: string | number): AxiosPromise<StglClubAdvisorHistoryVO> => {
return request({
url: '/stgl/club/advisor/history/' + id,
method: 'get'
});
};
/**
* 查询指定社团的当前在任指导老师
* @param clubId
*/
export const getCurrentAdvisors = (clubId: string | number): AxiosPromise<StglClubAdvisorHistoryVO[]> => {
return request({
url: '/stgl/club/advisor/history/current/' + clubId,
method: 'get'
});
};
/**
* 查询指定社团的历史指导老师(已离任)
* @param clubId
*/
export const getHistoryAdvisors = (clubId: string | number): AxiosPromise<StglClubAdvisorHistoryVO[]> => {
return request({
url: '/stgl/club/advisor/history/history/' + clubId,
method: 'get'
});
};
/**
* 查询指定社团的所有指导老师(包含当前和历史)
* @param clubId
*/
export const getAllAdvisors = (clubId: string | number): AxiosPromise<StglClubAdvisorHistoryVO[]> => {
return request({
url: '/stgl/club/advisor/history/all/' + clubId,
method: 'get'
});
};
/**
* 新增社团指导老师任职历史
* @param data
*/
export const addStglClubAdvisorHistory = (data: StglClubAdvisorHistoryForm) => {
return request({
url: '/stgl/club/advisor/history',
method: 'post',
data: data
});
};
/**
* 修改社团指导老师任职历史
* @param data
*/
export const updateStglClubAdvisorHistory = (data: StglClubAdvisorHistoryForm) => {
return request({
url: '/stgl/club/advisor/history',
method: 'put',
data: data
});
};
/**
* 删除社团指导老师任职历史
* @param id
*/
export const delStglClubAdvisorHistory = (id: string | number | Array<string | number>) => {
return request({
url: '/stgl/club/advisor/history/' + id,
method: 'delete'
});
};
+222
View File
@@ -0,0 +1,222 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { StglClubAnnualReviewVO, StglClubAnnualReviewForm, StglClubAnnualReviewQuery } from './type';
/**
* 查询社团年审记录列表
* @param query
* @returns {*}
*/
export const listStglClubAnnualReview = (query?: StglClubAnnualReviewQuery): AxiosPromise<StglClubAnnualReviewVO[]> => {
return request({
url: '/stgl/club/annualReview/list',
method: 'get',
params: query,
headers: {
isEncrypt: 'true'
}
});
};
/**
* 查询我的社团年审记录列表
* @param query
* @returns {*}
*/
export const listMyStglClubAnnualReview = (query?: StglClubAnnualReviewQuery): AxiosPromise<StglClubAnnualReviewVO[]> => {
return request({
url: '/stgl/club/annualReview/myList',
method: 'get',
params: query,
headers: {
isEncrypt: 'true'
}
});
};
/**
* 查询社团年审记录详细
* @param id
*/
export const getStglClubAnnualReview = (id: string | number): AxiosPromise<StglClubAnnualReviewVO> => {
return request({
url: '/stgl/club/annualReview/' + id,
method: 'get',
headers: {
isEncrypt: 'true'
}
});
};
/**
* 新增社团年审记录
* @param data
*/
export const addStglClubAnnualReview = (data: StglClubAnnualReviewForm) => {
return request({
url: '/stgl/club/annualReview',
method: 'post',
data: data,
headers: {
isEncrypt: 'true'
}
});
};
/**
* 修改社团年审记录
* @param data
*/
export const updateStglClubAnnualReview = (data: StglClubAnnualReviewForm) => {
return request({
url: '/stgl/club/annualReview',
method: 'put',
data: data,
headers: {
isEncrypt: 'true'
}
});
};
/**
* 删除社团年审记录
* @param id
*/
export const delStglClubAnnualReview = (id: string | number | Array<string | number>) => {
return request({
url: '/stgl/club/annualReview/' + id,
method: 'delete',
headers: {
isEncrypt: 'true'
}
});
};
/**
* 提交年审记录
* @param id
*/
export const submitStglClubAnnualReview = (id: string | number) => {
return request({
url: '/stgl/club/annualReview/submit/' + id,
method: 'post',
headers: {
isEncrypt: 'true'
}
});
};
/**
* 撤回年审记录
* @param id
*/
export const withdrawStglClubAnnualReview = (id: string | number) => {
return request({
url: '/stgl/club/annualReview/withdraw/' + id,
method: 'post',
headers: {
isEncrypt: 'true'
}
});
};
/**
* 审核年审记录
* @param params
*/
export const auditStglClubAnnualReview = (params: {
id: string | number;
auditResult: string;
auditOpinion?: string;
auditType: string;
}) => {
return request({
url: '/stgl/club/annualReview/audit',
method: 'post',
params: params,
headers: {
isEncrypt: 'true'
}
});
};
/**
* 检查是否可以创建年审记录
* @param clubId
* @param reviewYear
*/
export const checkCanCreateStglClubAnnualReview = (clubId: string | number, reviewYear: number): AxiosPromise<boolean> => {
return request({
url: '/stgl/club/annualReview/check',
method: 'get',
params: {
clubId,
reviewYear
},
headers: {
isEncrypt: 'true'
}
});
};
/**
* 获取年审状态选项
*/
export const getAnnualReviewStatusOptions = (): AxiosPromise<string[]> => {
return request({
url: '/stgl/club/annualReview/statusOptions',
method: 'get',
headers: {
isEncrypt: 'true'
}
});
};
/**
* 导出社团年审记录
* @param query
*/
export const exportStglClubAnnualReview = (query?: StglClubAnnualReviewQuery) => {
return request({
url: '/stgl/club/annualReview/export',
method: 'post',
data: query,
responseType: 'blob',
headers: {
isEncrypt: 'true'
}
});
};
/**
* 根据社团ID和年审年度获取该年度的活动数据
* @param clubId 社团ID
* @param reviewYear 年审年度 (例如:2024)
*/
export const getClubActivitiesByReviewYear = (clubId: string | number, reviewYear: number) => {
return request({
url: '/stgl/club/annualReview/clubActivities',
method: 'get',
params: {
clubId,
reviewYear
},
headers: {
isEncrypt: 'true'
}
});
};
/**
* 获取年审记录的活动数据(从stgl_club_annual_review_activity表中获取)
* @param annualReviewId 年审记录ID
*/
export const getAnnualReviewActivities = (annualReviewId: string | number) => {
return request({
url: '/stgl/club/annualReview/' + annualReviewId + '/activities',
method: 'get',
headers: {
isEncrypt: 'true'
}
});
};
+323
View File
@@ -0,0 +1,323 @@
export interface StglClubAnnualReviewVO {
/**
* 主键ID
*/
id: string | number;
/**
* 社团ID
*/
clubId: string | number;
/**
* 年审年度
*/
reviewYear: number;
/**
* 年审开始日期
*/
reviewStartDate: string;
/**
* 年审结束日期
*/
reviewEndDate: string;
/**
* 年审时间
*/
reviewTime: string;
/**
* 社团名称
*/
clubName: string;
/**
* 成立日期
*/
establishDate: string;
/**
* 社长姓名
*/
presidentName: string;
/**
* 社团类型
*/
clubType: string;
/**
* 指导老师姓名
*/
advisorName: string;
/**
* 指导老师部门
*/
advisorDept: string;
/**
* 是否有章程
*/
hasCharter: string;
/**
* 章程文件URL
*/
charterUrl: string;
/**
* 是否有资金
*/
hasFunds: string;
/**
* 资金数额
*/
fundAmount: number;
/**
* 成员数量
*/
memberCount: number;
/**
* 状态(0-草稿 1-已提交 2-审核中 3-审核通过 4-审核不通过)
*/
status: string;
/**
* 指导老师意见
*/
advisorOpinion: string;
/**
* 学院意见
*/
collegeOpinion: string;
/**
* 团委意见
*/
youthLeagueOpinion: string;
/**
* 创建者
*/
createBy: string | number;
/**
* 创建时间
*/
createTime: string;
/**
* 更新者
*/
updateBy: string | number;
/**
* 更新时间
*/
updateTime: string;
}
export interface StglClubAnnualReviewForm {
/**
* 主键ID
*/
id?: string | number;
/**
* 社团ID
*/
clubId: string | number;
/**
* 年审年度
*/
reviewYear: number;
/**
* 年审开始日期
*/
reviewStartDate: string;
/**
* 年审结束日期
*/
reviewEndDate: string;
/**
* 年审时间
*/
reviewTime: string;
/**
* 社团名称
*/
clubName: string;
/**
* 成立日期
*/
establishDate?: string;
/**
* 社团类型
*/
clubType?: string;
/**
* 指导老师姓名
*/
advisorName?: string;
/**
* 指导老师部门
*/
advisorDept?: string;
/**
* 是否有章程
*/
hasCharter?: string;
/**
* 章程文件URL
*/
charterUrl?: string;
/**
* 是否有资金
*/
hasFunds?: string;
/**
* 资金数额
*/
fundAmount?: number;
/**
* 成员数量
*/
memberCount?: number;
/**
* 状态(0-草稿 1-已提交 2-审核中 3-审核通过 4-审核不通过)
*/
status?: string;
/**
* 指导老师意见
*/
advisorOpinion?: string;
/**
* 学院意见
*/
collegeOpinion?: string;
/**
* 团委意见
*/
youthLeagueOpinion?: string;
/**
* 成员信息JSON
*/
membersJson?: string;
/**
* 活动信息JSON
*/
activitiesJson?: string;
}
export interface StglClubAnnualReviewQuery extends PageQuery {
/**
* 社团ID
*/
clubId?: string | number;
/**
* 年审年度
*/
reviewYear?: number;
/**
* 年审开始日期范围
*/
beginReviewStartDate?: string;
endReviewStartDate?: string;
/**
* 年审结束日期范围
*/
beginReviewEndDate?: string;
endReviewEndDate?: string;
/**
* 社团名称
*/
clubName?: string;
/**
* 社团类型
*/
clubType?: string;
/**
* 状态(0-草稿 1-已提交 2-审核中 3-审核通过 4-审核不通过)
*/
status?: string;
/**
* 其他查询参数
*/
params?: { [key: string]: any };
}
/**
* 分页查询接口
*/
export interface PageQuery {
/**
* 分页大小
*/
pageSize?: number;
/**
* 当前页数
*/
pageNum?: number;
/**
* 排序列
*/
orderByColumn?: string;
/**
* 排序的方向desc或者asc
*/
isAsc?: string;
}
/**
* 年审状态选项
*/
export const ANNUAL_REVIEW_STATUS_OPTIONS = [
{ label: '草稿', value: '0' },
{ label: '已提交', value: '1' },
{ label: '审核中', value: '2' },
{ label: '审核通过', value: '3' },
{ label: '审核不通过', value: '4' }
];
/**
* 是否选项
*/
export const YES_NO_OPTIONS = [
{ label: '是', value: 'Y' },
{ label: '否', value: 'N' }
];
+93
View File
@@ -0,0 +1,93 @@
import request from '@/utils/request'
// 社团活动权限检查结果类型定义
export interface ClubActivityPermissionResult {
canCreateActivity: boolean
status: 'NORMAL' | 'TEMPORARILY_LIMITED' | 'PERMANENTLY_LIMITED'
message: string
deadlineTime?: string
remainingHours?: number
remainingDays?: number
annualReviewStartTime?: string
}
// 权限详情类型定义
export interface ClubPermissionDetails {
permissionResult: ClubActivityPermissionResult
isInAnnualReviewWindow: boolean
daysUntilNextAnnualReview: number
hasSubmittedCurrentYearAnnualReview: boolean
}
/**
* 检查社团活动权限
* @param clubId 社团ID (支持字符串和数字类型,避免大整数精度丢失)
* @returns 权限检查结果
*/
export function checkClubActivityPermission(clubId: number | string) {
return request<ClubActivityPermissionResult>({
url: `/stgl/club/permission/checkActivityPermission/${clubId}`,
method: 'get'
})
}
/**
* 批量检查多个社团的权限状态
* @param clubIds 社团ID列表
* @returns 权限检查结果映射
*/
export function batchCheckClubPermission(clubIds: number[]) {
return request<Record<number, ClubActivityPermissionResult>>({
url: '/stgl/club/permission/batchCheckPermission',
method: 'post',
data: clubIds
})
}
/**
* 检查社团是否在年审窗口期内
* @param clubId 社团ID
* @returns 是否在年审窗口期
*/
export function isInAnnualReviewWindow(clubId: number) {
return request<boolean>({
url: `/stgl/club/permission/isInAnnualReviewWindow/${clubId}`,
method: 'get'
})
}
/**
* 获取社团距离下次年审的天数
* @param clubId 社团ID
* @returns 距离年审的天数
*/
export function getDaysUntilNextAnnualReview(clubId: number) {
return request<number>({
url: `/stgl/club/permission/getDaysUntilNextAnnualReview/${clubId}`,
method: 'get'
})
}
/**
* 检查社团是否已在当前年审期内提交年审
* @param clubId 社团ID
* @returns 是否已提交年审
*/
export function hasSubmittedCurrentYearAnnualReview(clubId: number) {
return request<boolean>({
url: `/stgl/club/permission/hasSubmittedCurrentYearAnnualReview/${clubId}`,
method: 'get'
})
}
/**
* 获取社团权限详细信息(综合接口)
* @param clubId 社团ID
* @returns 权限详细信息
*/
export function getClubPermissionDetails(clubId: number) {
return request<ClubPermissionDetails>({
url: `/stgl/club/permission/getPermissionDetails/${clubId}`,
method: 'get'
})
}
+4
View File
@@ -97,6 +97,10 @@ export interface MyActivityVO {
undertakerName?: string;
/** 关联类型(1-社团 2-志愿者队伍) */
relatedType?: number;
/** 关联部门名称 */
relatedDeptName?: string;
/** 关联部门名称列表 */
relatedDeptNames?: string;
/** 关联组织名称(社团名称或志愿者团队名称) */
organizationName?: string;
/** 指导老师 */
+15
View File
@@ -74,6 +74,21 @@ export interface StglClassVO {
* 参与活动数量
*/
activityCount: number;
/**
* 今日活动名称(审核通过且时间为今天的活动)
*/
todayActivityName?: string;
/**
* 今日活动开始时间
*/
todayActivityStartTime?: string;
/**
* 今日活动结束时间
*/
todayActivityEndTime?: string;
}
/**