解决API文档和路由配置合并冲突

This commit is contained in:
李旭明 committed 2025-08-04 11:19:52 +08:00
commit 79a96a7dfd
662 files changed
+127608 -205195

No files matched your search

+185
View File
@@ -0,0 +1,185 @@
/**
* 财务审批记录管理 - API服务
*
* @author ruoyi
* @date 2025-01-28
*/
import request from '@/utils/request';
import type { AxiosPromise } from 'axios';
// 审批记录查询参数
export interface CwApprovalRecordQuery {
pageNum?: number;
pageSize?: number;
applicationNo?: string;
projectName?: string;
applicantName?: string;
approvalStatus?: string;
approverName?: string;
currentApprover?: string;
deptId?: string;
submitTimeBegin?: string;
submitTimeEnd?: string;
needApproval?: boolean;
}
// 审批记录VO
export interface CwApprovalRecordVO {
id: string | number;
applicationId: string | number;
applicationNo: string;
projectName: string;
applicantName: string;
deptName: string;
totalInvestment: number;
currentApproverName: string;
approvalStatus: string;
submitTime: string;
approvalTime?: string;
approverName?: string;
approvalComment?: string;
approvalResult?: string;
}
// 审批表单
export interface CwApprovalForm {
applicationId?: string | number;
applicationIds?: Array<string | number>;
approvalResult: string;
approvalComment: string;
nextApprover?: string | number;
}
// 审批历史记录
export interface CwApprovalHistoryVO {
id: string | number;
applicationId: string | number;
approverName: string;
approvalResult: string;
approvalComment: string;
approvalTime: string;
stepName: string;
stepOrder: number;
}
// 查询审批记录列表
export const listApprovalRecord = (query: CwApprovalRecordQuery): AxiosPromise<CwApprovalRecordVO[]> => {
return request({
url: '/cw/approval/list',
method: 'get',
params: query
});
};
// 查询审批记录详情
export const getApprovalRecord = (id: string | number): AxiosPromise<CwApprovalRecordVO> => {
return request({
url: '/cw/approval/' + id,
method: 'get'
});
};
// 审批申报(单个)
export const approveApplication = (data: CwApprovalForm) => {
return request({
url: '/cw/approval/process',
method: 'post',
data: data
});
};
// 批量审批申报
export const batchApproveApplication = (data: CwApprovalForm) => {
return request({
url: '/cw/approval/batchApprove',
method: 'post',
data: data
});
};
// 获取审批历史记录
export const getApprovalHistory = (applicationId: string | number): AxiosPromise<CwApprovalHistoryVO[]> => {
return request({
url: '/cw/approval/byApplication/' + applicationId,
method: 'get'
});
};
// 获取当前用户待审批列表
export const getPendingApprovals = (query: CwApprovalRecordQuery): AxiosPromise<CwApprovalRecordVO[]> => {
return request({
url: '/cw/approval/pending',
method: 'get',
params: query
});
};
// 获取当前用户已审批列表
export const getMyApprovals = (query: CwApprovalRecordQuery): AxiosPromise<CwApprovalRecordVO[]> => {
return request({
url: '/cw/approval/my',
method: 'get',
params: query
});
};
// 获取部门审批列表
export const getDepartmentApprovals = (query: CwApprovalRecordQuery): AxiosPromise<CwApprovalRecordVO[]> => {
return request({
url: '/cw/approval/dept/pending',
method: 'get',
params: query
});
};
// 获取可选审批人列表
export const getAvailableApprovers = (applicationId: string | number): AxiosPromise<any[]> => {
return request({
url: '/cw/approval/approvers/' + applicationId,
method: 'get'
});
};
// 导出审批记录
export const exportApprovalRecord = (query: CwApprovalRecordQuery) => {
return request({
url: '/cw/approval/export',
method: 'post',
data: query
});
};
// 获取审批统计数据
export const getApprovalStatistics = (year?: number) => {
return request({
url: '/cw/approval/statistics',
method: 'get',
params: { year }
});
};
// 按部门统计审批数据
export const getApprovalStatsByDept = () => {
return request({
url: '/cw/approval/statsByDept',
method: 'get'
});
};
// 按月份统计审批数据
export const getApprovalStatsByMonth = (year?: number) => {
return request({
url: '/cw/approval/statsByMonth',
method: 'get',
params: { query: { year } }
});
};
// 获取审批效率统计
export const getApprovalEfficiency = () => {
return request({
url: '/cw/approval/efficiency',
method: 'get'
});
};
+89
View File
@@ -0,0 +1,89 @@
/**
* 绩效指标管理 - API服务
*
* @author ruoyi
* @date 2025-08-01
*/
import request from '@/utils/request';
import type { AxiosPromise } from 'axios';
// 绩效指标类型定义
export interface PerformanceIndicatorForm {
id?: number;
applicationId: number;
applicationNo: string;
indicatorType: string;
indicatorTypeName: string;
goalName: string;
targetValue: string;
weightPercentage: number;
description?: string;
unit?: string;
measurementMethod?: string;
dataSource?: string;
}
// 查询绩效指标列表
export const listPerformanceIndicator = (query: any): AxiosPromise<PerformanceIndicatorForm[]> => {
return request({
url: '/cw/performance/list',
method: 'get',
params: query
});
};
// 根据申报ID查询绩效指标
export const getPerformanceByApplicationId = (applicationId: number): AxiosPromise<PerformanceIndicatorForm[]> => {
return request({
url: `/cw/performance/application/${applicationId}`,
method: 'get'
});
};
// 批量保存绩效指标
export const batchSavePerformanceIndicator = (applicationId: number, applicationNo: string, data: PerformanceIndicatorForm[]) => {
return request({
url: '/cw/performance/batchSave',
method: 'post',
data: {
applicationId,
applicationNo,
indicators: data
}
});
};
// 新增绩效指标
export const addPerformanceIndicator = (data: PerformanceIndicatorForm) => {
return request({
url: '/cw/performance',
method: 'post',
data: data
});
};
// 修改绩效指标
export const updatePerformanceIndicator = (data: PerformanceIndicatorForm) => {
return request({
url: '/cw/performance',
method: 'put',
data: data
});
};
// 删除绩效指标
export const delPerformanceIndicator = (id: string | number) => {
return request({
url: '/cw/performance/' + id,
method: 'delete'
});
};
// 根据申报ID删除绩效指标
export const delPerformanceByApplicationId = (applicationId: number) => {
return request({
url: `/cw/performance/application/${applicationId}`,
method: 'delete'
});
};
+217
View File
@@ -0,0 +1,217 @@
/**
* 财务项目预算审批 - API服务
*
* @author ruoyi
* @date 2025-01-26
*/
import request from '@/utils/request';
import type { AxiosPromise } from 'axios';
import type {
CwProjectApplicationQuery,
CwProjectApplicationVO,
CwProjectApplicationForm,
CwApproverConfigQuery,
CwApproverConfigVO,
CwApproverConfigForm,
CwApplicationStatistics
} from '@/api/cw/types';
// 查询项目预算申报列表
export const listProjectApplication = (query: CwProjectApplicationQuery): AxiosPromise<CwProjectApplicationVO[]> => {
return request({
url: '/cw/application/list',
method: 'get',
params: query
});
};
// 查询项目预算申报详情
export const getProjectApplication = (id: string | number): AxiosPromise<CwProjectApplicationVO> => {
return request({
url: '/cw/application/' + id,
method: 'get'
});
};
// 新增项目预算申报
export const addProjectApplication = (data: CwProjectApplicationForm) => {
return request({
url: '/cw/application',
method: 'post',
data: data
});
};
// 修改项目预算申报
export const updateProjectApplication = (data: CwProjectApplicationForm) => {
return request({
url: '/cw/application',
method: 'put',
data: data
});
};
// 删除项目预算申报
export const delProjectApplication = (id: string | number | Array<string | number>) => {
return request({
url: '/cw/application/' + id,
method: 'delete'
});
};
// 保存草稿
export const saveDraft = (data: CwProjectApplicationForm) => {
return request({
url: '/cw/application/saveDraft',
method: 'post',
data: data
});
};
// 提交申报
export const submitApplication = (id: string | number) => {
return request({
url: '/cw/application/submit/' + id,
method: 'post'
});
};
// 撤回申报
export const withdrawApplication = (id: string | number) => {
return request({
url: '/cw/application/withdraw/' + id,
method: 'put'
});
};
// 取消申报
export const cancelApplication = (id: string | number) => {
return request({
url: '/cw/application/cancel/' + id,
method: 'put'
});
};
// 查询我的申报
export const getMyApplications = (query: CwProjectApplicationQuery): AxiosPromise<CwProjectApplicationVO[]> => {
return request({
url: '/cw/application/my',
method: 'get',
params: query
});
};
// 查询部门申报
export const getDepartmentApplications = (query: CwProjectApplicationQuery): AxiosPromise<CwProjectApplicationVO[]> => {
return request({
url: '/cw/application/dept',
method: 'get',
params: query
});
};
// 查询待处理申报
export const getPendingApplications = (query: CwProjectApplicationQuery): AxiosPromise<CwProjectApplicationVO[]> => {
return request({
url: '/cw/application/pending',
method: 'get',
params: query
});
};
// 导出项目预算申报
export const exportProjectApplication = (query: CwProjectApplicationQuery) => {
return request({
url: '/cw/application/export',
method: 'post',
data: query
});
};
// 获取申报统计数据
export const getApplicationStatistics = (year?: number): AxiosPromise<CwApplicationStatistics> => {
return request({
url: '/cw/application/statistics',
method: 'get',
params: { year }
});
};
// 申报数量统计
export const getApplicationCount = (): AxiosPromise<number> => {
return request({
url: '/cw/application/count',
method: 'get'
});
};
// 申报金额汇总
export const getApplicationAmountSum = (): AxiosPromise<number> => {
return request({
url: '/cw/application/amountSum',
method: 'get'
});
};
// 按部门统计
export const getStatisticsByDept = () => {
return request({
url: '/cw/application/statisticsByDept',
method: 'get'
});
};
// 按月份统计
export const getStatisticsByMonth = (year?: number) => {
return request({
url: '/cw/application/statisticsByMonth',
method: 'get',
params: { year }
});
};
// ==================== 审批人配置相关 API ====================
// 查询审批人配置列表
export const listApproverConfig = (query: CwApproverConfigQuery): AxiosPromise<CwApproverConfigVO[]> => {
return request({
url: '/cw/approverConfig/list',
method: 'get',
params: query
});
};
// 查询审批人配置详情
export const getApproverConfig = (id: string | number): AxiosPromise<CwApproverConfigVO> => {
return request({
url: '/cw/approverConfig/' + id,
method: 'get'
});
};
// 新增审批人配置
export const addApproverConfig = (data: CwApproverConfigForm) => {
return request({
url: '/cw/approverConfig',
method: 'post',
data: data
});
};
// 修改审批人配置
export const updateApproverConfig = (data: CwApproverConfigForm) => {
return request({
url: '/cw/approverConfig',
method: 'put',
data: data
});
};
// 删除审批人配置
export const delApproverConfig = (id: string | number | Array<string | number>) => {
return request({
url: '/cw/approverConfig/' + id,
method: 'delete'
});
};
+202
View File
@@ -0,0 +1,202 @@
/**
* 财务项目预算审批 - TypeScript类型定义
*
* @author ruoyi
* @date 2025-01-26
*/
// 项目预算申报查询对象
export interface CwProjectApplicationQuery {
pageNum?: number;
pageSize?: number;
applicationNo?: string;
projectName?: string;
principal?: string;
approvalStatus?: string;
departmentId?: number;
startDate?: string;
endDate?: string;
year?: number;
}
// 项目预算申报视图对象
export interface CwProjectApplicationVO {
id?: number;
applicationNo?: string;
projectName?: string;
principal?: string;
contactPhone?: string;
startDate?: string;
endDate?: string;
targetSme?: boolean;
targetMicroSme?: boolean;
importEquipment?: boolean;
applicationReason?: string;
constructionContent?: string;
totalPerformanceGoal?: string;
currentYearGoal?: string;
totalInvestment?: number;
totalMunicipalFiscal?: number;
totalSelfFunding?: number;
totalOtherFunding?: number;
currentYearTotal?: number;
currentYearMunicipal?: number;
currentYearSelf?: number;
currentYearOther?: number;
nextYearTotal?: number;
nextYearMunicipal?: number;
nextYearSelf?: number;
nextYearOther?: number;
futureYearTotal?: number;
futureYearMunicipal?: number;
futureYearSelf?: number;
futureYearOther?: number;
applicantId?: number;
applicantName?: string;
departmentId?: number;
departmentName?: string;
approvalStatus?: string;
submitTime?: string;
approveTime?: string;
year?: number;
createBy?: number;
createTime?: string;
updateBy?: number;
updateTime?: string;
remark?: string;
}
// 项目预算申报表单对象
export interface CwProjectApplicationForm {
id?: number;
applicationNo?: string;
projectName?: string;
principal?: string;
contactPhone?: string;
startDate?: string;
endDate?: string;
targetSme?: boolean;
targetMicroSme?: boolean;
importEquipment?: boolean;
applicationReason?: string;
constructionContent?: string;
totalPerformanceGoal?: string;
currentYearGoal?: string;
totalInvestment?: number;
totalMunicipalFiscal?: number;
totalSelfFunding?: number;
totalOtherFunding?: number;
currentYearTotal?: number;
currentYearMunicipal?: number;
currentYearSelf?: number;
currentYearOther?: number;
nextYearTotal?: number;
nextYearMunicipal?: number;
nextYearSelf?: number;
nextYearOther?: number;
futureYearTotal?: number;
futureYearMunicipal?: number;
futureYearSelf?: number;
futureYearOther?: number;
applicantId?: number;
applicantName?: string;
departmentId?: number;
departmentName?: string;
approvalStatus?: string;
year?: number;
remark?: string;
performanceIndicators?: any[]; // 绩效指标数据
}
// 审批人配置查询对象
export interface CwApproverConfigQuery {
pageNum?: number;
pageSize?: number;
configType?: string;
deptId?: number;
status?: string;
}
// 审批人配置视图对象
export interface CwApproverConfigVO {
id?: number;
configType?: string;
deptId?: number;
minAmount?: number;
maxAmount?: number;
deptApproverId?: number;
deptApproverName?: string;
financeApproverId?: number;
financeApproverName?: string;
leaderApproverId?: number;
leaderApproverName?: string;
deptDelegateId?: number;
deptDelegateName?: string;
financeDelegateId?: number;
financeDelegateName?: string;
leaderDelegateId?: number;
leaderDelegateName?: string;
status?: string;
remark?: string;
createTime?: string;
updateTime?: string;
}
// 审批人配置表单对象
export interface CwApproverConfigForm {
id?: number;
configType?: string;
deptId?: number;
minAmount?: number;
maxAmount?: number;
deptApproverId?: number;
deptApproverName?: string;
financeApproverId?: number;
financeApproverName?: string;
leaderApproverId?: number;
leaderApproverName?: string;
deptDelegateId?: number;
deptDelegateName?: string;
financeDelegateId?: number;
financeDelegateName?: string;
leaderDelegateId?: number;
leaderDelegateName?: string;
status?: string;
remark?: string;
}
// 项目申报统计对象
export interface CwApplicationStatistics {
totalCount: number;
approvingCount: number;
approvedCount: number;
rejectedCount: number;
totalAmount: number;
monthlyTrend: MonthlyTrend[];
deptStatistics: DeptStatistics[];
statusDistribution: StatusDistribution[];
}
// 部门统计对象
export interface DeptStatistics {
deptName: string;
totalCount: number;
totalAmount: number;
approvedCount: number;
approvedAmount: number;
}
// 月度趋势对象
export interface MonthlyTrend {
month: string;
count: number;
amount: number;
}
// 状态分布对象
export interface StatusDistribution {
status: string;
statusName: string;
count: number;
percentage: number;
}
+16 -4
View File
@@ -8,7 +8,10 @@ export function listHallReservation(query: HallReservationQuery) {
return request<TableDataInfo<HallReservationVO>>({
url: '/hq/hallReservation/list',
method: 'get',
params: query
params: query,
headers: {
isEncrypt: 'true'
}
});
}
@@ -16,7 +19,10 @@ export function listHallReservation(query: HallReservationQuery) {
export function getHallReservation(id: string | number) {
return request<R<HallReservationVO>>({
url: '/hq/hallReservation/' + id,
method: 'get'
method: 'get',
headers: {
isEncrypt: 'true'
}
});
}
@@ -25,7 +31,10 @@ export function auditHallReservation(data: HallReservationAuditForm) {
return request<R<any>>({
url: '/hq/hallReservation/audit',
method: 'put',
data: data
data: data,
headers: {
isEncrypt: 'true'
}
});
}
@@ -34,6 +43,9 @@ export function checkTimeConflict(data: TimeCheckParams) {
return request<R<TimeCheckResult>>({
url: '/hq/hallReservation/checkTimeConflict',
method: 'post',
data: data
data: data,
headers: {
isEncrypt: 'true'
}
});
}
+20 -5
View File
@@ -12,7 +12,10 @@ export const listHallInfo = (query?: HallInfoQuery): AxiosPromise<HallInfoVO[]>
return request({
url: '/hq/hallInfo/list',
method: 'get',
params: query
params: query,
headers: {
isEncrypt: 'true'
}
});
};
@@ -23,7 +26,10 @@ export const listHallInfo = (query?: HallInfoQuery): AxiosPromise<HallInfoVO[]>
export const getHallInfo = (id: string | number): AxiosPromise<HallInfoVO> => {
return request({
url: '/hq/hallInfo/' + id,
method: 'get'
method: 'get',
headers: {
isEncrypt: 'true'
}
});
};
@@ -35,7 +41,10 @@ export const addHallInfo = (data: HallInfoForm) => {
return request({
url: '/hq/hallInfo',
method: 'post',
data: data
data: data,
headers: {
isEncrypt: 'true'
}
});
};
@@ -47,7 +56,10 @@ export const updateHallInfo = (data: HallInfoForm) => {
return request({
url: '/hq/hallInfo',
method: 'put',
data: data
data: data,
headers: {
isEncrypt: 'true'
}
});
};
@@ -58,6 +70,9 @@ export const updateHallInfo = (data: HallInfoForm) => {
export const delHallInfo = (id: string | number | Array<string | number>) => {
return request({
url: '/hq/hallInfo/' + id,
method: 'delete'
method: 'delete',
headers: {
isEncrypt: 'true'
}
});
};
+20 -5
View File
@@ -12,7 +12,10 @@ export const listHallReservation = (query?: HallReservationQuery): AxiosPromise<
return request({
url: '/hq/hallReservation/list',
method: 'get',
params: query
params: query,
headers: {
isEncrypt: 'true'
}
});
};
@@ -23,7 +26,10 @@ export const listHallReservation = (query?: HallReservationQuery): AxiosPromise<
export const getHallReservation = (id: string | number): AxiosPromise<HallReservationVO> => {
return request({
url: '/hq/hallReservation/' + id,
method: 'get'
method: 'get',
headers: {
isEncrypt: 'true'
}
});
};
@@ -35,7 +41,10 @@ export const addHallReservation = (data: HallReservationForm) => {
return request({
url: '/hq/hallReservation',
method: 'post',
data: data
data: data,
headers: {
isEncrypt: 'true'
}
});
};
@@ -47,7 +56,10 @@ export const updateHallReservation = (data: HallReservationForm) => {
return request({
url: '/hq/hallReservation',
method: 'put',
data: data
data: data,
headers: {
isEncrypt: 'true'
}
});
};
@@ -58,6 +70,9 @@ export const updateHallReservation = (data: HallReservationForm) => {
export const delHallReservation = (id: string | number | Array<string | number>) => {
return request({
url: '/hq/hallReservation/' + id,
method: 'delete'
method: 'delete',
headers: {
isEncrypt: 'true'
}
});
};
-80
View File
@@ -1,80 +0,0 @@
/**
* 部门树结构
*/
export interface XgDeptTreeVO extends BaseEntity {
id: number | string;
label: string;
parentId: number | string;
weight: number;
children: XgDeptTreeVO[];
disabled: boolean;
}
// 学生查询参数
export interface StudentQuery {
pageNum: number;
pageSize: number;
studentName?: string;
studentNo?: string;
phonenumber?: string;
status?: string;
deptId?: number;
}
// 学生视图对象
export interface StudentVO {
studentId: number | string;
studentNo: string;
studentName: string;
nickName?: string;
sex?: string;
age?: number;
phonenumber?: string;
email?: string;
idCard?: string;
deptId?: number;
deptName?: string;
majorId?: number;
majorName?: string;
classId?: number;
className?: string;
address?: string;
status?: string;
createBy?: number;
createTime?: string;
updateBy?: number;
updateTime?: string;
remark?: string;
}
// 学生表单对象
export interface StudentForm {
studentId?: number | string;
deptId?: number;
studentNo: string;
studentName: string;
nickName?: string;
password?: string;
phonenumber?: string;
email?: string;
idCard?: string;
sex?: string;
status?: string;
majorId?: number;
classId?: number;
address?: string;
remark?: string;
}
// 统一响应类型
export interface R<T> {
code: number;
msg: string;
data: T;
}
// 表格数据信息类型
export interface TableDataInfo<T> {
total: number;
rows: T;
}
+63
View File
@@ -0,0 +1,63 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { SysRegionVO, SysRegionForm, SysRegionQuery } from '@/api/system/SysRegion/types';
/**
* 查询行政区划列表
* @param query
* @returns {*}
*/
export const listSysRegion = (query?: SysRegionQuery): AxiosPromise<SysRegionVO[]> => {
return request({
url: '/system/SysRegion/list',
method: 'get',
params: query
});
};
/**
* 查询行政区划详细
* @param id
*/
export const getSysRegion = (id: string | number): AxiosPromise<SysRegionVO> => {
return request({
url: '/system/SysRegion/' + id,
method: 'get'
});
};
/**
* 新增行政区划
* @param data
*/
export const addSysRegion = (data: SysRegionForm) => {
return request({
url: '/system/SysRegion',
method: 'post',
data: data
});
};
/**
* 修改行政区划
* @param data
*/
export const updateSysRegion = (data: SysRegionForm) => {
return request({
url: '/system/SysRegion',
method: 'put',
data: data
});
};
/**
* 删除行政区划
* @param id
*/
export const delSysRegion = (id: string | number | Array<string | number>) => {
return request({
url: '/system/SysRegion/' + id,
method: 'delete'
});
};
+191
View File
@@ -0,0 +1,191 @@
export interface SysRegionVO {
/**
* 主键ID
*/
id: string | number;
/**
* 行政区划编码
*/
code: string;
/**
* 行政区划名称
*/
name: string;
/**
* 行政区划简称
*/
shortName: string;
/**
* 父级行政区划编码,顶级为0
*/
parentCode: number;
/**
* 层级(1:省,2:市,3:区/县,4:街道/镇)
*/
level: number;
/**
* 排序
*/
sort: number;
/**
* 状态(0正常 1停用)
*/
status: string;
/**
* 备注
*/
remark: string;
/**
* 经度
*/
longitude: number;
/**
* 纬度
*/
latitude: number;
/**
* 逻辑删除标识(0未删除 1已删除)
*/
deleted: number;
/**
* 子节点列表(用于树形结构)
*/
children?: SysRegionVO[];
}
export interface SysRegionForm extends BaseEntity {
/**
* 主键ID
*/
id?: string | number;
/**
* 行政区划编码
*/
code?: string;
/**
* 行政区划名称
*/
name?: string;
/**
* 行政区划简称
*/
shortName?: string;
/**
* 父级行政区划编码,顶级为0
*/
parentCode?: number;
/**
* 层级(1:省,2:市,3:区/县,4:街道/镇)
*/
level?: number;
/**
* 排序
*/
sort?: number;
/**
* 状态(0正常 1停用)
*/
status?: string;
/**
* 备注
*/
remark?: string;
/**
* 经度
*/
longitude?: number;
/**
* 纬度
*/
latitude?: number;
/**
* 逻辑删除标识(0未删除 1已删除)
*/
deleted?: number;
}
export interface SysRegionQuery extends PageQuery {
/**
* 行政区划编码
*/
code?: string;
/**
* 行政区划名称
*/
name?: string;
/**
* 行政区划简称
*/
shortName?: string;
/**
* 父级行政区划编码,顶级为0
*/
parentCode?: number;
/**
* 层级(1:省,2:市,3:区/县,4:街道/镇)
*/
level?: number;
/**
* 排序
*/
sort?: number;
/**
* 状态(0正常 1停用)
*/
status?: string;
/**
* 经度
*/
longitude?: number;
/**
* 纬度
*/
latitude?: number;
/**
* 逻辑删除标识(0未删除 1已删除)
*/
deleted?: number;
/**
* 日期范围参数
*/
params?: any;
}
+124
View File
@@ -0,0 +1,124 @@
import request from '@/utils/request'
/**
* 重置bucket访问密码
* @param bucketName bucket名称
* @param newPassword 新密码
* @returns 操作结果
*/
export function resetBucketPassword(bucketName: string, newPassword: string) {
return request({
url: '/system/bucket-password/reset',
method: 'post',
params: { bucketName, newPassword }
})
}
/**
* 获取bucket密码信息
* @param bucketName bucket名称
* @returns bucket密码信息
*/
export function getBucketPasswordInfo(bucketName: string) {
return request({
url: `/system/bucket-password/info/${bucketName}`,
method: 'get'
})
}
/**
* 获取bucket访问记录
* @param bucketName bucket名称
* @param limit 限制数量,默认10条
* @returns 访问记录列表
*/
export function getBucketAccessRecords(bucketName: string, limit: number = 10) {
return request({
url: `/system/bucket-password/records/${bucketName}`,
method: 'get',
params: { limit }
})
}
/**
* 验证bucket密码
* @param bucketName bucket名称
* @param password 密码
* @returns 验证结果
*/
export function validateBucketPassword(bucketName: string, password: string) {
return request({
url: '/system/bucket-password/validate',
method: 'post',
params: { bucketName, password }
})
}
/**
* 生成强密码
* @param length 密码长度,默认12位
* @returns 生成的密码
*/
export function generateStrongPassword(length: number = 12): string {
const charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*'
let password = ''
for (let i = 0; i < length; i++) {
password += charset.charAt(Math.floor(Math.random() * charset.length))
}
return password
}
/**
* 验证密码强度
* @param password 密码
* @returns 密码强度评估
*/
export function validatePasswordStrength(password: string): {
isValid: boolean
score: number
suggestions: string[]
} {
const suggestions: string[] = []
let score = 0
// 长度检查
if (password.length >= 8) {
score += 1
} else {
suggestions.push('密码长度至少8位')
}
// 包含大写字母
if (/[A-Z]/.test(password)) {
score += 1
} else {
suggestions.push('包含大写字母')
}
// 包含小写字母
if (/[a-z]/.test(password)) {
score += 1
} else {
suggestions.push('包含小写字母')
}
// 包含数字
if (/\d/.test(password)) {
score += 1
} else {
suggestions.push('包含数字')
}
// 包含特殊字符
if (/[!@#$%^&*]/.test(password)) {
score += 1
} else {
suggestions.push('包含特殊字符')
}
return {
isValid: score >= 4,
score,
suggestions
}
}
+161
View File
@@ -0,0 +1,161 @@
import request from '@/utils/request'
/**
* 获取文件临时访问URL
* @param ossId 文件ID
* @param bucketPassword bucket访问密码
* @param expireSeconds 过期时间(秒),默认300秒
* @returns 临时访问URL
*/
export function getFileAccessUrl(ossId: number | string | bigint, bucketPassword?: string, expireSeconds: number = 300) {
return request({
url: `/resource/file/access/${ossId}`,
method: 'get',
params: {
bucketPassword,
expireSeconds
}
})
}
/**
* 批量获取文件临时访问URL
* @param ossIds 文件ID列表
* @param bucketPassword bucket访问密码
* @param expireSeconds 过期时间(秒),默认300秒
* @returns 文件ID与临时URL的映射
*/
export function getBatchFileAccessUrl(ossIds: number[], bucketPassword?: string, expireSeconds: number = 300) {
return request({
url: '/resource/file/access/batch',
method: 'post',
data: ossIds,
params: {
bucketPassword,
expireSeconds
}
})
}
/**
* 获取文件下载URL(带权限检查)
* @param ossId 文件ID
* @param bucketPassword bucket访问密码
* @param expireSeconds 过期时间(秒),默认300秒
* @returns 下载URL
*/
export function getFileDownloadUrl(ossId: number | string | bigint, bucketPassword?: string, expireSeconds: number = 300) {
return request({
url: `/resource/oss/download/${ossId}`,
method: 'get',
params: {
bucketPassword,
expireSeconds
}
})
}
/**
* 获取文件预览URL(带权限检查)
* @param ossId 文件ID
* @param bucketPassword bucket访问密码
* @param expireSeconds 过期时间(秒),默认300秒
* @returns 预览URL
*/
export function getFilePreviewUrl(ossId: number | string | bigint, bucketPassword?: string, expireSeconds: number = 300) {
return request({
url: `/resource/file/preview/${ossId}`,
method: 'get',
params: {
bucketPassword,
expireSeconds
}
})
}
/**
* 安全下载文件(带bucket密码验证)
* @param ossId 文件ID
* @param fileName 文件名
* @param bucketPassword bucket访问密码
* @returns Promise<void>
*/
export async function secureDownloadFile(ossId: number | string | bigint, fileName: string, bucketPassword?: string) {
try {
// 获取临时下载URL
const { data: downloadUrl } = await getFileDownloadUrl(ossId, bucketPassword)
// 使用fetch下载文件
const response = await fetch(downloadUrl)
if (!response.ok) {
throw new Error('下载失败')
}
const blob = await response.blob()
// 创建下载链接
const url = URL.createObjectURL(blob)
const link = document.createElement('a')
link.href = url
link.download = fileName
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
// 释放内存
URL.revokeObjectURL(url)
return Promise.resolve()
} catch (error) {
console.error('文件下载失败:', error)
return Promise.reject(error)
}
}
/**
* 安全预览文件(带bucket密码验证)
* @param ossId 文件ID
* @param contentType 文件类型
* @param bucketPassword bucket访问密码
* @returns Promise<string> 预览URL
*/
export async function securePreviewFile(ossId: number | string | bigint, contentType?: string, bucketPassword?: string) {
try {
// 获取临时预览URL
const { data: previewUrl } = await getFilePreviewUrl(ossId, bucketPassword)
// 根据文件类型选择预览方式
if (contentType?.startsWith('image/')) {
// 图片直接返回URL用于预览
return Promise.resolve(previewUrl)
} else {
// 其他文件在新窗口打开
window.open(previewUrl, '_blank')
return Promise.resolve(previewUrl)
}
} catch (error) {
console.error('文件预览失败:', error)
return Promise.reject(error)
}
}
/**
* 获取bucket访问密码提示
* @param bucketName bucket名称
* @returns 密码提示信息
*/
export function getBucketPasswordHint(bucketName: string) {
// 这里可以根据bucket名称返回相应的密码提示
// 例如:从配置中获取密码提示信息
return `请输入 ${bucketName} bucket 的访问密码`
}
/**
* 验证bucket密码格式
* @param password 密码
* @returns 验证结果
*/
export function validateBucketPassword(password: string): boolean {
// 简单的密码格式验证
return password && password.length >= 6
}
+1
View File
@@ -48,6 +48,7 @@ export interface UserVO extends BaseEntity {
postIds: any;
roleId: any;
admin: boolean;
accountType: string;
}
/**
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -1,6 +1,6 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { DormBedVO, DormBedForm, DormBedQuery } from '@/api/xgss/dormBed/types';
import { DormBedVO, DormBedForm, DormBedQuery } from '@/api/xg/xgss/dormBed/types';
/**
* 查询宿舍床位信息列表
File renamed without changes.
@@ -1,6 +1,6 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { DormRoomVO, DormRoomForm, DormRoomQuery } from '@/api/xgss/dormRoom/types';
import { DormRoomVO, DormRoomForm, DormRoomQuery } from '@/api/xg/xgss/dormRoom/types';
/**
* 查询宿舍房间信息列表
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,63 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { StuColBatchVO, StuColBatchForm, StuColBatchQuery } from '@/api/xg/xsjcxx/XgStuColBatch/stuColBatch/types';
/**
* 查询学生信息收集批次列表
* @param query
* @returns {*}
*/
export const listStuColBatch = (query?: StuColBatchQuery): AxiosPromise<StuColBatchVO[]> => {
return request({
url: '/XgStuColBatch/stuColBatch/list',
method: 'get',
params: query
});
};
/**
* 查询学生信息收集批次详细
* @param id
*/
export const getStuColBatch = (id: string | number): AxiosPromise<StuColBatchVO> => {
return request({
url: '/XgStuColBatch/stuColBatch/' + id,
method: 'get'
});
};
/**
* 新增学生信息收集批次
* @param data
*/
export const addStuColBatch = (data: StuColBatchForm) => {
return request({
url: '/XgStuColBatch/stuColBatch',
method: 'post',
data: data
});
};
/**
* 修改学生信息收集批次
* @param data
*/
export const updateStuColBatch = (data: StuColBatchForm) => {
return request({
url: '/XgStuColBatch/stuColBatch',
method: 'put',
data: data
});
};
/**
* 删除学生信息收集批次
* @param id
*/
export const delStuColBatch = (id: string | number | Array<string | number>) => {
return request({
url: '/XgStuColBatch/stuColBatch/' + id,
method: 'delete'
});
};
@@ -0,0 +1,101 @@
export interface StuColBatchVO {
/**
* 批次ID
*/
id: string | number;
/**
* 批次名称
*/
batchName: string;
/**
* 批次描述
*/
description: string;
/**
* 开始时间
*/
startTime: string;
/**
* 结束时间
*/
endTime: string;
/**
* 状态(0正常 1停用)
*/
status: string;
/**
* 收集类型 1 - 新学期收集 2 - 其他
*/
collectionType: string;
}
export interface StuColBatchForm extends BaseEntity {
/**
* 批次ID
*/
id?: string | number;
/**
* 批次名称
*/
batchName?: string;
/**
* 批次描述
*/
description?: string;
/**
* 开始时间
*/
startTime?: string;
/**
* 结束时间
*/
endTime?: string;
/**
* 状态(0正常 1停用)
*/
status?: string;
/**
* 收集类型 1 - 新学期收集 2 - 其他
*/
collectionType?: string;
}
export interface StuColBatchQuery extends PageQuery {
/**
* 批次名称
*/
batchName?: string;
/**
* 状态(0正常 1停用)
*/
status?: string;
/**
* 收集类型 1 - 新学期收集 2 - 其他
*/
collectionType?: string;
/**
* 日期范围参数
*/
params?: any;
}
File renamed without changes.
@@ -152,6 +152,8 @@ export interface ClassMsgVO {
lastCountUpdate?: string;
/** 备注 */
remark?: string;
/** 学制 */
schoolSystem?: string;
}
/** 班级表单数据 */
@@ -0,0 +1,101 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { StuColBatchClassVO, StuColBatchClassForm, StuColBatchClassQuery } from '@/api/xg/xsjcxx/stuColBatchClass/stuColBatchClass/types';
/**
* 查询学生信息收集批次班级权限列表
* @param query
* @returns {*}
*/
export const listStuColBatchClass = (query?: StuColBatchClassQuery): AxiosPromise<StuColBatchClassVO[]> => {
return request({
url: '/stuColBatchClass/stuColBatchClass/list',
method: 'get',
params: query
});
};
/**
* 查询学生信息收集批次班级权限详细
* @param id
*/
export const getStuColBatchClass = (id: string | number): AxiosPromise<StuColBatchClassVO> => {
return request({
url: '/stuColBatchClass/stuColBatchClass/' + id,
method: 'get'
});
};
/**
* 新增学生信息收集批次班级权限
* @param data
*/
export const addStuColBatchClass = (data: StuColBatchClassForm) => {
return request({
url: '/stuColBatchClass/stuColBatchClass',
method: 'post',
data: data
});
};
/**
* 修改学生信息收集批次班级权限
* @param data
*/
export const updateStuColBatchClass = (data: StuColBatchClassForm) => {
return request({
url: '/stuColBatchClass/stuColBatchClass',
method: 'put',
data: data
});
};
/**
* 删除学生信息收集批次班级权限
* @param id
*/
export const delStuColBatchClass = (id: string | number | Array<string | number>) => {
return request({
url: '/stuColBatchClass/stuColBatchClass/' + id,
method: 'delete'
});
};
/**
* 设置学生信息收集批次班级权限
* @param batchId 批次ID
* @param deptIds 授权的班级ID列表
*/
export const setScope = (batchId: string | number, deptIds: Array<string | number>) => {
return request({
url: '/stuColBatchClass/stuColBatchClass/setScope',
method: 'post',
params: {
batchId,
deptIds
}
});
};
/**
* 获取学生信息收集批次班级权限
* @param batchId 批次ID
*/
export const getScope = (batchId: string | number) => {
return request({
url: '/stuColBatchClass/stuColBatchClass/getScope/' + batchId,
method: 'get'
});
};
/**
* 获取批次配置的权限范围详细信息
* @param batchId 批次ID
*/
export const getScopeDetail = (batchId: string | number) => {
return request({
url: '/stuColBatchClass/stuColBatchClass/getScopeDetail/' + batchId,
method: 'get'
});
};
@@ -0,0 +1,156 @@
export interface StuColBatchClassVO {
/**
* 主键ID
*/
id: string | number;
/**
* 批次ID
*/
batchId: string | number;
/**
* 班级ID
*/
classId: string | number;
/**
* 班级名称
*/
className: string;
/**
* 专业ID
*/
majorId: string | number;
/**
* 专业名称
*/
majorName: string;
/**
* 院系ID
*/
collegeId: string | number;
/**
* 院系名称
*/
collegeName: string;
/**
* 备注
*/
remark: string;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted: number;
}
export interface StuColBatchClassForm extends BaseEntity {
/**
* 主键ID
*/
id?: string | number;
/**
* 批次ID
*/
batchId?: string | number;
/**
* 班级ID
*/
classId?: string | number;
/**
* 班级名称
*/
className?: string;
/**
* 专业ID
*/
majorId?: string | number;
/**
* 专业名称
*/
majorName?: string;
/**
* 院系ID
*/
collegeId?: string | number;
/**
* 院系名称
*/
collegeName?: string;
/**
* 备注
*/
remark?: string;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: number;
}
export interface StuColBatchClassQuery extends PageQuery {
/**
* 批次ID
*/
batchId?: string | number;
/**
* 班级ID
*/
classId?: string | number;
/**
* 班级名称
*/
className?: string;
/**
* 专业ID
*/
majorId?: string | number;
/**
* 专业名称
*/
majorName?: string;
/**
* 院系ID
*/
collegeId?: string | number;
/**
* 院系名称
*/
collegeName?: string;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: number;
/**
* 日期范围参数
*/
params?: any;
}
@@ -0,0 +1,63 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { StuColBatchVO, StuColBatchForm, StuColBatchQuery } from '@/api/xg/xsjcxx/stuMsgAudit/types';
/**
* 查询学生信息收集批次列表
* @param query
* @returns {*}
*/
export const listStuColBatch = (query?: StuColBatchQuery): AxiosPromise<StuColBatchVO[]> => {
return request({
url: '/XgStuColBatch/stuColBatch/list',
method: 'get',
params: query
});
};
/**
* 查询学生信息收集批次详细
* @param id
*/
export const getStuColBatch = (id: string | number): AxiosPromise<StuColBatchVO> => {
return request({
url: '/XgStuColBatch/stuColBatch/' + id,
method: 'get'
});
};
/**
* 新增学生信息收集批次
* @param data
*/
export const addStuColBatch = (data: StuColBatchForm) => {
return request({
url: '/XgStuColBatch/stuColBatch',
method: 'post',
data: data
});
};
/**
* 修改学生信息收集批次
* @param data
*/
export const updateStuColBatch = (data: StuColBatchForm) => {
return request({
url: '/XgStuColBatch/stuColBatch',
method: 'put',
data: data
});
};
/**
* 删除学生信息收集批次
* @param id
*/
export const delStuColBatch = (id: string | number | Array<string | number>) => {
return request({
url: '/XgStuColBatch/stuColBatch/' + id,
method: 'delete'
});
};
+101
View File
@@ -0,0 +1,101 @@
export interface StuColBatchVO {
/**
* 批次ID
*/
id: string | number;
/**
* 批次名称
*/
batchName: string;
/**
* 批次描述
*/
description: string;
/**
* 开始时间
*/
startTime: string;
/**
* 结束时间
*/
endTime: string;
/**
* 状态(0正常 1停用)
*/
status: string;
/**
* 收集类型 1 - 新学期收集 2 - 其他
*/
collectionType: string;
}
export interface StuColBatchForm extends BaseEntity {
/**
* 批次ID
*/
id?: string | number;
/**
* 批次名称
*/
batchName?: string;
/**
* 批次描述
*/
description?: string;
/**
* 开始时间
*/
startTime?: string;
/**
* 结束时间
*/
endTime?: string;
/**
* 状态(0正常 1停用)
*/
status?: string;
/**
* 收集类型 1 - 新学期收集 2 - 其他
*/
collectionType?: string;
}
export interface StuColBatchQuery extends PageQuery {
/**
* 批次名称
*/
batchName?: string;
/**
* 状态(0正常 1停用)
*/
status?: string;
/**
* 收集类型 1 - 新学期收集 2 - 其他
*/
collectionType?: string;
/**
* 日期范围参数
*/
params?: any;
}
@@ -0,0 +1,63 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { StuColBatchVO, StuColBatchForm, StuColBatchQuery } from '@/api/xg/xsjcxx/stuMsgSupply/types';
/**
* 查询学生信息收集批次列表
* @param query
* @returns {*}
*/
export const listStuColBatch = (query?: StuColBatchQuery): AxiosPromise<StuColBatchVO[]> => {
return request({
url: '/XgStuColBatch/stuColBatch/list',
method: 'get',
params: query
});
};
/**
* 查询学生信息收集批次详细
* @param id
*/
export const getStuColBatch = (id: string | number): AxiosPromise<StuColBatchVO> => {
return request({
url: '/XgStuColBatch/stuColBatch/' + id,
method: 'get'
});
};
/**
* 新增学生信息收集批次
* @param data
*/
export const addStuColBatch = (data: StuColBatchForm) => {
return request({
url: '/XgStuColBatch/stuColBatch',
method: 'post',
data: data
});
};
/**
* 修改学生信息收集批次
* @param data
*/
export const updateStuColBatch = (data: StuColBatchForm) => {
return request({
url: '/XgStuColBatch/stuColBatch',
method: 'put',
data: data
});
};
/**
* 删除学生信息收集批次
* @param id
*/
export const delStuColBatch = (id: string | number | Array<string | number>) => {
return request({
url: '/XgStuColBatch/stuColBatch/' + id,
method: 'delete'
});
};
+101
View File
@@ -0,0 +1,101 @@
export interface StuColBatchVO {
/**
* 批次ID
*/
id: string | number;
/**
* 批次名称
*/
batchName: string;
/**
* 批次描述
*/
description: string;
/**
* 开始时间
*/
startTime: string;
/**
* 结束时间
*/
endTime: string;
/**
* 状态(0正常 1停用)
*/
status: string;
/**
* 收集类型 1 - 新学期收集 2 - 其他
*/
collectionType: string;
}
export interface StuColBatchForm extends BaseEntity {
/**
* 批次ID
*/
id?: string | number;
/**
* 批次名称
*/
batchName?: string;
/**
* 批次描述
*/
description?: string;
/**
* 开始时间
*/
startTime?: string;
/**
* 结束时间
*/
endTime?: string;
/**
* 状态(0正常 1停用)
*/
status?: string;
/**
* 收集类型 1 - 新学期收集 2 - 其他
*/
collectionType?: string;
}
export interface StuColBatchQuery extends PageQuery {
/**
* 批次名称
*/
batchName?: string;
/**
* 状态(0正常 1停用)
*/
status?: string;
/**
* 收集类型 1 - 新学期收集 2 - 其他
*/
collectionType?: string;
/**
* 日期范围参数
*/
params?: any;
}
+61
View File
@@ -0,0 +1,61 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import type { XgDeptTreeVO, R, TableDataInfo, XgStudentMsgAdvancedSearchQuery } from '@/api/xg/xsjcxx/stuRoster/types';
/**
* 查询部门下拉树结构
* @param deptId 部门ID
*/
export const XgDeptTreeSelect = (belongDeptId?: number): AxiosPromise<XgDeptTreeVO[]> => {
return request({
url: '/xgStudentManagerSource/studentManagerSource/currentUserAuthTree',
method: 'get'
});
};
// 查询院系树结构
export function deptTreeSelect(): AxiosPromise<R<any>> {
return request({
url: '/system/dept/treeselect',
method: 'get'
});
}
// 查询学生花名册列表 - 使用高级搜索接口
export function listStudentRoster(query?: XgStudentMsgAdvancedSearchQuery): AxiosPromise<R<TableDataInfo<any[]>>> {
return request({
url: '/studentMsg/studentMsg/advancedSearch',
method: 'post',
data: query
});
}
// 导出学生花名册
export function exportStudentRoster(query?: any): AxiosPromise<any> {
return request({
url: '/studentMsg/studentMsg/export',
method: 'get',
params: query,
responseType: 'blob'
});
}
/**
* 获取学生个人信息
* @param userId 用户ID,可为空,为空时使用当前登录用户ID
*/
export function getStudentPersonalInfo(userId?: number): AxiosPromise<any> {
return request({
url: '/studentMsg/studentMsg/personalInfo',
method: 'get',
params: { userId }
});
}
export default {
XgDeptTreeSelect,
deptTreeSelect,
listStudentRoster,
exportStudentRoster,
getStudentPersonalInfo
};
+187
View File
@@ -0,0 +1,187 @@
// 部门树节点类型
export interface XgDeptTreeVO {
id: number;
label: string;
children?: XgDeptTreeVO[];
disabled?: boolean;
}
// 通用响应类型
export interface R<T = any> {
code: number;
msg: string;
data: T;
}
// 分页数据信息
export interface TableDataInfo<T = any> {
total: number;
rows: T;
}
// 学生花名册查询参数
export interface StudentRosterQuery {
pageNum?: number;
pageSize?: number;
studentNo?: string;
name?: string;
phone?: string;
studentStatus?: string;
deptIds?: number[];
}
// 学生花名册数据
export interface StudentRosterVO {
studentId: number;
studentNo: string;
studentName: string;
nickName?: string;
sex: string;
age?: number;
phonenumber: string;
email?: string;
idCard: string;
deptId: number;
deptName: string;
majorId?: number;
majorName?: string;
classId?: number;
className?: string;
address?: string;
studentStatus: string;
createTime: string;
remark?: string;
}
// 学生信息高级搜索查询参数
export interface XgStudentMsgAdvancedSearchQuery {
// 基础信息检索
studentNo?: string;
name?: string;
idCard?: string;
phone?: string;
email?: string;
gender?: string[];
nationality?: string[];
politicalStatus?: string[];
birthDateStart?: string;
birthDateEnd?: string;
nameEnglish?: string;
formerName?: string;
nativePlace?: string[];
hukouLocation?: string;
homeAddress?: string;
currentAddress?: string;
qq?: string;
wechat?: string;
maritalStatus?: string[];
religion?: string;
householdRegisterType?: string[];
educationLevel?: string[];
// 学籍信息检索
studentStatus?: string[];
enrollmentYearStart?: number;
enrollmentYearEnd?: number;
enrollmentDateStart?: string;
enrollmentDateEnd?: string;
admissionCategory?: string[];
// 学院专业班级检索
collegeName?: string;
majorName?: string;
className?: string;
grade?: string[];
gradeMin?: string;
gradeMax?: string;
counselorName?: string;
classTeacherName?: string;
// 家庭信息检索
fatherName?: string;
motherName?: string;
guardianName?: string;
familyIncomeMin?: number;
familyIncomeMax?: number;
perCapitaIncomeMin?: number;
perCapitaIncomeMax?: number;
familyEconomicStatus?: string[];
familyMembersMin?: number;
familyMembersMax?: number;
// 特殊身份检索
isPoorStudent?: string[];
isMinority?: string[];
isDisabled?: string[];
isOrphan?: string[];
isLeftBehindChild?: string[];
isSingleChild?: string[];
isLowIncome?: string[];
hasLoan?: string[];
loanAmountMin?: number;
loanAmountMax?: number;
// 身体状况检索
heightMin?: number;
heightMax?: number;
weightMin?: number;
weightMax?: number;
bloodType?: string[];
healthStatus?: string;
disabilityType?: string[];
disabilityLevel?: string;
// 住宿信息检索
isBoarder?: string[];
dormitoryBuilding?: string[];
dormitoryRoom?: string;
// 家庭详细信息检索
fatherPhone?: string;
fatherWorkUnit?: string;
motherPhone?: string;
motherWorkUnit?: string;
guardianPhone?: string;
guardianRelation?: string;
incomeSource?: string;
emergencyContactName?: string;
emergencyContactPhone?: string;
emergencyContactRelation?: string;
// 扩展信息检索
specialties?: string;
awards?: string;
violations?: string;
socialActivities?: string;
// 健康详细信息检索
specialCondition?: string;
medicalHistory?: string;
allergies?: string;
// 其他信息检索
sourceRegion?: string[];
graduateSchool?: string;
trainingType?: string[];
academicLevel?: string[];
schoolSystemMin?: number;
schoolSystemMax?: number;
infoStatus?: string;
dataSource?: string;
isComplete?: number;
completionRateMin?: number;
completionRateMax?: number;
// 时间范围检索
createTimeStart?: string;
createTimeEnd?: string;
updateTimeStart?: string;
updateTimeEnd?: string;
// 部门树节点
deptIds?: number[];
// 分页参数
pageNum?: number;
pageSize?: number;
}
@@ -9,12 +9,17 @@ import { StudentQuery, StudentVO, StudentForm, XgDeptTreeVO, R, TableDataInfo }
*/
export const XgDeptTreeSelect = (belongDeptId?: number): AxiosPromise<XgDeptTreeVO[]> => {
// 实际项目中连接后端接口
// return request({
// url: '/system/user/deptTree',
// method: 'get',
// params: {
// belongDeptId
// }
// });
return request({
url: '/system/user/deptTree',
method: 'get',
params: {
belongDeptId
}
url: '/xgStudentManagerSource/studentManagerSource/currentUserAuthTree',
method: 'get'
});
// // 模拟数据,直接返回与页面组件期望格式一致的数据
@@ -182,6 +187,15 @@ export function exportStudent(query?: StudentQuery): AxiosPromise<any> {
}) as any;
}
// 下载导入模板
export function downloadImportTemplate(): AxiosPromise<any> {
return request({
url: '/studentMsg/studentMsg/importTemplate',
method: 'post',
responseType: 'blob'
});
}
// 学生状态修改
export function changeStudentStatus(studentId: string | number, status: string): AxiosPromise<R<any>> {
// 实际使用时连接后端接口
@@ -222,7 +236,7 @@ const mockStudentData: StudentVO[] = [
classId: 101,
className: '计算机2001班',
address: '北京市海淀区',
status: '0',
studentStatus: '1',
createTime: '2023-01-01 10:00:00',
remark: ''
},
@@ -243,7 +257,7 @@ const mockStudentData: StudentVO[] = [
classId: 101,
className: '计算机2001班',
address: '上海市浦东新区',
status: '0',
studentStatus: '2',
createTime: '2023-01-01 10:10:00',
remark: ''
},
@@ -264,7 +278,7 @@ const mockStudentData: StudentVO[] = [
classId: 201,
className: '软工2001班',
address: '广州市天河区',
status: '0',
studentStatus: '5',
createTime: '2023-01-02 09:00:00',
remark: ''
},
@@ -285,7 +299,7 @@ const mockStudentData: StudentVO[] = [
classId: 201,
className: '软工2001班',
address: '深圳市南山区',
status: '0',
studentStatus: '3',
createTime: '2023-01-02 10:30:00',
remark: ''
},
@@ -306,7 +320,7 @@ const mockStudentData: StudentVO[] = [
classId: 301,
className: '人工智能2001班',
address: '杭州市西湖区',
status: '1', // 停用状态
studentStatus: '4',
createTime: '2023-01-03 11:20:00',
remark: '休学中'
}
@@ -1,6 +1,6 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { StudentMsgVO, StudentMsgForm, StudentMsgQuery } from '@/api/studentMsg/studentMsg/types';
import { StudentMsgVO, StudentMsgForm, StudentMsgQuery } from '@/api/xg/xsjcxx/studentMsg/studentMsg/types';
/**
* 查询学生信息列表
@@ -61,3 +61,26 @@ export const delStudentMsg = (id: string | number | Array<string | number>) => {
method: 'delete'
});
};
/**
* 获取学生个人信息
* @param userId 用户ID,可为空,为空时使用当前登录用户ID
*/
export const getPersonalInfo = (userId?: number): AxiosPromise<StudentMsgForm> => {
return request({
url: '/studentMsg/studentMsg/personalInfo',
method: 'get',
params: { userId }
});
};
/**
* 下载导入模板
*/
export const downloadImportTemplate = () => {
return request({
url: '/studentMsg/studentMsg/importTemplate',
method: 'post',
responseType: 'blob'
});
};
@@ -35,7 +35,7 @@ export interface StudentMsgVO {
formerName: string;
/**
* 性别:M-男,F-女
* 性别:0-男,1-女
*/
gender: string;
@@ -417,7 +417,7 @@ export interface StudentMsgVO {
/**
* 学历层次 - 预留,数据从班级表关联
*/
academicLevel: string;
academicLevel: string | number;
/**
* 培养方式:全日制、在职、函授、夜大等 - 预留,数据从班级表关联
@@ -558,7 +558,7 @@ export interface StudentMsgForm extends BaseEntity {
formerName?: string;
/**
* 性别:M-男,F-女
* 性别:0-男,1-女
*/
gender?: string;
@@ -940,7 +940,7 @@ export interface StudentMsgForm extends BaseEntity {
/**
* 学历层次 - 预留,数据从班级表关联
*/
academicLevel?: string;
academicLevel?: string | number;
/**
* 培养方式:全日制、在职、函授、夜大等 - 预留,数据从班级表关联
@@ -1077,7 +1077,7 @@ export interface StudentMsgQuery extends PageQuery {
formerName?: string;
/**
* 性别:M-男,F-女
* 性别:0-男,1-女
*/
gender?: string;
@@ -1459,7 +1459,7 @@ export interface StudentMsgQuery extends PageQuery {
/**
* 学历层次 - 预留,数据从班级表关联
*/
academicLevel?: string;
academicLevel?: string | number;
/**
* 培养方式:全日制、在职、函授、夜大等 - 预留,数据从班级表关联
+178
View File
@@ -0,0 +1,178 @@
/**
* 部门树结构
*/
export interface XgDeptTreeVO extends BaseEntity {
id: number | string;
label: string;
parentId: number | string;
weight: number;
children: XgDeptTreeVO[];
disabled: boolean;
}
// 学生查询参数
export interface StudentQuery {
pageNum: number;
pageSize: number;
name?: string;
studentNo?: string;
phone?: string;
studentStatus?: string;
deptId?: number;
}
// 学生视图对象
export interface StudentVO {
id: number | string;
studentNo: string;
name: string;
nickName?: string;
gender?: string;
age?: number;
phone?: string;
email?: string;
idCard?: string;
collegeId?: number;
colegeName?: string;
majorId?: number;
majorName?: string;
classId?: number;
className?: string;
address?: string;
studentStatus?: string;
createBy?: number;
createTime?: string;
updateBy?: number;
updateTime?: string;
remark?: string;
}
// 学生表单对象
export interface StudentForm {
id?: number | string;
// 原有字段
studentId?: number | string;
deptId?: number;
studentNo: string;
studentName: string;
nickName?: string;
password?: string;
phonenumber?: string;
email?: string;
idCard?: string;
sex?: string;
status?: string;
majorId?: number;
classId?: number;
address?: string;
remark?: string;
// 基础信息字段
student_no?: string;
id_card?: string;
name?: string;
name_english?: string;
former_name?: string;
gender?: string;
birth_date?: string;
nationality?: string;
native_place?: string;
political_status?: string;
hukou_location?: string;
home_address?: string;
current_address?: string;
postal_code?: string;
photo_url?: string;
photo_path?: string;
phone?: string;
is_boarder?: number;
// 扩展信息字段
education_level?: string;
household_register_type?: string;
religion?: string;
source_region?: string;
graduate_school?: string;
qq?: string;
wechat?: string;
marital_status?: string;
emergency_contact_name?: string;
emergency_contact_phone?: string;
emergency_contact_relation?: string;
is_poor_student?: number;
is_minority?: number;
is_disabled?: number;
is_orphan?: number;
is_left_behind_child?: number;
is_single_child?: number;
is_low_income?: number;
has_loan?: number;
loan_amount?: string;
specialties?: string;
awards?: string;
violations?: string;
social_activities?: string;
// 家庭信息字段
father_name?: string;
father_phone?: string;
father_work_unit?: string;
mother_name?: string;
mother_phone?: string;
mother_work_unit?: string;
guardian_name?: string;
guardian_phone?: string;
guardian_relation?: string;
family_income?: string;
per_capita_income?: string;
income_source?: string;
family_economic_status?: string;
family_members?: string;
// 健康信息字段
height?: number | string;
weight?: number | string;
blood_type?: string;
health_status?: string;
special_condition?: string;
medical_history?: string;
allergies?: string;
disability_type?: string;
disability_level?: string;
// 学籍信息字段
admission_category?: string;
student_status?: string;
enrollment_year?: string;
enrollment_date?: string;
school_system?: string;
academic_level?: string | number;
training_type?: string;
major_name?: string;
class_name?: string;
grade?: string;
college_name?: string;
counselor_name?: string;
class_teacher_name?: string;
dormitory_building?: string;
dormitory_room?: string;
// 银行卡信息字段
bank_card_no?: string;
bank_name?: string;
bank_branch?: string;
card_holder_name?: string;
}
// 统一响应类型
export interface R<T> {
code: number;
msg: string;
data: T;
}
// 表格数据信息类型
export interface TableDataInfo<T> {
total: number;
rows: T;
}
@@ -0,0 +1,63 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { StudentMsgBatchVO, StudentMsgBatchForm, StudentMsgBatchQuery } from '@/api/xg/xsjcxx/studentMsgBatch/studentMsgBatch/types';
/**
* 查询学生信息批次收集列表
* @param query
* @returns {*}
*/
export const listStudentMsgBatch = (query?: StudentMsgBatchQuery): AxiosPromise<StudentMsgBatchVO[]> => {
return request({
url: '/studentMsgBatch/studentMsgBatch/list',
method: 'get',
params: query
});
};
/**
* 查询学生信息批次收集详细
* @param id
*/
export const getStudentMsgBatch = (id: string | number): AxiosPromise<StudentMsgBatchVO> => {
return request({
url: '/studentMsgBatch/studentMsgBatch/' + id,
method: 'get'
});
};
/**
* 新增学生信息批次收集
* @param data
*/
export const addStudentMsgBatch = (data: StudentMsgBatchForm) => {
return request({
url: '/studentMsgBatch/studentMsgBatch',
method: 'post',
data: data
});
};
/**
* 修改学生信息批次收集
* @param data
*/
export const updateStudentMsgBatch = (data: StudentMsgBatchForm) => {
return request({
url: '/studentMsgBatch/studentMsgBatch',
method: 'put',
data: data
});
};
/**
* 删除学生信息批次收集
* @param id
*/
export const delStudentMsgBatch = (id: string | number | Array<string | number>) => {
return request({
url: '/studentMsgBatch/studentMsgBatch/' + id,
method: 'delete'
});
};
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,63 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { XgClassPosDictVO, XgClassPosDictForm, XgClassPosDictQuery } from '@/api/xg/xsjcxx/xgClassPosDict/xgClassPosDict/types';
/**
* 查询班级干部职务配置列表
* @param query
* @returns {*}
*/
export const listXgClassPosDict = (query?: XgClassPosDictQuery): AxiosPromise<XgClassPosDictVO[]> => {
return request({
url: '/xgClassPosDict/xgClassPosDict/list',
method: 'get',
params: query
});
};
/**
* 查询班级干部职务配置详细
* @param id
*/
export const getXgClassPosDict = (id: string | number): AxiosPromise<XgClassPosDictVO> => {
return request({
url: '/xgClassPosDict/xgClassPosDict/' + id,
method: 'get'
});
};
/**
* 新增班级干部职务配置
* @param data
*/
export const addXgClassPosDict = (data: XgClassPosDictForm) => {
return request({
url: '/xgClassPosDict/xgClassPosDict',
method: 'post',
data: data
});
};
/**
* 修改班级干部职务配置
* @param data
*/
export const updateXgClassPosDict = (data: XgClassPosDictForm) => {
return request({
url: '/xgClassPosDict/xgClassPosDict',
method: 'put',
data: data
});
};
/**
* 删除班级干部职务配置
* @param id
*/
export const delXgClassPosDict = (id: string | number | Array<string | number>) => {
return request({
url: '/xgClassPosDict/xgClassPosDict/' + id,
method: 'delete'
});
};
@@ -0,0 +1,171 @@
export interface XgClassPosDictVO {
/**
* 主键ID(雪花ID)
*/
id: string | number;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted: number;
/**
* 职务编码
*/
positionCode: string;
/**
* 职务名称
*/
positionName: string;
/**
* 学生职务类别:class-班级干部,party-党团干部,other-其他
*/
positionCategory: string;
/**
* 学生职务级别:monitor-班长,vice-monitor-副班长,committee-委员,ordinary-普通成员
*/
positionLevel: number;
/**
* 学生职务类型:regular-常规职务,special-特殊职务,temporary-临时职务
*/
positionType: string;
/**
* 职责描述
*/
responsibilities: string;
/**
* 状态:0-启用,1-停用
*/
status: string;
/**
* 排序顺序
*/
sortOrder: number;
/**
* 备注信息
*/
remark: string;
}
export interface XgClassPosDictForm extends BaseEntity {
/**
* 主键ID(雪花ID)
*/
id?: string | number;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: number;
/**
* 职务编码
*/
positionCode?: string;
/**
* 职务名称
*/
positionName?: string;
/**
* 学生职务类别:class-班级干部,party-党团干部,other-其他
*/
positionCategory?: string;
/**
* 学生职务级别:monitor-班长,vice-monitor-副班长,committee-委员,ordinary-普通成员
*/
positionLevel?: number;
/**
* 学生职务类型:regular-常规职务,special-特殊职务,temporary-临时职务
*/
positionType?: string;
/**
* 职责描述
*/
responsibilities?: string;
/**
* 状态:0-启用,1-停用
*/
status?: string;
/**
* 排序顺序
*/
sortOrder?: number;
/**
* 备注信息
*/
remark?: string;
}
export interface XgClassPosDictQuery extends PageQuery {
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: number;
/**
* 职务编码
*/
positionCode?: string;
/**
* 职务名称
*/
positionName?: string;
/**
* 学生职务类别:class-班级干部,party-党团干部,other-其他
*/
positionCategory?: string;
/**
* 学生职务级别:monitor-班长,vice-monitor-副班长,committee-委员,ordinary-普通成员
*/
positionLevel?: number;
/**
* 学生职务类型:regular-常规职务,special-特殊职务,temporary-临时职务
*/
positionType?: string;
/**
* 职责描述
*/
responsibilities?: string;
/**
* 状态:0-启用,1-停用
*/
status?: string;
/**
* 排序顺序
*/
sortOrder?: number;
/**
* 日期范围参数
*/
params?: any;
}
@@ -0,0 +1,82 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { XgClassPosMsgVO, XgClassPosMsgForm, XgClassPosMsgQuery } from '@/api/xg/xsjcxx/xgClassPosMsg/xgClassPosMsg/types';
/**
* 查询班级干部信息列表
* @param query
* @returns {*}
*/
export const listXgClassPosMsg = (query?: XgClassPosMsgQuery): AxiosPromise<XgClassPosMsgVO[]> => {
return request({
url: '/xgClassPosMsg/xgClassPosMsg/list',
method: 'get',
params: query
});
};
/**
* 查询班级干部信息详细
* @param id
*/
export const getXgClassPosMsg = (id: string | number): AxiosPromise<XgClassPosMsgVO> => {
return request({
url: '/xgClassPosMsg/xgClassPosMsg/' + id,
method: 'get'
});
};
/**
* 新增班级干部信息
* @param data
*/
export const addXgClassPosMsg = (data: XgClassPosMsgForm) => {
return request({
url: '/xgClassPosMsg/xgClassPosMsg',
method: 'post',
data: data
});
};
/**
* 修改班级干部信息
* @param data
*/
export const updateXgClassPosMsg = (data: XgClassPosMsgForm) => {
return request({
url: '/xgClassPosMsg/xgClassPosMsg',
method: 'put',
data: data
});
};
/**
* 删除班级干部信息
* @param id
*/
export const delXgClassPosMsg = (id: string | number | Array<string | number>) => {
return request({
url: '/xgClassPosMsg/xgClassPosMsg/' + id,
method: 'delete'
});
};
/**
* 学生干部离任
* @param id 班级干部信息ID
* @param termEndDate 任期结束日期
* @param cadreStatus 学生职务任职状态
* @param dismissalReason 离任原因
*/
export const dismissCadre = (id: string | number, termEndDate: string, cadreStatus: string, dismissalReason: string) => {
return request({
url: '/xgClassPosMsg/xgClassPosMsg/dismiss/' + id,
method: 'post',
params: {
termEndDate,
cadreStatus,
dismissalReason
}
});
};
@@ -0,0 +1,346 @@
export interface XgClassPosMsgVO {
/**
* 主键ID(雪花ID)
*/
id: string | number;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted: number;
/**
* 班级ID,关联xg_class_msg.id
*/
classId: string | number;
/**
* 班级名称(联表查询获取)
*/
className: string;
/**
* 专业ID,关联sys_dept.dept_id
*/
majorId: string | number;
/**
* 专业名称(联表查询获取)
*/
majorName: string;
/**
* 学院ID,关联sys_dept.dept_id
*/
collegeId: string | number;
/**
* 学院名称(联表查询获取)
*/
collegeName: string;
/**
* 学生ID,关联xg_student_msg.id
*/
studentId: string | number;
/**
* 学号
*/
studentNo: string;
/**
* 学生姓名(冗余字段)
*/
studentName: string;
/**
* 职务编码,关联xg_class_pos_dict.position_code
*/
positionCode: string;
/**
* 职务名称(联表查询获取)
*/
positionName: string;
/**
* 任职日期
*/
appointmentDate: string;
/**
* 任期开始日期
*/
termStartDate: string;
/**
* 任期结束日期
*/
termEndDate: string;
/**
* 任期时长(月)
*/
termDuration: number;
/**
* 是否现任:0-否,1-是
*/
isCurrent: number;
/**
* 学生职务任职状态:1-在任,2-到期,3-辞职,4-免职,5-调任,6-休学
*/
cadreStatus: string;
/**
* 任命原因
*/
appointmentReason: string;
/**
* 学生职务任命方式:appointment-任命,election-选举,recommendation-推荐
*/
appointmentMethod: string;
/**
* 离任日期
*/
dismissalDate: string;
/**
* 离任原因
*/
dismissalReason: string;
/**
* 备注信息
*/
remark: string;
}
export interface XgClassPosMsgForm extends BaseEntity {
/**
* 主键ID(雪花ID)
*/
id?: string | number;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: number;
/**
* 班级ID,关联xg_class_msg.id
*/
classId?: string | number;
/**
* 班级名称(显示用,非数据库字段)
*/
className?: string;
/**
* 专业ID,关联sys_dept.dept_id
*/
majorId?: string | number;
/**
* 专业名称(显示用,非数据库字段)
*/
majorName?: string;
/**
* 学院ID,关联sys_dept.dept_id
*/
collegeId?: string | number;
/**
* 学院名称(显示用,非数据库字段)
*/
collegeName?: string;
/**
* 学生ID,关联xg_student_msg.id
*/
studentId?: string | number;
/**
* 学号
*/
studentNo?: string;
/**
* 学生姓名(冗余字段)
*/
studentName?: string;
/**
* 职务编码id,关联xg_class_pos_dict.id
*/
positionId?: string | number;
/**
* 职务编码,关联xg_class_pos_dict.position_code
*/
positionCode?: string;
/**
* 职务名称(显示用,非数据库字段)
*/
positionName?: string;
/**
* 任职日期
*/
appointmentDate?: string;
/**
* 任期开始日期
*/
termStartDate?: string;
/**
* 任期结束日期
*/
termEndDate?: string;
/**
* 任期时长(月)
*/
termDuration?: number;
/**
* 是否现任:0-否,1-是
*/
isCurrent?: number;
/**
* 学生职务任职状态:1-在任,2-到期,3-辞职,4-免职,5-调任,6-休学
*/
cadreStatus?: string;
/**
* 任命原因
*/
appointmentReason?: string;
/**
* 学生职务任命方式:appointment-任命,election-选举,recommendation-推荐
*/
appointmentMethod?: string;
/**
* 离任日期
*/
dismissalDate?: string;
/**
* 离任原因
*/
dismissalReason?: string;
/**
* 备注信息
*/
remark?: string;
}
export interface XgClassPosMsgQuery extends PageQuery {
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: number;
/**
* 班级ID,关联xg_class_msg.id
*/
classId?: string | number;
/**
* 学生ID,关联xg_student_msg.id
*/
studentId?: string | number;
/**
* 学号
*/
studentNo?: string;
/**
* 学生姓名(冗余字段)
*/
studentName?: string;
/**
* 职务编码,关联xg_class_pos_dict.position_code
*/
positionCode?: string;
/**
* 任职日期
*/
appointmentDate?: string;
/**
* 任期开始日期
*/
termStartDate?: string;
/**
* 任期结束日期
*/
termEndDate?: string;
/**
* 任期时长(月)
*/
termDuration?: number;
/**
* 是否现任:0-否,1-是
*/
isCurrent?: number;
/**
* 学生职务任职状态:1-在任,2-到期,3-辞职,4-免职,5-调任,6-休学
*/
cadreStatus?: string;
/**
* 任命原因
*/
appointmentReason?: string;
/**
* 学生职务任命方式:appointment-任命,election-选举,recommendation-推荐
*/
appointmentMethod?: string;
/**
* 离任日期
*/
dismissalDate?: string;
/**
* 离任原因
*/
dismissalReason?: string;
/**
* 部门ID,用于按部门查询班级干部信息
*/
deptId?: string | number;
/**
* 日期范围参数
*/
params?: any;
}
@@ -0,0 +1,95 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { StudentManagerVO, StudentManagerForm, StudentManagerQuery } from '@/api/xg/xsjcxx/xgStudentManager/studentManager/types';
// 临时定义一个接口来表示返回的教师数据
export interface TeacherData {
id: string | number;
managerName: string;
phone: string;
gender: string;
}
/**
* 获取可用的教职工信息列表
* @param managerType 管理员类型(1 全校管理员 2 自定义管理员 3 班主任)
*/
export const listAvailableTeachers = (managerType: string): AxiosPromise<TeacherData[]> => {
return request({
url: '/xgStudentManager/studentManager/listAvailableTeachers',
method: 'get',
params: { managerType }
});
};
/**
* 查询宿舍管理员信息列表
* @param query
* @returns {*}
*/
export const listStudentManager = (query?: StudentManagerQuery): AxiosPromise<StudentManagerVO[]> => {
return request({
url: '/xgStudentManager/studentManager/list',
method: 'get',
params: query
});
};
/**
* 查询宿舍管理员信息详细
* @param id
*/
export const getStudentManager = (id: string | number): AxiosPromise<StudentManagerVO> => {
return request({
url: '/xgStudentManager/studentManager/' + id,
method: 'get'
});
};
/**
* 新增宿舍管理员信息
* @param data
*/
export const addStudentManager = (data: StudentManagerForm) => {
return request({
url: '/xgStudentManager/studentManager',
method: 'post',
data: data
});
};
/**
* 修改宿舍管理员信息
* @param data
*/
export const updateStudentManager = (data: StudentManagerForm) => {
return request({
url: '/xgStudentManager/studentManager',
method: 'put',
data: data
});
};
/**
* 删除宿舍管理员信息
* @param id
*/
export const delStudentManager = (id: string | number | Array<string | number>) => {
return request({
url: '/xgStudentManager/studentManager/' + id,
method: 'delete'
});
};
/**
* 获取当前正在教学的班主任信息
* @param params 包含 phone 和 name 字段
*/
export const listActiveClassTeachers = (params: { phone?: string; name?: string }) => {
return request({
url: '/xgStudentManager/studentManager/listActiveClassTeachers',
method: 'get',
params
});
};
@@ -0,0 +1,156 @@
export interface StudentManagerVO {
/**
* 主键ID
*/
id: string | number;
/**
* 管理员姓名
*/
managerName: string;
/**
* 管理员类型(1 全校管理员 2 自定义管理员 3 班主任)
*/
managerType: string;
/**
* 管理级别(1-3,1为最高)
*/
managerLevel: number;
/**
* 关联用户ID
*/
userId: string | number;
/**
* 联系电话
*/
phone: string;
/**
* 性别(0男 1女 2未知)
*/
gender: string;
/**
* 状态(0正常 1停用)
*/
status: string;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted: string;
/**
* 备注
*/
remark: string;
}
export interface StudentManagerForm extends BaseEntity {
/**
* 主键ID
*/
id?: string | number;
/**
* 管理员姓名
*/
managerName?: string;
/**
* 管理员类型(1 全校管理员 2 自定义管理员 3 班主任)
*/
managerType?: string;
/**
* 管理级别(1-3,1为最高)
*/
managerLevel?: number;
/**
* 关联用户ID
*/
userId?: string | number;
/**
* 联系电话
*/
phone?: string;
/**
* 性别(0男 1女 2未知)
*/
gender?: string;
/**
* 状态(0正常 1停用)
*/
status?: string;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: string;
/**
* 备注
*/
remark?: string;
}
export interface StudentManagerQuery extends PageQuery {
/**
* 管理员姓名
*/
managerName?: string;
/**
* 管理员类型(1 全校管理员 2 自定义管理员 3 班主任)
*/
managerType?: string;
/**
* 管理级别(1-3,1为最高)
*/
managerLevel?: number;
/**
* 关联用户ID
*/
userId?: string | number;
/**
* 联系电话
*/
phone?: string;
/**
* 性别(0男 1女 2未知)
*/
gender?: string;
/**
* 状态(0正常 1停用)
*/
status?: string;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: string;
/**
* 日期范围参数
*/
params?: any;
}
@@ -0,0 +1,63 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { StudentManagerSourceVO, StudentManagerSourceForm, StudentManagerSourceQuery } from '@/api/xg/xsjcxx/xgStudentManagerSource/studentManagerSource/types';
/**
* 查询学生管理员授权关系列表
* @param query
* @returns {*}
*/
export const listStudentManagerSource = (query?: StudentManagerSourceQuery): AxiosPromise<StudentManagerSourceVO[]> => {
return request({
url: '/xgStudentManagerSource/studentManagerSource/list',
method: 'get',
params: query
});
};
/**
* 查询学生管理员授权关系详细
* @param id
*/
export const getStudentManagerSource = (id: string | number): AxiosPromise<StudentManagerSourceVO> => {
return request({
url: '/xgStudentManagerSource/studentManagerSource/' + id,
method: 'get'
});
};
/**
* 新增学生管理员授权关系
* @param data
*/
export const addStudentManagerSource = (data: StudentManagerSourceForm) => {
return request({
url: '/xgStudentManagerSource/studentManagerSource',
method: 'post',
data: data
});
};
/**
* 修改学生管理员授权关系
* @param data
*/
export const updateStudentManagerSource = (data: StudentManagerSourceForm) => {
return request({
url: '/xgStudentManagerSource/studentManagerSource',
method: 'put',
data: data
});
};
/**
* 删除学生管理员授权关系
* @param id
*/
export const delStudentManagerSource = (id: string | number | Array<string | number>) => {
return request({
url: '/xgStudentManagerSource/studentManagerSource/' + id,
method: 'delete'
});
};
@@ -0,0 +1,126 @@
export interface StudentManagerSourceVO {
/**
* 主键ID
*/
id: string | number;
/**
* 管理员ID
*/
managerId: string | number;
/**
* 权限类型(1查看 2编辑 3完全管理)
*/
permissionType: string;
/**
* 授权类型(1全校级 2自定义 3班主任)
*/
authType: string;
/**
* 授权来源ID(对应班级id)
*/
authSource: number;
/**
* 状态(0有效 1已撤销)
*/
status: string;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted: string;
/**
* 备注
*/
remark: string;
}
export interface StudentManagerSourceForm extends BaseEntity {
/**
* 主键ID
*/
id?: string | number;
/**
* 管理员ID
*/
managerId?: string | number;
/**
* 权限类型(1查看 2编辑 3完全管理)
*/
permissionType?: string;
/**
* 授权类型(1全校级 2自定义 3班主任)
*/
authType?: string;
/**
* 授权来源ID(对应班级id)
*/
authSource?: number;
/**
* 状态(0有效 1已撤销)
*/
status?: string;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: string;
/**
* 备注
*/
remark?: string;
}
export interface StudentManagerSourceQuery extends PageQuery {
/**
* 管理员ID
*/
managerId?: string | number;
/**
* 权限类型(1查看 2编辑 3完全管理)
*/
permissionType?: string;
/**
* 授权类型(1全校级 2自定义 3班主任)
*/
authType?: string;
/**
* 授权来源ID(对应班级id)
*/
authSource?: number;
/**
* 状态(0有效 1已撤销)
*/
status?: string;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: string;
/**
* 日期范围参数
*/
params?: any;
}
+3 -3
View File
@@ -236,7 +236,7 @@ export interface XljkEvaluationDetailVO {
studentName: string;
/**
* 性别(M-男,F-女)
* 性别(0-男,1-女)
*/
gender: string;
@@ -328,7 +328,7 @@ export interface XljkEvaluationDetailForm extends BaseEntity {
studentName?: string;
/**
* 性别(M-男,F-女)
* 性别(0-男,1-女)
*/
gender?: string;
@@ -407,7 +407,7 @@ export interface StudentInfo {
studentName: string;
/**
* 性别(M-男,F-女)
* 性别(0-男,1-女)
*/
gender: string;
+3 -3
View File
@@ -15,7 +15,7 @@ export interface EnrollmentInfoVO {
idCard: string;
/**
* 性别(M-男 F-女)
* 性别(0-男 1-女)
*/
gender: string;
@@ -197,7 +197,7 @@ export interface EnrollmentInfoForm extends BaseEntity {
idCard?: string;
/**
* 性别(M-男 F-女)
* 性别(0-男 1-女)
*/
gender?: string;
@@ -354,7 +354,7 @@ export interface EnrollmentInfoQuery extends PageQuery {
idCard?: string;
/**
* 性别(M-男 F-女)
* 性别(0-男 1-女)
*/
gender?: string;
+1 -1
View File
@@ -153,7 +153,7 @@ export interface EnrollmentProcessVO {
updateTime: string
/**
* 性别(M-男 F-女)
* 性别(0-男 1-女)
*/
gender?: string
+94
View File
@@ -0,0 +1,94 @@
/**
* 企业信息管理 API
* @author Cursor AI
* @date 2025-01-25
*/
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { EnterpriseVO, EnterpriseForm, EnterpriseQuery } from './types';
// TableDataInfo 接口定义
export interface TableDataInfo<T> {
total: number;
rows: T[];
code?: number;
msg?: string;
}
/**
* 查询企业信息列表
* @param query 查询参数
* @returns Promise<TableDataInfo<EnterpriseVO>>
*/
export function listEnterprise(query?: EnterpriseQuery): AxiosPromise<TableDataInfo<EnterpriseVO>> {
return request({
url: '/zsjy/enterprise/list',
method: 'get',
params: query
});
}
/**
* 查询企业信息详细
* @param id 企业主键
* @returns Promise<EnterpriseVO>
*/
export function getEnterprise(id: string | number): AxiosPromise<EnterpriseVO> {
return request({
url: `/zsjy/enterprise/${id}`,
method: 'get'
});
}
/**
* 新增企业信息
* @param data 企业信息
* @returns Promise<any>
*/
export function addEnterprise(data: EnterpriseForm): AxiosPromise<any> {
return request({
url: '/zsjy/enterprise',
method: 'post',
data: data
});
}
/**
* 修改企业信息
* @param data 企业信息
* @returns Promise<any>
*/
export function updateEnterprise(data: EnterpriseForm): AxiosPromise<any> {
return request({
url: '/zsjy/enterprise',
method: 'put',
data: data
});
}
/**
* 删除企业信息
* @param id 企业主键
* @returns Promise<any>
*/
export function delEnterprise(id: string | number | Array<string | number>): AxiosPromise<any> {
return request({
url: `/zsjy/enterprise/${id}`,
method: 'delete'
});
}
/**
* 导出企业信息
* @param query 查询参数
* @returns Promise<any>
*/
export function exportEnterprise(query: EnterpriseQuery): AxiosPromise<any> {
return request({
url: '/zsjy/enterprise/export',
method: 'post',
data: query,
responseType: 'blob'
});
}
+297
View File
@@ -0,0 +1,297 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import {
GraduateInfoVO,
GraduateInfoForm,
GraduateInfoQuery,
GraduateStatisticsVO
} from '@/api/zsjy/types';
/**
* 查询毕业生信息列表
* @param query 查询参数
*/
export const listGraduateInfo = (query?: GraduateInfoQuery): AxiosPromise<GraduateInfoVO[]> => {
return request({
url: '/zsjy/graduate/list',
method: 'get',
params: query
});
};
/**
* 查询毕业生信息详细信息
* @param id 毕业生信息ID
*/
export const getGraduateInfo = (id: string | number): AxiosPromise<GraduateInfoVO> => {
return request({
url: `/zsjy/graduate/${id}`,
method: 'get'
});
};
/**
* 新增毕业生信息
* @param data 毕业生信息数据
*/
export const addGraduateInfo = (data: GraduateInfoForm) => {
return request({
url: '/zsjy/graduate',
method: 'post',
data: data
});
};
/**
* 修改毕业生信息
* @param data 毕业生信息数据
*/
export const updateGraduateInfo = (data: GraduateInfoForm) => {
return request({
url: '/zsjy/graduate',
method: 'put',
data: data
});
};
/**
* 删除毕业生信息
* @param id 毕业生信息ID
*/
export const delGraduateInfo = (id: string | number | Array<string | number>) => {
return request({
url: `/zsjy/graduate/${id}`,
method: 'delete'
});
};
/**
* 导出毕业生信息列表
* @param query 查询参数
*/
export const exportGraduateInfo = (query: GraduateInfoQuery) => {
return request({
url: '/zsjy/graduate/export',
method: 'post',
data: query,
responseType: 'blob'
});
};
/**
* 根据学号查询毕业生信息
* @param studentNo 学号
*/
export const getGraduateInfoByStudentNo = (studentNo: string): AxiosPromise<GraduateInfoVO> => {
return request({
url: `/zsjy/graduate/student/${studentNo}`,
method: 'get'
});
};
/**
* 根据身份证号查询毕业生信息
* @param idCard 身份证号
*/
export const getGraduateInfoByIdCard = (idCard: string): AxiosPromise<GraduateInfoVO> => {
return request({
url: `/zsjy/graduate/idcard/${idCard}`,
method: 'get'
});
};
/**
* 校验学号是否唯一
* @param studentNo 学号
* @param id 主键ID(修改时传入)
*/
export const checkStudentNoUnique = (studentNo: string, id?: string | number): AxiosPromise<boolean> => {
return request({
url: '/zsjy/graduate/checkStudentNo',
method: 'get',
params: { studentNo, id }
});
};
/**
* 校验身份证号是否唯一
* @param idCard 身份证号
* @param id 主键ID(修改时传入)
*/
export const checkIdCardUnique = (idCard: string, id?: string | number): AxiosPromise<boolean> => {
return request({
url: '/zsjy/graduate/checkIdCard',
method: 'get',
params: { idCard, id }
});
};
/**
* 审核毕业生信息
* @param id 主键
* @param auditStatus 审核状态
* @param auditRemark 审核意见
*/
export const auditGraduateInfo = (id: string | number, auditStatus: string, auditRemark?: string) => {
return request({
url: `/zsjy/graduate/audit/${id}`,
method: 'put',
params: { auditStatus, auditRemark }
});
};
/**
* 批量审核毕业生信息
* @param ids 主键数组
* @param auditStatus 审核状态
* @param auditRemark 审核意见
*/
export const batchAuditGraduateInfo = (ids: (string | number)[], auditStatus: string, auditRemark?: string) => {
return request({
url: '/zsjy/graduate/batchAudit',
method: 'put',
data: ids,
params: { auditStatus, auditRemark }
});
};
/**
* 统计总体就业情况
*/
export const getOverallStatistics = (): AxiosPromise<GraduateStatisticsVO> => {
return request({
url: '/zsjy/graduate/statistics/overall',
method: 'get'
});
};
/**
* 按专业统计就业情况
* @param graduationYear 毕业年份
*/
export const getStatisticsByMajor = (graduationYear?: number): AxiosPromise<GraduateStatisticsVO[]> => {
return request({
url: '/zsjy/graduate/statistics/major',
method: 'get',
params: { graduationYear }
});
};
/**
* 按学院统计就业情况
* @param graduationYear 毕业年份
*/
export const getStatisticsByCollege = (graduationYear?: number): AxiosPromise<GraduateStatisticsVO[]> => {
return request({
url: '/zsjy/graduate/statistics/college',
method: 'get',
params: { graduationYear }
});
};
/**
* 按就业状态统计
* @param graduationYear 毕业年份
*/
export const getStatisticsByEmploymentStatus = (graduationYear?: number): AxiosPromise<GraduateStatisticsVO[]> => {
return request({
url: '/zsjy/graduate/statistics/employment',
method: 'get',
params: { graduationYear }
});
};
/**
* 按单位性质统计
* @param graduationYear 毕业年份
*/
export const getStatisticsByCompanyType = (graduationYear?: number): AxiosPromise<GraduateStatisticsVO[]> => {
return request({
url: '/zsjy/graduate/statistics/company',
method: 'get',
params: { graduationYear }
});
};
/**
* 按地域分布统计
* @param graduationYear 毕业年份
*/
export const getStatisticsByRegion = (graduationYear?: number): AxiosPromise<GraduateStatisticsVO[]> => {
return request({
url: '/zsjy/graduate/statistics/region',
method: 'get',
params: { graduationYear }
});
};
/**
* 按薪资范围统计
* @param graduationYear 毕业年份
*/
export const getStatisticsBySalaryRange = (graduationYear?: number): AxiosPromise<GraduateStatisticsVO[]> => {
return request({
url: '/zsjy/graduate/statistics/salary',
method: 'get',
params: { graduationYear }
});
};
/**
* 按年份统计历年就业情况
*/
export const getStatisticsByYear = (): AxiosPromise<GraduateStatisticsVO[]> => {
return request({
url: '/zsjy/graduate/statistics/year',
method: 'get'
});
};
/**
* 查询待审核的毕业生信息数量
*/
export const getPendingAuditCount = (): AxiosPromise<number> => {
return request({
url: '/zsjy/graduate/pendingCount',
method: 'get'
});
};
/**
* 查询指定学院的毕业生信息列表
* @param collegeId 学院ID
* @param query 查询条件
*/
export const getListByCollegeId = (collegeId: string | number, query?: GraduateInfoQuery): AxiosPromise<GraduateInfoVO[]> => {
return request({
url: `/zsjy/graduate/college/${collegeId}`,
method: 'get',
params: query
});
};
/**
* 查询指定专业的毕业生信息列表
* @param majorId 专业ID
* @param query 查询条件
*/
export const getListByMajorId = (majorId: string | number, query?: GraduateInfoQuery): AxiosPromise<GraduateInfoVO[]> => {
return request({
url: `/zsjy/graduate/major/${majorId}`,
method: 'get',
params: query
});
};
/**
* 查询指定班级的毕业生信息列表
* @param classId 班级ID
* @param query 查询条件
*/
export const getListByClassId = (classId: string | number, query?: GraduateInfoQuery): AxiosPromise<GraduateInfoVO[]> => {
return request({
url: `/zsjy/graduate/class/${classId}`,
method: 'get',
params: query
});
};
+11 -9
View File
@@ -6,13 +6,15 @@
import request from '@/utils/request';
// 此处导出招生就业管理模块相关的所有API接口
// 示例:
// export * from './enrollment' // 招生管理
// export * from './employment' // 就业管理
// export * from './enterprise' // 企业管理
// export * from './career' // 职业规划
// export * from './statistics' // 统计分析
// 导出招生就业管理模块相关的所有API接口
export * from './enterprise'; // 企业信息管理
// export * from './jobPosition'; // 招聘岗位管理 (待开发)
// export * from './recruitmentPoster'; // 招聘海报管理 (待开发)
// 临时导出一个空对象,防止编译错误
export default {};
// 现有导出
export * from './statistics'; // 统计分析
export * from './enrollmentProcess'; // 录取流程管理
export * from './enrollmentStatistics'; // 报名统计
// 类型导出
export * from './types'; // 类型定义
+91
View File
@@ -0,0 +1,91 @@
import request from '@/utils/request'
import { JobPositionVO, JobPositionForm, JobPositionQuery, TableDataInfo } from './types'
import { AxiosPromise } from 'axios'
/**
* 查询招聘岗位列表
* @param query 查询参数
* @returns 招聘岗位列表
*/
export function listJobPosition(query?: JobPositionQuery): AxiosPromise<TableDataInfo<JobPositionVO>> {
return request({
url: '/zsjy/position/list',
method: 'get',
params: query
})
}
/**
* 查询招聘岗位详细
* @param id 招聘岗位ID
* @returns 招聘岗位详情
*/
export function getJobPosition(id: string | number): AxiosPromise<JobPositionVO> {
return request({
url: '/zsjy/position/' + id,
method: 'get'
})
}
/**
* 新增招聘岗位
* @param data 招聘岗位表单
* @returns 操作结果
*/
export function addJobPosition(data: JobPositionForm) {
return request({
url: '/zsjy/position',
method: 'post',
data: data
})
}
/**
* 修改招聘岗位
* @param data 招聘岗位表单
* @returns 操作结果
*/
export function updateJobPosition(data: JobPositionForm) {
return request({
url: '/zsjy/position',
method: 'put',
data: data
})
}
/**
* 删除招聘岗位
* @param id 招聘岗位ID
* @returns 操作结果
*/
export function delJobPosition(id: string | number | Array<string | number>) {
return request({
url: '/zsjy/position/' + id,
method: 'delete'
})
}
/**
* 导出招聘岗位
* @param query 查询参数
* @returns 导出结果
*/
export function exportJobPosition(query: JobPositionQuery) {
return request({
url: '/zsjy/position/export',
method: 'post',
data: query,
responseType: 'blob'
})
}
/**
* 查询企业下拉选项
* @returns 企业列表
*/
export function listEnterpriseOptions() {
return request({
url: '/zsjy/enterprise/options',
method: 'get'
})
}
+93
View File
@@ -0,0 +1,93 @@
import request from '@/utils/request'
import { RecruitmentPosterVO, RecruitmentPosterForm, RecruitmentPosterQuery, TableDataInfo } from './types'
import { AxiosPromise } from 'axios'
/**
* 查询招聘海报列表
* @param query 查询参数
* @returns 招聘海报列表
*/
export function listRecruitmentPoster(query?: RecruitmentPosterQuery): AxiosPromise<TableDataInfo<RecruitmentPosterVO>> {
return request({
url: '/zsjy/poster/list',
method: 'get',
params: query
})
}
/**
* 查询招聘海报详细
* @param id 招聘海报ID
* @returns 招聘海报详情
*/
export function getRecruitmentPoster(id: string | number): AxiosPromise<RecruitmentPosterVO> {
return request({
url: '/zsjy/poster/' + id,
method: 'get'
})
}
/**
* 新增招聘海报
* @param data 招聘海报表单
* @returns 操作结果
*/
export function addRecruitmentPoster(data: RecruitmentPosterForm) {
return request({
url: '/zsjy/poster',
method: 'post',
data: data
})
}
/**
* 修改招聘海报
* @param data 招聘海报表单
* @returns 操作结果
*/
export function updateRecruitmentPoster(data: RecruitmentPosterForm) {
return request({
url: '/zsjy/poster',
method: 'put',
data: data
})
}
/**
* 删除招聘海报
* @param id 招聘海报ID
* @returns 操作结果
*/
export function delRecruitmentPoster(id: string | number | Array<string | number>) {
return request({
url: '/zsjy/poster/' + id,
method: 'delete'
})
}
/**
* 导出招聘海报
* @param query 查询参数
* @returns 导出结果
*/
export function exportRecruitmentPoster(query: RecruitmentPosterQuery) {
return request({
url: '/zsjy/poster/export',
method: 'post',
data: query,
responseType: 'blob'
})
}
/**
* 查询岗位下拉选项
* @param enterpriseId 企业ID
* @returns 岗位列表
*/
export function listPositionOptions(enterpriseId?: number | string) {
return request({
url: '/zsjy/position/options',
method: 'get',
params: { enterpriseId }
})
}
+743
View File
@@ -0,0 +1,743 @@
/**
* 招生就业管理模块 - 类型定义
*/
/**
* 企业信息 VO
*/
export interface EnterpriseVO {
/**
* 企业ID
*/
id?: string | number;
/**
* 企业名称
*/
enterpriseName?: string;
/**
* 所属行业
*/
industry?: string;
/**
* 行业名称
*/
industryName?: string;
/**
* 主营业务
*/
mainBusiness?: string;
/**
* 企业规模
*/
enterpriseScale?: string;
/**
* 企业规模名称
*/
enterpriseScaleName?: string;
/**
* 企业联系人姓名
*/
contactName?: string;
/**
* 联系电话
*/
contactPhone?: string;
/**
* 企业邮箱
*/
email?: string;
/**
* 企业地址
*/
address?: string;
/**
* 状态(0正常 1停用)
*/
status?: string;
/**
* 备注
*/
remark?: string;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: number;
/**
* 租户编号
*/
tenantId?: string;
/**
* 创建部门
*/
createDept?: number;
/**
* 创建时间
*/
createTime: string;
/**
* 创建者
*/
createBy?: number;
/**
* 更新时间
*/
updateTime?: string;
/**
* 更新者
*/
updateBy?: number;
}
/**
* 企业信息表单对象
*/
export interface EnterpriseForm extends BaseEntity {
/**
* 企业ID
*/
id?: string | number;
/**
* 企业名称
*/
enterpriseName: string;
/**
* 所属行业
*/
industry: string;
/**
* 主营业务
*/
mainBusiness: string;
/**
* 企业规模
*/
enterpriseScale: string;
/**
* 企业联系人姓名
*/
contactName: string;
/**
* 联系电话
*/
contactPhone: string;
/**
* 企业邮箱
*/
email: string;
/**
* 企业地址
*/
address: string;
/**
* 状态(0正常 1停用)
*/
status: string;
/**
* 备注
*/
remark?: string;
}
/**
* 企业信息查询条件
*/
export interface EnterpriseQuery extends PageQuery {
/**
* 企业名称
*/
enterpriseName?: string;
/**
* 所属行业
*/
industry?: string;
/**
* 主营业务
*/
mainBusiness?: string;
/**
* 企业规模
*/
enterpriseScale?: string;
/**
* 企业联系人姓名
*/
contactName?: string;
/**
* 联系电话
*/
contactPhone?: string;
/**
* 企业邮箱
*/
email?: string;
/**
* 企业地址
*/
address?: string;
/**
* 状态(0正常 1停用)
*/
status?: string;
}
/**
* 招聘岗位VO对象
*/
export interface JobPositionVO {
/**
* 岗位ID
*/
id: number | string;
/**
* 所属企业ID
*/
enterpriseId: number | string;
/**
* 企业名称(关联字段)
*/
enterpriseName?: string;
/**
* 岗位名称
*/
positionName: string;
/**
* 工作地址
*/
workAddress: string;
/**
* 工作时间
*/
workTime: string;
/**
* 薪资
*/
salary: string;
/**
* 所需技能
*/
requiredSkills?: string;
/**
* 有效期开始日期
*/
startDate: string;
/**
* 有效期结束日期
*/
endDate: string;
/**
* 是否永久有效(0否 1是)
*/
isPermanent: number;
/**
* 状态(0正常 1停用)
*/
status: string;
/**
* 备注
*/
remark?: string;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: number;
/**
* 租户编号
*/
tenantId?: string;
/**
* 创建部门
*/
createDept?: number;
/**
* 创建时间
*/
createTime: string;
/**
* 创建者
*/
createBy?: number;
/**
* 更新时间
*/
updateTime?: string;
/**
* 更新者
*/
updateBy?: number;
}
/**
* 招聘岗位Form对象
*/
export interface JobPositionForm extends BaseEntity {
/**
* 岗位ID
*/
id?: number | string;
/**
* 所属企业ID
*/
enterpriseId: number | string;
/**
* 岗位名称
*/
positionName: string;
/**
* 工作地址
*/
workAddress: string;
/**
* 工作时间
*/
workTime: string;
/**
* 薪资
*/
salary: string;
/**
* 所需技能
*/
requiredSkills?: string;
/**
* 有效期开始日期
*/
startDate: string;
/**
* 有效期结束日期
*/
endDate: string;
/**
* 是否永久有效(0否 1是)
*/
isPermanent: number;
/**
* 状态(0正常 1停用)
*/
status: string;
/**
* 备注
*/
remark?: string;
}
/**
* 招聘岗位Query对象
*/
export interface JobPositionQuery extends PageQuery {
/**
* 所属企业ID
*/
enterpriseId?: number | string;
/**
* 岗位名称
*/
positionName?: string;
/**
* 工作地址
*/
workAddress?: string;
/**
* 状态(0正常 1停用)
*/
status?: string;
/**
* 是否永久有效
*/
isPermanent?: number;
/**
* 创建时间范围
*/
params?: {
beginCreateTime?: string;
endCreateTime?: string;
};
}
/**
* 招聘海报VO对象
*/
export interface RecruitmentPosterVO {
/**
* 海报ID
*/
id: number | string;
/**
* 企业ID
*/
enterpriseId: number | string;
/**
* 企业名称(关联字段)
*/
enterpriseName?: string;
/**
* 岗位ID(为空表示企业整体海报)
*/
positionId?: number | string;
/**
* 岗位名称(关联字段)
*/
positionName?: string;
/**
* 海报文件路径
*/
posterPath: string;
/**
* 海报类型(1企业海报 2岗位海报)
*/
posterType: string;
/**
* 删除标志(0代表存在 1代表删除)
*/
deleted?: number;
/**
* 租户编号
*/
tenantId?: string;
/**
* 创建部门
*/
createDept?: number;
/**
* 创建时间
*/
createTime: string;
/**
* 创建者
*/
createBy?: number;
/**
* 更新时间
*/
updateTime?: string;
/**
* 更新者
*/
updateBy?: number;
}
/**
* 招聘海报Form对象
*/
export interface RecruitmentPosterForm extends BaseEntity {
/**
* 海报ID
*/
id?: number | string;
/**
* 企业ID
*/
enterpriseId: number | string;
/**
* 岗位ID(为空表示企业整体海报)
*/
positionId?: number | string;
/**
* 海报文件路径
*/
posterPath: string;
/**
* 海报类型(1企业海报 2岗位海报)
*/
posterType: string;
}
/**
* 招聘海报Query对象
*/
export interface RecruitmentPosterQuery extends PageQuery {
/**
* 企业ID
*/
enterpriseId?: number | string;
/**
* 岗位ID
*/
positionId?: number | string;
/**
* 海报类型(1企业海报 2岗位海报)
*/
posterType?: string;
}
/**
* 分页响应数据
*/
export interface TableDataInfo<T> {
total: number;
rows: T[];
code?: number;
msg?: string;
}
/**
* 毕业生信息VO
*/
export interface GraduateInfoVO {
id?: string | number;
studentNo?: string;
name?: string;
gender?: string;
genderName?: string;
idCard?: string;
nation?: string;
politicalStatus?: string;
birthDate?: string;
enrollmentYear?: number;
graduationYear?: number;
collegeId?: string | number;
collegeName?: string;
majorId?: string | number;
majorName?: string;
classId?: string | number;
className?: string;
educationLevel?: string;
educationLevelName?: string;
trainingMode?: string;
phoneNumber?: string;
email?: string;
qqNumber?: string;
wechatNumber?: string;
province?: string;
city?: string;
district?: string;
detailAddress?: string;
fullAddress?: string;
postalCode?: string;
employmentStatus?: string;
employmentStatusName?: string;
employmentCompany?: string;
companyType?: string;
companyTypeName?: string;
jobPosition?: string;
workProvince?: string;
workCity?: string;
workLocation?: string;
salaryRange?: string;
salaryRangeName?: string;
furtherSchool?: string;
furtherMajor?: string;
skills?: string;
awards?: string;
jobIntention?: string;
auditStatus?: string;
auditStatusName?: string;
auditTime?: string;
auditBy?: string | number;
auditByName?: string;
auditRemark?: string;
status?: string;
remark?: string;
createBy?: string | number;
createTime?: string;
updateBy?: string | number;
updateTime?: string;
}
/**
* 毕业生信息表单
*/
export interface GraduateInfoForm {
id?: string | number;
studentNo?: string;
name?: string;
gender?: string;
idCard?: string;
nation?: string;
politicalStatus?: string;
birthDate?: string;
enrollmentYear?: number;
graduationYear?: number;
collegeId?: string | number;
collegeName?: string;
majorId?: string | number;
majorName?: string;
classId?: string | number;
className?: string;
educationLevel?: string;
trainingMode?: string;
phoneNumber?: string;
email?: string;
qqNumber?: string;
wechatNumber?: string;
province?: string;
city?: string;
district?: string;
detailAddress?: string;
postalCode?: string;
employmentStatus?: string;
employmentCompany?: string;
companyType?: string;
jobPosition?: string;
workProvince?: string;
workCity?: string;
salaryRange?: string;
furtherSchool?: string;
furtherMajor?: string;
skills?: string;
awards?: string;
jobIntention?: string;
auditStatus?: string;
auditTime?: string;
auditBy?: string | number;
auditRemark?: string;
status?: string;
remark?: string;
}
/**
* 毕业生信息查询
*/
export interface GraduateInfoQuery extends PageQuery {
studentNo?: string;
name?: string;
gender?: string;
idCard?: string;
nation?: string;
politicalStatus?: string;
birthDate?: string;
enrollmentYear?: number;
graduationYear?: number;
collegeId?: string | number;
collegeName?: string;
majorId?: string | number;
majorName?: string;
classId?: string | number;
className?: string;
educationLevel?: string;
trainingMode?: string;
phoneNumber?: string;
email?: string;
employmentStatus?: string;
employmentCompany?: string;
companyType?: string;
jobPosition?: string;
workProvince?: string;
workCity?: string;
salaryRange?: string;
furtherSchool?: string;
furtherMajor?: string;
auditStatus?: string;
auditBy?: string | number;
status?: string;
params?: any;
}
/**
* 毕业生信息统计VO
*/
export interface GraduateStatisticsVO {
name?: string;
value?: number;
total?: number;
percentage?: number;
employmentCount?: number;
employmentRate?: number;
furtherStudyCount?: number;
furtherStudyRate?: number;
unemploymentCount?: number;
type?: string;
year?: number;
collegeId?: string | number;
collegeName?: string;
majorId?: string | number;
majorName?: string;
employmentStatus?: string;
employmentStatusName?: string;
companyType?: string;
companyTypeName?: string;
province?: string;
city?: string;
salaryRange?: string;
salaryRangeName?: string;
}