Merge branch 'master' of http://47.99.164.66:3000/hzdyjs-xg/all-project
This commit is contained in:
commit
75201841cd
243 files changed
+89463
-2524
No files matched your search
@@ -0,0 +1,46 @@
|
||||
import request from '@/utils/request';
|
||||
import { ClassMsgForm, ClassMsgQuery, ClassMsgVO } from '../types';
|
||||
import { AxiosPromise } from 'axios';
|
||||
|
||||
// 查询班级信息-新版列表
|
||||
export function listClassMsg(query: ClassMsgQuery) {
|
||||
return request({
|
||||
url: '/classMsg/classMsg/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
}
|
||||
|
||||
// 查询班级信息-新版详细
|
||||
export function getClassMsg(id: string | number) {
|
||||
return request({
|
||||
url: `/classMsg/classMsg/${id}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
// 新增班级信息-新版
|
||||
export function addClassMsg(data: ClassMsgForm) {
|
||||
return request({
|
||||
url: '/classMsg/classMsg',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
|
||||
// 修改班级信息-新版
|
||||
export function updateClassMsg(data: ClassMsgForm) {
|
||||
return request({
|
||||
url: '/classMsg/classMsg',
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
|
||||
// 删除班级信息-新版
|
||||
export function delClassMsg(id: string | number) {
|
||||
return request({
|
||||
url: `/classMsg/classMsg/${id}`,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,336 @@
|
||||
export interface ClassMsgVO {
|
||||
/**
|
||||
* 主键ID(雪花ID)
|
||||
*/
|
||||
id: string | number;
|
||||
|
||||
/**
|
||||
* 学院代码
|
||||
*/
|
||||
collegeId: string | number;
|
||||
|
||||
/**
|
||||
* 专业代码
|
||||
*/
|
||||
majorId: string | number;
|
||||
|
||||
/**
|
||||
* 班级名称
|
||||
*/
|
||||
className: string;
|
||||
|
||||
/**
|
||||
* 班级类型:1-中级工 2-高级工 3-预备技师 4-技师 5-中高职一体
|
||||
*/
|
||||
classType: string;
|
||||
|
||||
/**
|
||||
* 年级
|
||||
*/
|
||||
grade: string;
|
||||
|
||||
/**
|
||||
* 入学年份
|
||||
*/
|
||||
enrollmentYear: number;
|
||||
|
||||
/**
|
||||
* 毕业年份
|
||||
*/
|
||||
graduationYear: number;
|
||||
|
||||
/**
|
||||
* 班级状态:1-正常,2-暂停,3-毕业,4-解散
|
||||
*/
|
||||
classStatus: string;
|
||||
|
||||
/**
|
||||
* 备注信息
|
||||
*/
|
||||
remark: string;
|
||||
|
||||
}
|
||||
|
||||
export interface ClassMsgForm extends BaseEntity {
|
||||
/**
|
||||
* 主键ID(雪花ID)
|
||||
*/
|
||||
id?: string | number;
|
||||
|
||||
/**
|
||||
* 学院代码
|
||||
*/
|
||||
collegeId?: string | number;
|
||||
|
||||
/**
|
||||
* 学院名称
|
||||
*/
|
||||
collegeName?: string;
|
||||
|
||||
/**
|
||||
* 专业代码
|
||||
*/
|
||||
majorId?: string | number;
|
||||
|
||||
/**
|
||||
* 专业名称
|
||||
*/
|
||||
majorName?: string;
|
||||
|
||||
/**
|
||||
* 班级代码
|
||||
*/
|
||||
classCode?: string;
|
||||
|
||||
/**
|
||||
* 班级名称
|
||||
*/
|
||||
className?: string;
|
||||
|
||||
/**
|
||||
* 班级类型:1-中级工 2-高级工 3-预备技师 4-技师 5-中高职一体
|
||||
*/
|
||||
classType?: string;
|
||||
|
||||
/**
|
||||
* 年级
|
||||
*/
|
||||
grade?: string;
|
||||
|
||||
/**
|
||||
* 入学年份
|
||||
*/
|
||||
enrollmentYear?: number;
|
||||
|
||||
/**
|
||||
* 毕业年份
|
||||
*/
|
||||
graduationYear?: number;
|
||||
|
||||
/**
|
||||
* 培养方式:全日制,在职,函授,夜大等
|
||||
*/
|
||||
trainingType?: string;
|
||||
|
||||
/**
|
||||
* 学位类型:学士,硕士,博士,专科
|
||||
*/
|
||||
degreeType?: string;
|
||||
|
||||
/**
|
||||
* 辅导员ID
|
||||
*/
|
||||
counselorId?: string | number;
|
||||
|
||||
/**
|
||||
* 辅导员姓名
|
||||
*/
|
||||
counselorName?: string;
|
||||
|
||||
/**
|
||||
* 班主任ID
|
||||
*/
|
||||
classTeacherId?: string | number;
|
||||
|
||||
/**
|
||||
* 班主任姓名
|
||||
*/
|
||||
classTeacherName?: string;
|
||||
|
||||
/**
|
||||
* 班级导师ID
|
||||
*/
|
||||
classAdvisorId?: string | number;
|
||||
|
||||
/**
|
||||
* 班级导师姓名
|
||||
*/
|
||||
classAdvisorName?: string;
|
||||
|
||||
/**
|
||||
* 班长ID
|
||||
*/
|
||||
classMonitorId?: string | number;
|
||||
|
||||
/**
|
||||
* 班长姓名
|
||||
*/
|
||||
classMonitorName?: string;
|
||||
|
||||
/**
|
||||
* 副班长ID
|
||||
*/
|
||||
deputyMonitorId?: string | number;
|
||||
|
||||
/**
|
||||
* 副班长姓名
|
||||
*/
|
||||
deputyMonitorName?: string;
|
||||
|
||||
/**
|
||||
* 班级状态:1-正常,2-暂停,3-毕业,4-解散
|
||||
*/
|
||||
classStatus?: string;
|
||||
|
||||
/**
|
||||
* 是否已毕业:0-未毕业,1-已毕业
|
||||
*/
|
||||
isGraduation?: number;
|
||||
|
||||
/**
|
||||
* 毕业日期
|
||||
*/
|
||||
graduationDate?: string;
|
||||
|
||||
/**
|
||||
* 计划容量
|
||||
*/
|
||||
plannedCapacity?: number;
|
||||
|
||||
/**
|
||||
* 当前学生人数
|
||||
*/
|
||||
currentStudentCount?: number;
|
||||
|
||||
/**
|
||||
* 最大学生人数
|
||||
*/
|
||||
maxStudentCount?: number;
|
||||
|
||||
/**
|
||||
* 男生人数
|
||||
*/
|
||||
maleCount?: number;
|
||||
|
||||
/**
|
||||
* 女生人数
|
||||
*/
|
||||
femaleCount?: number;
|
||||
|
||||
/**
|
||||
* 在籍人数
|
||||
*/
|
||||
activeCount?: number;
|
||||
|
||||
/**
|
||||
* 转入人数
|
||||
*/
|
||||
transferInCount?: number;
|
||||
|
||||
/**
|
||||
* 转出人数
|
||||
*/
|
||||
transferOutCount?: number;
|
||||
|
||||
/**
|
||||
* 退学人数
|
||||
*/
|
||||
dropoutCount?: number;
|
||||
|
||||
/**
|
||||
* 毕业人数
|
||||
*/
|
||||
graduateCount?: number;
|
||||
|
||||
/**
|
||||
* 班级办公室位置
|
||||
*/
|
||||
officeLocation?: string;
|
||||
|
||||
/**
|
||||
* 班级教室位置
|
||||
*/
|
||||
classLocation?: string;
|
||||
|
||||
/**
|
||||
* 联系电话
|
||||
*/
|
||||
contactPhone?: string;
|
||||
|
||||
/**
|
||||
* QQ群号
|
||||
*/
|
||||
qqGroup?: string;
|
||||
|
||||
/**
|
||||
* 微信群
|
||||
*/
|
||||
wechatGroup?: string;
|
||||
|
||||
/**
|
||||
* 班级邮箱
|
||||
*/
|
||||
email?: string;
|
||||
|
||||
/**
|
||||
* 课程安排(JSON格式)
|
||||
*/
|
||||
classSchedule?: string;
|
||||
|
||||
/**
|
||||
* 班级文化建设
|
||||
*/
|
||||
classCulture?: string;
|
||||
|
||||
/**
|
||||
* 班级规章制度
|
||||
*/
|
||||
classRules?: string;
|
||||
|
||||
/**
|
||||
* 班级描述
|
||||
*/
|
||||
classDescription?: string;
|
||||
|
||||
/**
|
||||
* 最后统计更新时间
|
||||
*/
|
||||
lastCountUpdate?: string;
|
||||
|
||||
/**
|
||||
* 备注信息
|
||||
*/
|
||||
remark?: string;
|
||||
|
||||
}
|
||||
|
||||
export interface ClassMsgQuery extends PageQuery {
|
||||
|
||||
/**
|
||||
* 学院代码
|
||||
*/
|
||||
collegeId?: string | number;
|
||||
|
||||
/**
|
||||
* 专业代码
|
||||
*/
|
||||
majorId?: string | number;
|
||||
|
||||
/**
|
||||
* 班级名称
|
||||
*/
|
||||
className?: string;
|
||||
|
||||
/**
|
||||
* 班级类型:1-中级工 2-高级工 3-预备技师 4-技师 5-中高职一体
|
||||
*/
|
||||
classType?: string;
|
||||
|
||||
/**
|
||||
* 年级
|
||||
*/
|
||||
grade?: string;
|
||||
|
||||
/**
|
||||
* 班级状态:1-正常,2-暂停,3-毕业,4-解散
|
||||
*/
|
||||
classStatus?: string;
|
||||
|
||||
/**
|
||||
* 日期范围参数
|
||||
*/
|
||||
params?: any;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
import request from '@/utils/request';
|
||||
import { SysDeptVo } from './types';
|
||||
|
||||
// 获取学院列表
|
||||
export function listColleges() {
|
||||
return request({
|
||||
url: '/xg/college/list',
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
// 获取学院和专业树形结构
|
||||
export function collegeTree() {
|
||||
return request({
|
||||
url: '/xg/college/tree',
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
// 根据学院ID获取专业列表
|
||||
export function listMajorsByCollegeId(collegeId: string | number) {
|
||||
return request({
|
||||
url: `/xg/college/majors/${collegeId}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,160 @@
|
||||
/** 部门视图对象 */
|
||||
export interface SysDeptVo {
|
||||
/** 部门id */
|
||||
deptId: number;
|
||||
/** 父部门id */
|
||||
parentId: number;
|
||||
/** 祖级列表 */
|
||||
ancestors: string;
|
||||
/** 部门名称 */
|
||||
deptName: string;
|
||||
/** 显示顺序 */
|
||||
orderNum: number;
|
||||
/** 负责人 */
|
||||
leader: string;
|
||||
/** 联系电话 */
|
||||
phone: string;
|
||||
/** 邮箱 */
|
||||
email: string;
|
||||
/** 部门状态:0正常,1停用 */
|
||||
status: string;
|
||||
/** 删除标志 */
|
||||
delFlag: string;
|
||||
/** 创建者 */
|
||||
createBy: number;
|
||||
/** 创建时间 */
|
||||
createTime: string;
|
||||
/** 更新者 */
|
||||
updateBy: number;
|
||||
/** 更新时间 */
|
||||
updateTime: string;
|
||||
/** 子部门 */
|
||||
children: SysDeptVo[];
|
||||
}
|
||||
|
||||
/** 班级查询参数 */
|
||||
export interface ClassMsgQuery {
|
||||
/** 学院代码 */
|
||||
collegeId?: number | string;
|
||||
/** 专业代码 */
|
||||
majorId?: number | string;
|
||||
/** 班级名称 */
|
||||
className?: string;
|
||||
/** 班级类型 */
|
||||
classType?: string | number;
|
||||
/** 年级 */
|
||||
grade?: string;
|
||||
/** 班级状态 */
|
||||
classStatus?: string | number;
|
||||
/** 分页大小 */
|
||||
pageSize: number;
|
||||
/** 当前页码 */
|
||||
pageNum: number;
|
||||
/** 其他参数 */
|
||||
params: Record<string, any>;
|
||||
}
|
||||
|
||||
/** 班级详细信息 */
|
||||
export interface ClassMsgVO {
|
||||
/** 主键ID */
|
||||
id: string | number;
|
||||
/** 学院代码 */
|
||||
collegeId?: string | number;
|
||||
/** 学院名称 */
|
||||
collegeName?: string;
|
||||
/** 专业代码 */
|
||||
majorId?: string | number;
|
||||
/** 专业名称 */
|
||||
majorName?: string;
|
||||
/** 班级代码 */
|
||||
classCode?: string;
|
||||
/** 班级名称 */
|
||||
className?: string;
|
||||
/** 班级类型 */
|
||||
classType?: string | number;
|
||||
/** 年级 */
|
||||
grade?: string;
|
||||
/** 入学年份 */
|
||||
enrollmentYear?: string;
|
||||
/** 毕业年份 */
|
||||
graduationYear?: string;
|
||||
/** 培养类型 */
|
||||
trainingType?: string;
|
||||
/** 学位类型 */
|
||||
degreeType?: string;
|
||||
/** 辅导员ID */
|
||||
counselorId?: string | number;
|
||||
/** 辅导员姓名 */
|
||||
counselorName?: string;
|
||||
/** 班主任ID */
|
||||
classTeacherId?: string | number;
|
||||
/** 班主任姓名 */
|
||||
classTeacherName?: string;
|
||||
/** 班级导师ID */
|
||||
classAdvisorId?: string | number;
|
||||
/** 班级导师姓名 */
|
||||
classAdvisorName?: string;
|
||||
/** 班长ID */
|
||||
classMonitorId?: string | number;
|
||||
/** 班长姓名 */
|
||||
classMonitorName?: string;
|
||||
/** 副班长ID */
|
||||
deputyMonitorId?: string | number;
|
||||
/** 副班长姓名 */
|
||||
deputyMonitorName?: string;
|
||||
/** 班级状态 */
|
||||
classStatus?: string | number;
|
||||
/** 是否已毕业 */
|
||||
isGraduation?: string | number;
|
||||
/** 毕业日期 */
|
||||
graduationDate?: string;
|
||||
/** 计划容量 */
|
||||
plannedCapacity?: number;
|
||||
/** 当前学生人数 */
|
||||
currentStudentCount?: number;
|
||||
/** 最大学生人数 */
|
||||
maxStudentCount?: number;
|
||||
/** 男生人数 */
|
||||
maleCount?: number;
|
||||
/** 女生人数 */
|
||||
femaleCount?: number;
|
||||
/** 在籍人数 */
|
||||
activeCount?: number;
|
||||
/** 转入人数 */
|
||||
transferInCount?: number;
|
||||
/** 转出人数 */
|
||||
transferOutCount?: number;
|
||||
/** 退学人数 */
|
||||
dropoutCount?: number;
|
||||
/** 毕业人数 */
|
||||
graduateCount?: number;
|
||||
/** 办公室位置 */
|
||||
officeLocation?: string;
|
||||
/** 教室位置 */
|
||||
classLocation?: string;
|
||||
/** 联系电话 */
|
||||
contactPhone?: string;
|
||||
/** QQ群号 */
|
||||
qqGroup?: string;
|
||||
/** 微信群 */
|
||||
wechatGroup?: string;
|
||||
/** 班级邮箱 */
|
||||
email?: string;
|
||||
/** 课程安排 */
|
||||
classSchedule?: string;
|
||||
/** 班级文化建设 */
|
||||
classCulture?: string;
|
||||
/** 班级规章制度 */
|
||||
classRules?: string;
|
||||
/** 班级描述 */
|
||||
classDescription?: string;
|
||||
/** 统计更新时间 */
|
||||
lastCountUpdate?: string;
|
||||
/** 备注 */
|
||||
remark?: string;
|
||||
}
|
||||
|
||||
/** 班级表单数据 */
|
||||
export interface ClassMsgForm extends ClassMsgVO {
|
||||
// 表单额外字段
|
||||
}
|
||||
@@ -1,126 +0,0 @@
|
||||
export interface DormBuildingVO {
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
id: string | number;
|
||||
|
||||
/**
|
||||
* 宿舍楼编码
|
||||
*/
|
||||
buildingCode: string;
|
||||
|
||||
/**
|
||||
* 宿舍楼名称
|
||||
*/
|
||||
buildingName: string;
|
||||
|
||||
/**
|
||||
* 所属宿舍区ID
|
||||
*/
|
||||
areaId: string | number;
|
||||
|
||||
/**
|
||||
* 所属校区ID
|
||||
*/
|
||||
campusId: string | number;
|
||||
|
||||
/**
|
||||
* 宿舍楼类型(1男生楼 2女生楼 3混合楼)
|
||||
*/
|
||||
buildingType: string;
|
||||
|
||||
/**
|
||||
* 宿舍楼描述
|
||||
*/
|
||||
buildingDescription: string;
|
||||
|
||||
/**
|
||||
* 排序号
|
||||
*/
|
||||
sortOrder: number;
|
||||
|
||||
}
|
||||
|
||||
export interface DormBuildingForm extends BaseEntity {
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
id?: string | number;
|
||||
|
||||
/**
|
||||
* 宿舍楼编码
|
||||
*/
|
||||
buildingCode?: string;
|
||||
|
||||
/**
|
||||
* 宿舍楼名称
|
||||
*/
|
||||
buildingName?: string;
|
||||
|
||||
/**
|
||||
* 所属宿舍区ID
|
||||
*/
|
||||
areaId?: string | number;
|
||||
|
||||
/**
|
||||
* 所属校区ID
|
||||
*/
|
||||
campusId?: string | number;
|
||||
|
||||
/**
|
||||
* 宿舍楼类型(1男生楼 2女生楼 3混合楼)
|
||||
*/
|
||||
buildingType?: string;
|
||||
|
||||
/**
|
||||
* 宿舍楼描述
|
||||
*/
|
||||
buildingDescription?: string;
|
||||
|
||||
/**
|
||||
* 排序号
|
||||
*/
|
||||
sortOrder?: number;
|
||||
|
||||
}
|
||||
|
||||
export interface DormBuildingQuery extends PageQuery {
|
||||
|
||||
/**
|
||||
* 宿舍楼编码
|
||||
*/
|
||||
buildingCode?: string;
|
||||
|
||||
/**
|
||||
* 宿舍楼名称
|
||||
*/
|
||||
buildingName?: string;
|
||||
|
||||
/**
|
||||
* 所属宿舍区ID
|
||||
*/
|
||||
areaId?: string | number;
|
||||
|
||||
/**
|
||||
* 所属校区ID
|
||||
*/
|
||||
campusId?: string | number;
|
||||
|
||||
/**
|
||||
* 宿舍楼类型(1男生楼 2女生楼 3混合楼)
|
||||
*/
|
||||
buildingType?: string;
|
||||
|
||||
/**
|
||||
* 排序号
|
||||
*/
|
||||
sortOrder?: number;
|
||||
|
||||
/**
|
||||
* 日期范围参数
|
||||
*/
|
||||
params?: any;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 班级班主任辅导员关联对象
|
||||
*/
|
||||
interface ClassTeacherCounselorRelBo {
|
||||
id?: number | string;
|
||||
classId?: number | string;
|
||||
teacherId?: number | string;
|
||||
teacherName?: string;
|
||||
counselorId?: number | string;
|
||||
counselorName?: string;
|
||||
relationType?: number; // 1:班主任 2:辅导员
|
||||
remark?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加班级班主任辅导员关联
|
||||
* @param data 班级班主任辅导员关联信息
|
||||
* @returns 返回添加结果
|
||||
*/
|
||||
export function addClassTeacherCounselorRel(data: ClassTeacherCounselorRelBo) {
|
||||
return request({
|
||||
url: '/teacherCounselorRel/classTeacherCounselorRel',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改班级班主任辅导员关联
|
||||
* @param data 班级班主任辅导员关联信息
|
||||
* @returns 返回修改结果
|
||||
*/
|
||||
export function updateClassTeacherCounselorRel(data: ClassTeacherCounselorRelBo) {
|
||||
return request({
|
||||
url: '/teacherCounselorRel/classTeacherCounselorRel',
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询班级班主任辅导员关联列表
|
||||
* @param query 查询参数
|
||||
* @returns 返回班级班主任辅导员关联列表
|
||||
*/
|
||||
export function listClassTeacherCounselorRel(query: any) {
|
||||
return request({
|
||||
url: '/teacherCounselorRel/classTeacherCounselorRel/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取班级班主任辅导员关联详情
|
||||
* @param id 关联ID
|
||||
* @returns 返回班级班主任辅导员关联详情
|
||||
*/
|
||||
export function getClassTeacherCounselorRel(id: number | string) {
|
||||
return request({
|
||||
url: `/teacherCounselorRel/classTeacherCounselorRel/${id}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除班级班主任辅导员关联
|
||||
* @param ids 关联ID数组
|
||||
* @returns 返回删除结果
|
||||
*/
|
||||
export function delClassTeacherCounselorRel(ids: number | string | (number | string)[]) {
|
||||
return request({
|
||||
url: `/teacherCounselorRel/classTeacherCounselorRel/${ids instanceof Array ? ids.join(',') : ids}`,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出班级班主任辅导员关联
|
||||
* @param query 查询参数
|
||||
* @returns 返回导出结果
|
||||
*/
|
||||
export function exportClassTeacherCounselorRel(query: any) {
|
||||
return request({
|
||||
url: '/teacherCounselorRel/classTeacherCounselorRel/export',
|
||||
method: 'post',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
});
|
||||
}
|
||||
@@ -14,5 +14,8 @@ import request from '@/utils/request';
|
||||
// export * from './scholarship' // 奖助管理
|
||||
// export * from './activity' // 活动管理
|
||||
|
||||
// 导出学工用户模块API
|
||||
export * from './sysUser'
|
||||
|
||||
// 临时导出一个空对象,防止编译错误
|
||||
export default {};
|
||||
@@ -0,0 +1,29 @@
|
||||
import request from '@/utils/request';
|
||||
import { AxiosPromise } from 'axios';
|
||||
|
||||
/**
|
||||
* 用户信息对象
|
||||
*/
|
||||
export interface XgSysUser {
|
||||
userId: number | string;
|
||||
userName: string;
|
||||
nickName: string;
|
||||
email: string;
|
||||
phonenumber: string;
|
||||
sex: string;
|
||||
status: string;
|
||||
createTime: string;
|
||||
updateTime: string;
|
||||
deptId: number;
|
||||
deptName: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询有效用户列表
|
||||
*/
|
||||
export function getActiveUserList(): AxiosPromise<XgSysUser[]> {
|
||||
return request({
|
||||
url: '/xg/sysUser/activeList',
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
import request from '@/utils/request';
|
||||
import { AxiosPromise } from 'axios';
|
||||
import { DormBedVO, DormBedForm, DormBedQuery } from '@/api/xgss/dormBed/types';
|
||||
|
||||
/**
|
||||
* 查询宿舍床位信息列表
|
||||
* @param query
|
||||
* @returns {*}
|
||||
*/
|
||||
|
||||
export const listDormBed = (query?: DormBedQuery): AxiosPromise<DormBedVO[]> => {
|
||||
return request({
|
||||
url: '/dormbed/dormBed/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 查询宿舍床位信息详细
|
||||
* @param id
|
||||
*/
|
||||
export const getDormBed = (id: string | number): AxiosPromise<DormBedVO> => {
|
||||
return request({
|
||||
url: '/dormbed/dormBed/' + id,
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 新增宿舍床位信息
|
||||
* @param data
|
||||
*/
|
||||
export const addDormBed = (data: DormBedForm) => {
|
||||
return request({
|
||||
url: '/dormbed/dormBed',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 修改宿舍床位信息
|
||||
* @param data
|
||||
*/
|
||||
export const updateDormBed = (data: DormBedForm) => {
|
||||
return request({
|
||||
url: '/dormbed/dormBed',
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 删除宿舍床位信息
|
||||
* @param id
|
||||
*/
|
||||
export const delDormBed = (id: string | number | Array<string | number>) => {
|
||||
return request({
|
||||
url: '/dormbed/dormBed/' + id,
|
||||
method: 'delete'
|
||||
});
|
||||
};
|
||||
@@ -0,0 +1,66 @@
|
||||
/**
|
||||
* 宿舍床位信息查询参数
|
||||
*/
|
||||
export interface DormBedQuery {
|
||||
/** 床位编号 */
|
||||
bedCode?: string;
|
||||
/** 床位名称 */
|
||||
bedName?: string;
|
||||
/** 所属房间ID */
|
||||
roomId?: string | number;
|
||||
/** 床位状态(0=空闲,1=已分配,2=维修中) */
|
||||
bedStatus?: string;
|
||||
/** 床位类型(1=下铺,2=上铺,3=中铺,4=独立床) */
|
||||
bedType?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 宿舍床位信息对象
|
||||
*/
|
||||
export interface DormBedVO {
|
||||
/** 床位ID */
|
||||
id: string | number;
|
||||
/** 床位编号 */
|
||||
bedCode: string;
|
||||
/** 床位名称 */
|
||||
bedName: string;
|
||||
/** 所属房间ID */
|
||||
roomId: string | number;
|
||||
/** 床位状态(0=空闲,1=已分配,2=维修中) */
|
||||
bedStatus: string;
|
||||
/** 床位类型(1=下铺,2=上铺,3=中铺,4=独立床) */
|
||||
bedType: string;
|
||||
/** 备注 */
|
||||
remark?: string;
|
||||
/** 创建者 */
|
||||
createBy: number;
|
||||
/** 创建时间 */
|
||||
createTime: Date;
|
||||
/** 更新者 */
|
||||
updateBy: number;
|
||||
/** 更新时间 */
|
||||
updateTime: Date;
|
||||
}
|
||||
|
||||
/**
|
||||
* 宿舍床位信息表单对象
|
||||
*/
|
||||
export interface DormBedForm {
|
||||
/** 床位ID */
|
||||
id: string | number;
|
||||
/** 床位编号 */
|
||||
bedCode: string;
|
||||
/** 床位名称 */
|
||||
bedName: string;
|
||||
/** 所属房间ID */
|
||||
roomId: string | number;
|
||||
/** 床位状态(0=空闲,1=已分配,2=维修中) */
|
||||
bedStatus: string;
|
||||
/** 床位类型(1=下铺,2=上铺,3=中铺,4=独立床) */
|
||||
bedType: string;
|
||||
/** 备注 */
|
||||
remark?: string;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
import request from '@/utils/request';
|
||||
import { AxiosPromise } from 'axios';
|
||||
import { DormRoomVO, DormRoomForm, DormRoomQuery } from '@/api/xgss/dormRoom/types';
|
||||
|
||||
/**
|
||||
* 查询宿舍房间信息列表
|
||||
* @param query
|
||||
* @returns {*}
|
||||
*/
|
||||
|
||||
export const listDormRoom = (query?: DormRoomQuery): AxiosPromise<DormRoomVO[]> => {
|
||||
return request({
|
||||
url: '/xgss/dormRoom/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 查询宿舍房间信息详细
|
||||
* @param id
|
||||
*/
|
||||
export const getDormRoom = (id: string | number): AxiosPromise<DormRoomVO> => {
|
||||
return request({
|
||||
url: '/xgss/dormRoom/' + id,
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 新增宿舍房间信息
|
||||
* @param data
|
||||
*/
|
||||
export const addDormRoom = (data: DormRoomForm) => {
|
||||
return request({
|
||||
url: '/xgss/dormRoom',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 修改宿舍房间信息
|
||||
* @param data
|
||||
*/
|
||||
export const updateDormRoom = (data: DormRoomForm) => {
|
||||
return request({
|
||||
url: '/xgss/dormRoom',
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 删除宿舍房间信息
|
||||
* @param id
|
||||
*/
|
||||
export const delDormRoom = (id: string | number | Array<string | number>) => {
|
||||
return request({
|
||||
url: '/xgss/dormRoom/' + id,
|
||||
method: 'delete'
|
||||
});
|
||||
};
|
||||
@@ -0,0 +1,176 @@
|
||||
export interface DormRoomVO {
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
id: string | number;
|
||||
|
||||
/**
|
||||
* 房间编号
|
||||
*/
|
||||
roomCode: string;
|
||||
|
||||
/**
|
||||
* 房间名称
|
||||
*/
|
||||
roomName: string;
|
||||
|
||||
/**
|
||||
* 所属宿舍楼ID
|
||||
*/
|
||||
buildingId: string | number;
|
||||
|
||||
/**
|
||||
* 楼层
|
||||
*/
|
||||
floorNum: number;
|
||||
|
||||
/**
|
||||
* 房间类型(1标准间 2 单人间 3 套间)
|
||||
*/
|
||||
roomType: string;
|
||||
|
||||
/**
|
||||
* 实际床位数
|
||||
*/
|
||||
actualBeds: number;
|
||||
|
||||
/**
|
||||
* 当前床位数
|
||||
*/
|
||||
currentBeds?: number;
|
||||
|
||||
/**
|
||||
* 房间面积(平方米)
|
||||
*/
|
||||
roomArea: number;
|
||||
|
||||
/**
|
||||
* 房间状态(0可用 1维修中 2停用)
|
||||
*/
|
||||
roomStatus: string;
|
||||
|
||||
/**
|
||||
* 删除标志(0代表存在 1代表删除)
|
||||
*/
|
||||
deleted: string;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
remark: string;
|
||||
|
||||
}
|
||||
|
||||
export interface DormRoomForm extends BaseEntity {
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
id?: string | number;
|
||||
|
||||
/**
|
||||
* 房间编号
|
||||
*/
|
||||
roomCode?: string;
|
||||
|
||||
/**
|
||||
* 房间名称
|
||||
*/
|
||||
roomName?: string;
|
||||
|
||||
/**
|
||||
* 所属宿舍楼ID
|
||||
*/
|
||||
buildingId?: string | number;
|
||||
|
||||
/**
|
||||
* 楼层
|
||||
*/
|
||||
floorNum?: number;
|
||||
|
||||
/**
|
||||
* 房间类型(1标准间 2 单人间 3 套间)
|
||||
*/
|
||||
roomType?: string;
|
||||
|
||||
/**
|
||||
* 实际床位数
|
||||
*/
|
||||
actualBeds?: number;
|
||||
|
||||
/**
|
||||
* 房间面积(平方米)
|
||||
*/
|
||||
roomArea?: number;
|
||||
|
||||
/**
|
||||
* 房间状态(0可用 1维修中 2停用)
|
||||
*/
|
||||
roomStatus?: string;
|
||||
|
||||
/**
|
||||
* 删除标志(0代表存在 1代表删除)
|
||||
*/
|
||||
deleted?: string;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
remark?: string;
|
||||
|
||||
}
|
||||
|
||||
export interface DormRoomQuery extends PageQuery {
|
||||
|
||||
/**
|
||||
* 房间编号
|
||||
*/
|
||||
roomCode?: string;
|
||||
|
||||
/**
|
||||
* 房间名称
|
||||
*/
|
||||
roomName?: string;
|
||||
|
||||
/**
|
||||
* 所属宿舍楼ID
|
||||
*/
|
||||
buildingId?: string | number;
|
||||
|
||||
/**
|
||||
* 楼层
|
||||
*/
|
||||
floorNum?: number;
|
||||
|
||||
/**
|
||||
* 房间类型(1标准间 2 单人间 3 套间)
|
||||
*/
|
||||
roomType?: string;
|
||||
|
||||
/**
|
||||
* 实际床位数
|
||||
*/
|
||||
actualBeds?: number;
|
||||
|
||||
/**
|
||||
* 房间面积(平方米)
|
||||
*/
|
||||
roomArea?: number;
|
||||
|
||||
/**
|
||||
* 房间状态(0可用 1维修中 2停用)
|
||||
*/
|
||||
roomStatus?: string;
|
||||
|
||||
/**
|
||||
* 删除标志(0代表存在 1代表删除)
|
||||
*/
|
||||
deleted?: string;
|
||||
|
||||
/**
|
||||
* 日期范围参数
|
||||
*/
|
||||
params?: any;
|
||||
}
|
||||
|
||||
|
||||
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+34
@@ -61,3 +61,37 @@ export const delDormManager = (id: string | number | Array<string | number>) =>
|
||||
method: 'delete'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 分配管理员数据范围
|
||||
* @param managerId 管理员ID
|
||||
* @param authType 授权类型(1全校级 2校区级 3宿舍区级 4楼栋级)
|
||||
* @param authSourceIds 授权来源ID列表
|
||||
*/
|
||||
export const assignScope = (managerId: string | number, authType: number, authSourceIds: (string | number)[]) => {
|
||||
return request({
|
||||
url: '/glysqgx/dormManagerSource/assignScope',
|
||||
method: 'post',
|
||||
params: {
|
||||
managerId,
|
||||
authType
|
||||
},
|
||||
data: authSourceIds
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取管理员授权范围名称
|
||||
* @param managerId 管理员ID
|
||||
* @param managerType 管理员类型
|
||||
*/
|
||||
export const getManagerScopeNames = (managerId: string | number, managerType: number) => {
|
||||
return request({
|
||||
url: '/glysqgx/dormManagerSource/getScopeNames',
|
||||
method: 'get',
|
||||
params: {
|
||||
managerId,
|
||||
managerType
|
||||
}
|
||||
});
|
||||
};
|
||||
+5
@@ -49,6 +49,11 @@ export interface DormManagerVO {
|
||||
*/
|
||||
remark: string;
|
||||
|
||||
/**
|
||||
* 授权范围名称(逗号分隔的字符串)
|
||||
*/
|
||||
scopeNames?: string;
|
||||
|
||||
}
|
||||
|
||||
export interface DormManagerForm extends BaseEntity {
|
||||
+12
-1
@@ -1,6 +1,6 @@
|
||||
import request from '@/utils/request';
|
||||
import { AxiosPromise } from 'axios';
|
||||
import { DormBuildingVO, DormBuildingForm, DormBuildingQuery } from '@/api/sslxx/dormBuilding/types';
|
||||
import { DormBuildingVO, DormBuildingForm, DormBuildingQuery, BuildingTreeSelectVo } from '@/api/sslxx/dormBuilding/types';
|
||||
|
||||
/**
|
||||
* 查询宿舍楼信息列表
|
||||
@@ -83,3 +83,14 @@ export const listAreaTreeData = (campusId?: string | number): AxiosPromise<any>
|
||||
params: { campusId }
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取宿舍楼树形结构数据(校区-宿舍区-宿舍楼三级结构)
|
||||
* 校区和宿舍区节点不可选,只有宿舍楼节点可以选择
|
||||
*/
|
||||
export const getBuildingTree = (): AxiosPromise<BuildingTreeSelectVo[]> => {
|
||||
return request({
|
||||
url: '/sslxx/dormBuilding/buildingTree',
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
@@ -0,0 +1,50 @@
|
||||
export interface DormBuildingVO {
|
||||
id: string | number;
|
||||
buildingCode: string;
|
||||
buildingName: string;
|
||||
areaId: string | number;
|
||||
campusId: string | number;
|
||||
buildingType: string;
|
||||
buildingDescription: string;
|
||||
sortOrder: number;
|
||||
createTime: string;
|
||||
createBy: string;
|
||||
updateTime: string;
|
||||
updateBy: string;
|
||||
remark: string;
|
||||
areaName?: string;
|
||||
campusName?: string;
|
||||
floors: number;
|
||||
}
|
||||
|
||||
export interface DormBuildingForm extends Omit<DormBuildingVO, 'createTime' | 'createBy' | 'updateTime' | 'updateBy' | 'areaName' | 'campusName'> {
|
||||
}
|
||||
|
||||
export interface DormBuildingQuery {
|
||||
buildingCode?: string;
|
||||
buildingName?: string;
|
||||
areaId?: string | number;
|
||||
campusId?: string | number;
|
||||
buildingType?: string;
|
||||
floors?: number;
|
||||
params?: Record<string, any>;
|
||||
}
|
||||
|
||||
/**
|
||||
* 宿舍楼树形结构节点
|
||||
*/
|
||||
export interface BuildingTreeSelectVo {
|
||||
id: number;
|
||||
label: string;
|
||||
nodeType: 'campus' | 'area' | 'building';
|
||||
disabled: boolean;
|
||||
children?: BuildingTreeSelectVo[];
|
||||
createBy?: number;
|
||||
createTime?: string;
|
||||
updateBy?: number;
|
||||
floors?: number;
|
||||
updateTime?: string;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import request from '@/utils/request';
|
||||
import { AxiosPromise } from 'axios';
|
||||
import { DormAreaVO, DormAreaForm, DormAreaQuery } from '@/api/ssqxx/dormArea/types';
|
||||
import { DormAreaVO, DormAreaForm, DormAreaQuery, TreeSelectVo } from '@/api/ssqxx/dormArea/types';
|
||||
|
||||
/**
|
||||
* 查询宿舍区信息列表
|
||||
@@ -61,3 +61,14 @@ export const delDormArea = (id: string | number | Array<string | number>) => {
|
||||
method: 'delete'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取宿舍区树形结构数据
|
||||
* 以校区为根节点,宿舍区为子节点的树形结构
|
||||
*/
|
||||
export const getAreaTree = (): AxiosPromise<TreeSelectVo[]> => {
|
||||
return request({
|
||||
url: '/ssqxx/dormArea/tree',
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
@@ -87,5 +87,21 @@ export interface DormAreaQuery extends PageQuery {
|
||||
params?: any;
|
||||
}
|
||||
|
||||
/**
|
||||
* 树形选择数据类型
|
||||
*/
|
||||
export interface TreeSelectVo {
|
||||
/** 节点ID */
|
||||
id: number;
|
||||
/** 节点名称 */
|
||||
label: string;
|
||||
/** 节点类型(campus:校区, area:宿舍区) */
|
||||
type: string;
|
||||
/** 是否禁用选择 */
|
||||
disabled: boolean;
|
||||
/** 子节点 */
|
||||
children?: TreeSelectVo[];
|
||||
}
|
||||
|
||||
|
||||
|
||||
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,264 @@
|
||||
import request from '@/utils/request';
|
||||
import { DormQuery, RoomForm, BedForm, DormTreeNode, RoomInfo, BedInfo } from './types';
|
||||
|
||||
// API前缀
|
||||
const baseUrl = '/xsssfjgl';
|
||||
|
||||
/**
|
||||
* 获取宿舍楼树形结构
|
||||
*/
|
||||
export function getDormTree() {
|
||||
return request({
|
||||
url: '/xgss/dormBuildingTree/list',
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取房间列表
|
||||
* @param query 查询条件
|
||||
* @returns 房间列表
|
||||
*/
|
||||
export function listRooms(query: DormQuery) {
|
||||
return request({
|
||||
url: baseUrl + '/room/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取房间详情
|
||||
* @param roomId 房间ID
|
||||
* @returns 房间详情
|
||||
*/
|
||||
export function getRoom(roomId: string | number) {
|
||||
return request({
|
||||
url: baseUrl + '/room/' + roomId,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增房间
|
||||
* @param data 房间信息
|
||||
* @returns 结果
|
||||
*/
|
||||
export function addRoom(data: RoomForm) {
|
||||
return request({
|
||||
url: baseUrl + '/room',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改房间
|
||||
* @param data 房间信息
|
||||
* @returns 结果
|
||||
*/
|
||||
export function updateRoom(data: RoomForm) {
|
||||
return request({
|
||||
url: baseUrl + '/room',
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除房间
|
||||
* @param roomIds 房间ID字符串
|
||||
* @returns 结果
|
||||
*/
|
||||
export function delRoom(roomIds: string | number) {
|
||||
return request({
|
||||
url: baseUrl + '/room/' + roomIds,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取床位列表
|
||||
* @param roomId 房间ID
|
||||
* @returns 床位列表
|
||||
*/
|
||||
export function listBeds(roomId: string | number) {
|
||||
return request({
|
||||
url: baseUrl + '/bed/list',
|
||||
method: 'get',
|
||||
params: { roomId }
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增床位
|
||||
* @param data 床位信息
|
||||
* @returns 结果
|
||||
*/
|
||||
export function addBed(data: BedForm) {
|
||||
return request({
|
||||
url: baseUrl + '/bed',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改床位
|
||||
* @param data 床位信息
|
||||
* @returns 结果
|
||||
*/
|
||||
export function updateBed(data: BedForm) {
|
||||
return request({
|
||||
url: baseUrl + '/bed',
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除床位
|
||||
* @param bedIds 床位ID字符串
|
||||
* @returns 结果
|
||||
*/
|
||||
export function delBed(bedIds: string | number) {
|
||||
return request({
|
||||
url: baseUrl + '/bed/' + bedIds,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
|
||||
// 模拟数据 - 在API接口完成前使用
|
||||
// 生成宿舍树形结构的模拟数据
|
||||
export function getMockDormTree(): { data: DormTreeNode[] } {
|
||||
const mockData: DormTreeNode[] = [
|
||||
{
|
||||
id: 1,
|
||||
label: '东校区',
|
||||
type: 'campus',
|
||||
disabled: true,
|
||||
children: [
|
||||
{
|
||||
id: 11,
|
||||
label: '东区宿舍',
|
||||
type: 'area',
|
||||
disabled: true,
|
||||
children: [
|
||||
{
|
||||
id: 111,
|
||||
label: '东区1号楼',
|
||||
type: 'building',
|
||||
buildingFloors: 6,
|
||||
gender: '1' // 男生楼
|
||||
},
|
||||
{
|
||||
id: 112,
|
||||
label: '东区2号楼',
|
||||
type: 'building',
|
||||
buildingFloors: 8,
|
||||
gender: '2' // 女生楼
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
label: '西校区',
|
||||
type: 'campus',
|
||||
disabled: true,
|
||||
children: [
|
||||
{
|
||||
id: 21,
|
||||
label: '西区宿舍',
|
||||
type: 'area',
|
||||
disabled: true,
|
||||
children: [
|
||||
{
|
||||
id: 211,
|
||||
label: '西区1号楼',
|
||||
type: 'building',
|
||||
buildingFloors: 7,
|
||||
gender: '2' // 女生楼
|
||||
},
|
||||
{
|
||||
id: 212,
|
||||
label: '西区2号楼',
|
||||
type: 'building',
|
||||
buildingFloors: 5,
|
||||
gender: '1' // 男生楼
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
return { data: mockData };
|
||||
}
|
||||
|
||||
// 生成房间数据的模拟数据
|
||||
export function getMockRooms(buildingId: string | number, floorNumber?: number): { rows: RoomInfo[], total: number } {
|
||||
const rooms: RoomInfo[] = [];
|
||||
|
||||
// 根据buildingId判断楼层数
|
||||
let floors = 6;
|
||||
if (buildingId === 112) floors = 8;
|
||||
else if (buildingId === 211) floors = 7;
|
||||
else if (buildingId === 212) floors = 5;
|
||||
|
||||
// 如果指定了楼层,只生成该楼层的数据
|
||||
const startFloor = floorNumber || 1;
|
||||
const endFloor = floorNumber || floors;
|
||||
|
||||
for (let floor = startFloor; floor <= endFloor; floor++) {
|
||||
for (let i = 1; i <= 10; i++) {
|
||||
const roomNumber = `${floor}${i.toString().padStart(2, '0')}`;
|
||||
rooms.push({
|
||||
roomId: `${buildingId}${roomNumber}`,
|
||||
roomName: roomNumber,
|
||||
floorNumber: floor,
|
||||
buildingId: buildingId,
|
||||
capacity: 4,
|
||||
used: Math.floor(Math.random() * 5),
|
||||
roomType: '标准间',
|
||||
status: Math.random() > 0.9 ? '1' : '0',
|
||||
remark: '',
|
||||
createBy: 'admin',
|
||||
createTime: '2023-01-01 00:00:00',
|
||||
updateBy: 'admin',
|
||||
updateTime: '2023-01-01 00:00:00'
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
rows: rooms.filter(room => !floorNumber || room.floorNumber === floorNumber),
|
||||
total: rooms.length
|
||||
};
|
||||
}
|
||||
|
||||
// 生成床位数据的模拟数据
|
||||
export function getMockBeds(roomId: string | number): { data: BedInfo[] } {
|
||||
const beds: BedInfo[] = [];
|
||||
const capacity = 4;
|
||||
|
||||
for (let i = 1; i <= capacity; i++) {
|
||||
const status = Math.random() > 0.6 ? '1' : '0';
|
||||
beds.push({
|
||||
bedId: `${roomId}-${i}`,
|
||||
bedName: `${i}号床`,
|
||||
roomId: roomId,
|
||||
status: status,
|
||||
studentId: status === '1' ? 10000 + Math.floor(Math.random() * 5000) : undefined,
|
||||
studentName: status === '1' ? `学生${Math.floor(Math.random() * 1000)}` : undefined,
|
||||
remark: '',
|
||||
createBy: 'admin',
|
||||
createTime: '2023-01-01 00:00:00',
|
||||
updateBy: 'admin',
|
||||
updateTime: '2023-01-01 00:00:00'
|
||||
});
|
||||
}
|
||||
|
||||
return { data: beds };
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
// 基础字段类型
|
||||
export interface BaseEntity {
|
||||
createBy: number | string;
|
||||
createTime: string;
|
||||
updateBy: number | string;
|
||||
updateTime: string;
|
||||
}
|
||||
|
||||
// 分页查询参数
|
||||
export interface PageQuery {
|
||||
pageNum: number;
|
||||
pageSize: number;
|
||||
}
|
||||
|
||||
// 树形数据节点类型
|
||||
export interface DormTreeNode {
|
||||
id: string | number;
|
||||
label: string;
|
||||
children?: DormTreeNode[];
|
||||
type: 'campus' | 'area' | 'building'; // 节点类型:校区、宿舍区、宿舍楼
|
||||
disabled?: boolean; // 是否禁用选择
|
||||
buildingFloors?: number; // 宿舍楼层数
|
||||
gender?: string; // 宿舍楼性别: 1-男生楼, 2-女生楼
|
||||
}
|
||||
|
||||
// 房间信息
|
||||
export interface RoomInfo extends BaseEntity {
|
||||
roomId: string | number;
|
||||
roomCode: string;
|
||||
roomName: string;
|
||||
floorNum: number;
|
||||
buildingId: string | number;
|
||||
capacity: number;
|
||||
used: number;
|
||||
roomArea: number;
|
||||
roomType: string;
|
||||
status: string; // 0-正常 1-维修中 2-停用
|
||||
remark: string;
|
||||
}
|
||||
|
||||
// 床位信息
|
||||
export interface BedInfo extends BaseEntity {
|
||||
bedId: string | number;
|
||||
bedName: string;
|
||||
roomId: string | number;
|
||||
status: string; // 0-空闲 1-已分配 2-维修中
|
||||
studentId?: string | number;
|
||||
studentName?: string;
|
||||
remark: string;
|
||||
}
|
||||
|
||||
// 查询参数
|
||||
export interface DormQuery extends PageQuery {
|
||||
buildingId?: string | number;
|
||||
roomName?: string;
|
||||
floorNum?: number;
|
||||
status?: string;
|
||||
}
|
||||
|
||||
// 房间表单
|
||||
export interface RoomForm {
|
||||
roomId?: string | number;
|
||||
roomCode: string;
|
||||
roomName: string;
|
||||
floorNum: number;
|
||||
buildingId: string | number;
|
||||
capacity: number;
|
||||
roomArea: number;
|
||||
roomType: string;
|
||||
status: string;
|
||||
remark?: string;
|
||||
}
|
||||
|
||||
// 床位表单
|
||||
export interface BedForm {
|
||||
id?: string | number;
|
||||
bedId?: string | number;
|
||||
bedCode: string;
|
||||
bedName: string;
|
||||
roomId: string | number;
|
||||
bedType: string;
|
||||
bedStatus: string;
|
||||
remark?: string;
|
||||
}
|
||||
File renamed without changes.
@@ -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