wuzhen 20250723提交
This commit is contained in:
1 parent
609371ed82
commit
cc03e81f49
117 files changed
+76654
-1889
No files matched your search
@@ -1,6 +1,9 @@
|
||||
import request from '@/utils/request'
|
||||
import { AxiosPromise } from 'axios'
|
||||
import { ClassInfoVO, ClassInfoQuery, ClassInfoForm, OptionData } from './classInfo/types'
|
||||
import { getToken } from '@/utils/auth'
|
||||
import { DeptTreeVO, DeptVO } from '@/api/system/dept/types'
|
||||
import { treeselect as deptTreeselect, listDeptExcludeChild } from '@/api/system/dept'
|
||||
|
||||
// 通用类型定义
|
||||
interface TableDataInfo<T> {
|
||||
@@ -256,14 +259,34 @@ export const getCollegeOptions = (): AxiosPromise<R<any[]>> => {
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取专业选项
|
||||
* 从系统部门获取学院选项(二级学院)
|
||||
*/
|
||||
export const getMajorOptions = (collegeCode?: string): AxiosPromise<R<any[]>> => {
|
||||
export const getDeptCollegeOptions = (): AxiosPromise<DeptTreeVO[]> => {
|
||||
console.log('直接调用部门树API,避免treeselect参数问题');
|
||||
return request({
|
||||
url: '/xg/studentInfo/options/majors',
|
||||
method: 'get',
|
||||
params: { collegeCode }
|
||||
})
|
||||
url: '/system/dept/treeselect',
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 从系统部门获取专业选项(学院的下级部门)
|
||||
*/
|
||||
export const getDeptMajorOptions = (deptId: string | number): AxiosPromise<DeptVO[]> => {
|
||||
// 确保deptId是有效的数字ID
|
||||
if (!deptId || isNaN(Number(deptId))) {
|
||||
console.error('Invalid deptId:', deptId);
|
||||
return Promise.reject(new Error('无效的部门ID'));
|
||||
}
|
||||
|
||||
// 直接调用接口,不使用封装的系统API
|
||||
const numericDeptId = Number(deptId);
|
||||
console.log('直接调用部门API,使用数字ID:', numericDeptId);
|
||||
|
||||
return request({
|
||||
url: '/system/dept/list/exclude/' + numericDeptId,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -277,11 +300,17 @@ export const getCounselorOptions = (): AxiosPromise<R<any[]>> => {
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取班主任选项
|
||||
* 获取班主任选项列表
|
||||
*/
|
||||
export const getClassTeacherOptions = (): AxiosPromise<R<any[]>> => {
|
||||
export const getClassTeacherOptions = (): AxiosPromise<R<OptionData[]>> => {
|
||||
console.log('调用班主任API: /xg/classInfo/teacherOptions')
|
||||
return request({
|
||||
url: '/xg/studentInfo/options/classTeachers',
|
||||
method: 'get'
|
||||
url: '/xg/classInfo/teacherOptions',
|
||||
method: 'get',
|
||||
headers: {
|
||||
// 确保请求带有认证信息
|
||||
'Authorization': 'Bearer ' + getToken(),
|
||||
'clientid': import.meta.env.VITE_APP_CLIENT_ID
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
import request from '@/utils/request'
|
||||
import { AxiosPromise } from 'axios'
|
||||
import { getToken } from '@/utils/auth'
|
||||
|
||||
// 学生信息数据类型
|
||||
export interface StudentInfo {
|
||||
@@ -398,9 +399,15 @@ export function getCounselorOptions(): AxiosPromise<OptionData[]> {
|
||||
|
||||
// 获取班主任选项
|
||||
export function getClassTeacherOptions(): AxiosPromise<OptionData[]> {
|
||||
console.log('调用班主任API: /xg/classInfo/teacherOptions')
|
||||
return request({
|
||||
url: '/xg/studentInfo/options/classTeachers',
|
||||
method: 'get'
|
||||
url: '/xg/classInfo/teacherOptions',
|
||||
method: 'get',
|
||||
headers: {
|
||||
// 确保请求带有认证信息
|
||||
'Authorization': 'Bearer ' + getToken(),
|
||||
'clientid': import.meta.env.VITE_APP_CLIENT_ID
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -50,6 +50,23 @@ export const updateEnrollmentInfo = (data: EnrollmentInfoForm) => {
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 更新招生信息状态并同步到流程管理
|
||||
* @param id 招生信息ID(单个ID或ID数组)
|
||||
* @param status 新状态
|
||||
*/
|
||||
export const updateEnrollmentStatus = (id: string | number | Array<string | number>, status: string) => {
|
||||
const data = Array.isArray(id)
|
||||
? { ids: id, status } // 批量更新
|
||||
: { id, status }; // 单个更新
|
||||
|
||||
return request({
|
||||
url: '/zsjy/enrollment/info/updateStatus',
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 删除招生报名信息
|
||||
* @param id
|
||||
@@ -121,4 +138,4 @@ export const queryMyEnrollmentStatus = (params: { idCard?: string, examNumber?:
|
||||
method: 'get',
|
||||
params: params
|
||||
});
|
||||
};
|
||||
};
|
||||
@@ -295,7 +295,16 @@ export interface EnrollmentProcessQuery extends PageQuery {
|
||||
// 查询录取流程状态列表
|
||||
export const listEnrollmentProcess = (query: EnrollmentProcessQuery): AxiosPromise<EnrollmentProcessVO[]> => {
|
||||
return request({
|
||||
url: '/zsjy/enrollmentProcess/list',
|
||||
url: '/zsjy/enrollment/process/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询我的待审核列表
|
||||
export const listMyAuditProcess = (query: EnrollmentProcessQuery): AxiosPromise<EnrollmentProcessVO[]> => {
|
||||
return request({
|
||||
url: '/zsjy/enrollment/process/myAudit',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
@@ -304,7 +313,7 @@ export const listEnrollmentProcess = (query: EnrollmentProcessQuery): AxiosPromi
|
||||
// 查询录取流程状态详细
|
||||
export const getEnrollmentProcess = (id: string | number): AxiosPromise<EnrollmentProcessVO> => {
|
||||
return request({
|
||||
url: '/zsjy/enrollmentProcess/' + id,
|
||||
url: '/zsjy/enrollment/process/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
@@ -312,16 +321,34 @@ export const getEnrollmentProcess = (id: string | number): AxiosPromise<Enrollme
|
||||
// 新增录取流程状态
|
||||
export const addEnrollmentProcess = (data: EnrollmentProcessForm) => {
|
||||
return request({
|
||||
url: '/zsjy/enrollmentProcess',
|
||||
url: '/zsjy/enrollment/process',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 从报名信息创建流程
|
||||
export const createProcessFromEnrollment = (enrollmentId: number) => {
|
||||
return request({
|
||||
url: '/zsjy/enrollment/process/createFromEnrollment',
|
||||
method: 'post',
|
||||
params: { enrollmentId }
|
||||
})
|
||||
}
|
||||
|
||||
// 同步流程状态
|
||||
export const syncProcessStatus = (id: string | number) => {
|
||||
return request({
|
||||
url: '/zsjy/enrollment/process/syncStatus',
|
||||
method: 'post',
|
||||
params: { id }
|
||||
})
|
||||
}
|
||||
|
||||
// 修改录取流程状态
|
||||
export const updateEnrollmentProcess = (data: EnrollmentProcessForm) => {
|
||||
return request({
|
||||
url: '/zsjy/enrollmentProcess',
|
||||
url: '/zsjy/enrollment/process',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
@@ -330,7 +357,7 @@ export const updateEnrollmentProcess = (data: EnrollmentProcessForm) => {
|
||||
// 删除录取流程状态
|
||||
export const delEnrollmentProcess = (id: string | number | Array<string | number>) => {
|
||||
return request({
|
||||
url: '/zsjy/enrollmentProcess/' + id,
|
||||
url: '/zsjy/enrollment/process/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
@@ -338,117 +365,130 @@ export const delEnrollmentProcess = (id: string | number | Array<string | number
|
||||
// 根据报名信息ID查询流程状态
|
||||
export const getProcessByEnrollmentId = (enrollmentId: number): AxiosPromise<EnrollmentProcessVO> => {
|
||||
return request({
|
||||
url: '/zsjy/enrollmentProcess/enrollment/' + enrollmentId,
|
||||
url: '/zsjy/enrollment/process/enrollment/' + enrollmentId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询我的待处理流程
|
||||
export const getPendingProcessList = (): AxiosPromise<EnrollmentProcessVO[]> => {
|
||||
// 查询待处理的流程列表
|
||||
export const getPendingProcessList = (query: EnrollmentProcessQuery): AxiosPromise<EnrollmentProcessVO[]> => {
|
||||
return request({
|
||||
url: '/zsjy/enrollmentProcess/pending',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 根据流程状态查询流程列表
|
||||
export const getProcessByStatus = (status: string): AxiosPromise<EnrollmentProcessVO[]> => {
|
||||
return request({
|
||||
url: '/zsjy/enrollmentProcess/status/' + status,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 统计各状态的流程数量
|
||||
export const getProcessStatistics = (): AxiosPromise<any[]> => {
|
||||
return request({
|
||||
url: '/zsjy/enrollmentProcess/statistics',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 根据关键词搜索流程
|
||||
export const searchProcess = (keyword: string): AxiosPromise<EnrollmentProcessVO[]> => {
|
||||
return request({
|
||||
url: '/zsjy/enrollmentProcess/search',
|
||||
url: '/zsjy/enrollment/process/pending',
|
||||
method: 'get',
|
||||
params: { keyword }
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 根据状态查询流程列表
|
||||
export const getProcessListByStatus = (status: string, query: EnrollmentProcessQuery): AxiosPromise<EnrollmentProcessVO[]> => {
|
||||
return request({
|
||||
url: '/zsjy/enrollment/process/status/' + status,
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 获取流程统计数据
|
||||
export const getProcessStatistics = (): AxiosPromise<any> => {
|
||||
return request({
|
||||
url: '/zsjy/enrollment/process/statistics',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 搜索流程
|
||||
export const searchProcess = (keyword: string, query: EnrollmentProcessQuery): AxiosPromise<EnrollmentProcessVO[]> => {
|
||||
return request({
|
||||
url: '/zsjy/enrollment/process/search',
|
||||
method: 'get',
|
||||
params: { keyword, ...query }
|
||||
})
|
||||
}
|
||||
|
||||
// 信息审核
|
||||
export const infoAudit = (data: { id: number; auditResult: string; auditOpinion?: string }) => {
|
||||
export const infoAudit = (data: {
|
||||
processId: number;
|
||||
auditResult: string;
|
||||
auditOpinion?: string;
|
||||
}) => {
|
||||
return request({
|
||||
url: '/zsjy/enrollmentProcess/infoAudit',
|
||||
url: '/zsjy/enrollment/process/infoAudit',
|
||||
method: 'post',
|
||||
data: data
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 录取处理
|
||||
export const admissionProcess = (data: {
|
||||
id: number;
|
||||
processResult: string;
|
||||
processOpinion?: string;
|
||||
noticeNumber?: string
|
||||
export const admissionProcess = (data: {
|
||||
processId: number;
|
||||
admissionResult: string;
|
||||
admissionOpinion?: string;
|
||||
noticeNumber?: string;
|
||||
}) => {
|
||||
return request({
|
||||
url: '/zsjy/enrollmentProcess/admissionProcess',
|
||||
url: '/zsjy/enrollment/process/admissionProcess',
|
||||
method: 'post',
|
||||
data: data
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 缴费确认
|
||||
export const confirmPayment = (id: number) => {
|
||||
// 确认缴费
|
||||
export const confirmPayment = (processId: number) => {
|
||||
return request({
|
||||
url: '/zsjy/enrollmentProcess/confirmPayment',
|
||||
url: '/zsjy/enrollment/process/confirmPayment',
|
||||
method: 'post',
|
||||
data: { id }
|
||||
params: { processId }
|
||||
})
|
||||
}
|
||||
|
||||
// 最终审核
|
||||
export const finalAudit = (data: { id: number; auditResult: string; auditOpinion?: string }) => {
|
||||
export const finalAudit = (data: {
|
||||
processId: number;
|
||||
finalResult: string;
|
||||
finalOpinion?: string;
|
||||
}) => {
|
||||
return request({
|
||||
url: '/zsjy/enrollmentProcess/finalAudit',
|
||||
url: '/zsjy/enrollment/process/finalConfirm',
|
||||
method: 'post',
|
||||
data: data
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 完成录取
|
||||
export const completeEnrollment = (id: number) => {
|
||||
// 完成流程
|
||||
export const completeProcess = (processId: number) => {
|
||||
return request({
|
||||
url: '/zsjy/enrollmentProcess/complete',
|
||||
url: '/zsjy/enrollment/process/complete',
|
||||
method: 'post',
|
||||
data: { id }
|
||||
params: { processId }
|
||||
})
|
||||
}
|
||||
|
||||
// 驳回流程
|
||||
export const rejectProcess = (data: { id: number; rejectReason: string }) => {
|
||||
export const rejectProcess = (data: {
|
||||
processId: number;
|
||||
rejectReason: string;
|
||||
}) => {
|
||||
return request({
|
||||
url: '/zsjy/enrollmentProcess/reject',
|
||||
url: '/zsjy/enrollment/process/reject',
|
||||
method: 'post',
|
||||
data: data
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 重置流程状态
|
||||
export const resetProcess = (id: number) => {
|
||||
// 重置流程
|
||||
export const resetProcess = (processId: number) => {
|
||||
return request({
|
||||
url: '/zsjy/enrollmentProcess/reset',
|
||||
url: '/zsjy/enrollment/process/reset',
|
||||
method: 'post',
|
||||
data: { id }
|
||||
params: { processId }
|
||||
})
|
||||
}
|
||||
|
||||
// 导出录取流程状态
|
||||
export const exportEnrollmentProcess = (query: EnrollmentProcessQuery) => {
|
||||
return request({
|
||||
url: '/zsjy/enrollmentProcess/export',
|
||||
url: '/zsjy/enrollment/process/export',
|
||||
method: 'post',
|
||||
data: query
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 获取统计概览数据
|
||||
*/
|
||||
export function getStatisticsOverview() {
|
||||
return request({
|
||||
url: '/dev-api/zsjy/statistics/overview',
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取专业分布统计
|
||||
*/
|
||||
export function getMajorDistribution() {
|
||||
return request({
|
||||
url: '/dev-api/zsjy/statistics/major',
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取地区分布统计
|
||||
*/
|
||||
export function getRegionDistribution() {
|
||||
return request({
|
||||
url: '/dev-api/zsjy/statistics/region',
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取性别比例统计
|
||||
*/
|
||||
export function getGenderRatio() {
|
||||
return request({
|
||||
url: '/dev-api/zsjy/statistics/gender',
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取报名趋势统计
|
||||
* @param {number} days 天数,默认为7天
|
||||
*/
|
||||
export function getEnrollmentTrend(days?: number) {
|
||||
return request({
|
||||
url: '/dev-api/zsjy/statistics/trend',
|
||||
method: 'get',
|
||||
params: { days }
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取状态分布统计
|
||||
*/
|
||||
export function getStatusDistribution() {
|
||||
return request({
|
||||
url: '/dev-api/zsjy/statistics/status',
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
// 导出接口类型定义
|
||||
export interface StatisticsOverview {
|
||||
totalEnrollments: number;
|
||||
todayEnrollments: number;
|
||||
paidCount: number;
|
||||
paymentRate: string;
|
||||
admittedCount: number;
|
||||
admissionRate: string;
|
||||
majorDistribution: Array<{[key: string]: any}>;
|
||||
regionDistribution: Array<{[key: string]: any}>;
|
||||
genderRatio: {[key: string]: number};
|
||||
weeklyTrend: Array<{[key: string]: any}>;
|
||||
statusDistribution: {[key: string]: number};
|
||||
}
|
||||
Reference in new issue
Block a user