提交代码,在sys_user表中新增了account_type字段来区分学生和老师
This commit is contained in:
1 parent
b215f7b9b3
commit
0c6d70cc4c
26 files changed
+5917
-3
No files matched your search
@@ -0,0 +1,65 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
// 获取管理员列表
|
||||
export function getAdminList(params?: any) {
|
||||
// 根据不同类型构造不同参数
|
||||
return request({
|
||||
url: '/studentMsg/admin/list',
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 新增管理员
|
||||
export function addAdmin(data: any) {
|
||||
return request({
|
||||
url: '/studentMsg/admin',
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 更新管理员
|
||||
export function updateAdmin(data: any) {
|
||||
return request({
|
||||
url: '/studentMsg/admin',
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 删除管理员
|
||||
export function deleteAdmin(id: number | string) {
|
||||
return request({
|
||||
url: `/studentMsg/admin/${id}`,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
|
||||
// 分配范围
|
||||
export function assignScope(params: any, data: any) {
|
||||
return request({
|
||||
url: '/studentMsg/admin/assignScope',
|
||||
method: 'post',
|
||||
params,
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 获取范围名称
|
||||
export function getScopeNames(params: any) {
|
||||
return request({
|
||||
url: '/studentMsg/admin/getScopeNames',
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 获取可分配的范围
|
||||
export function getScopeOptions(type: string) {
|
||||
return request({
|
||||
url: '/studentMsg/admin/getScopeOptions',
|
||||
method: 'get',
|
||||
params: { type }
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,424 @@
|
||||
import request from '@/utils/request';
|
||||
import { AxiosPromise } from 'axios';
|
||||
import { StudentQuery, StudentVO, StudentForm, XgDeptTreeVO, R, TableDataInfo } from './types';
|
||||
|
||||
|
||||
/**
|
||||
* 查询部门下拉树结构
|
||||
* @param deptId 部门ID
|
||||
*/
|
||||
export const XgDeptTreeSelect = (belongDeptId?: number): AxiosPromise<XgDeptTreeVO[]> => {
|
||||
// 实际项目中连接后端接口
|
||||
return request({
|
||||
url: '/system/user/deptTree',
|
||||
method: 'get',
|
||||
params: {
|
||||
belongDeptId
|
||||
}
|
||||
});
|
||||
|
||||
// // 模拟数据,直接返回与页面组件期望格式一致的数据
|
||||
// return Promise.resolve({
|
||||
// data: mockDeptTree,
|
||||
// status: 200,
|
||||
// statusText: 'OK',
|
||||
// headers: {},
|
||||
// config: {} as any
|
||||
// }) as any;
|
||||
};
|
||||
|
||||
|
||||
// 查询学生列表
|
||||
export function listStudent(query?: StudentQuery): AxiosPromise<R<TableDataInfo<StudentVO[]>>> {
|
||||
// 实际使用时连接后端接口
|
||||
// return request({
|
||||
// url: '/studentMsg/student/list',
|
||||
// method: 'get',
|
||||
// params: query
|
||||
// });
|
||||
|
||||
// 模拟数据
|
||||
return Promise.resolve({
|
||||
data: {
|
||||
code: 200,
|
||||
msg: 'success',
|
||||
data: {
|
||||
total: mockStudentData.length,
|
||||
rows: mockStudentData
|
||||
}
|
||||
}
|
||||
} as any);
|
||||
}
|
||||
|
||||
// 查询学生详细
|
||||
export function getStudent(studentId?: string | number): AxiosPromise<R<{
|
||||
student: StudentVO;
|
||||
majors: any[];
|
||||
classes: any[];
|
||||
}>> {
|
||||
if (studentId) {
|
||||
// 实际使用时连接后端接口
|
||||
// return request({
|
||||
// url: '/studentMsg/student/' + studentId,
|
||||
// method: 'get'
|
||||
// });
|
||||
|
||||
// 模拟数据
|
||||
const student = mockStudentData.find(item => item.studentId === studentId);
|
||||
return Promise.resolve({
|
||||
data: {
|
||||
code: 200,
|
||||
msg: 'success',
|
||||
data: {
|
||||
student: student || {},
|
||||
majors: mockMajors,
|
||||
classes: mockClasses
|
||||
}
|
||||
}
|
||||
} as any);
|
||||
} else {
|
||||
// 新增时返回初始空对象和选项数据
|
||||
return Promise.resolve({
|
||||
data: {
|
||||
code: 200,
|
||||
msg: 'success',
|
||||
data: {
|
||||
student: {},
|
||||
majors: mockMajors,
|
||||
classes: mockClasses
|
||||
}
|
||||
}
|
||||
} as any);
|
||||
}
|
||||
}
|
||||
|
||||
// 新增学生
|
||||
export function addStudent(data: StudentForm): AxiosPromise<R<any>> {
|
||||
// 实际使用时连接后端接口
|
||||
// return request({
|
||||
// url: '/studentMsg/student',
|
||||
// method: 'post',
|
||||
// data: data
|
||||
// });
|
||||
|
||||
// 模拟数据
|
||||
return Promise.resolve({
|
||||
data: {
|
||||
code: 200,
|
||||
msg: '添加成功'
|
||||
}
|
||||
} as any);
|
||||
}
|
||||
|
||||
// 修改学生
|
||||
export function updateStudent(data: StudentForm): AxiosPromise<R<any>> {
|
||||
// 实际使用时连接后端接口
|
||||
// return request({
|
||||
// url: '/studentMsg/student',
|
||||
// method: 'put',
|
||||
// data: data
|
||||
// });
|
||||
|
||||
// 模拟数据
|
||||
return Promise.resolve({
|
||||
data: {
|
||||
code: 200,
|
||||
msg: '修改成功'
|
||||
}
|
||||
} as any);
|
||||
}
|
||||
|
||||
// 删除学生
|
||||
export function delStudent(studentId: string | number | Array<string | number>): AxiosPromise<R<any>> {
|
||||
// 实际使用时连接后端接口
|
||||
// return request({
|
||||
// url: '/studentMsg/student/' + studentId,
|
||||
// method: 'delete'
|
||||
// });
|
||||
|
||||
// 模拟数据
|
||||
return Promise.resolve({
|
||||
data: {
|
||||
code: 200,
|
||||
msg: '删除成功'
|
||||
}
|
||||
} as any);
|
||||
}
|
||||
|
||||
// 查询院系树结构
|
||||
export function deptTreeSelect(): AxiosPromise<R<any>> {
|
||||
// 实际使用时连接后端接口
|
||||
// return request({
|
||||
// url: '/studentMsg/dept/treeselect',
|
||||
// method: 'get'
|
||||
// });
|
||||
|
||||
// 模拟数据
|
||||
return Promise.resolve({
|
||||
data: {
|
||||
code: 200,
|
||||
msg: 'success',
|
||||
data: mockDeptTree
|
||||
}
|
||||
} as any);
|
||||
}
|
||||
|
||||
// 导出学生
|
||||
export function exportStudent(query?: StudentQuery): AxiosPromise<any> {
|
||||
// 实际使用时连接后端接口
|
||||
// return request({
|
||||
// url: '/studentMsg/student/export',
|
||||
// method: 'get',
|
||||
// params: query
|
||||
// });
|
||||
|
||||
// 模拟数据
|
||||
return Promise.resolve({
|
||||
data: mockStudentData,
|
||||
status: 200,
|
||||
statusText: 'OK',
|
||||
headers: {},
|
||||
config: {} as any
|
||||
}) as any;
|
||||
}
|
||||
|
||||
// 学生状态修改
|
||||
export function changeStudentStatus(studentId: string | number, status: string): AxiosPromise<R<any>> {
|
||||
// 实际使用时连接后端接口
|
||||
// return request({
|
||||
// url: '/studentMsg/student/changeStatus',
|
||||
// method: 'put',
|
||||
// data: {
|
||||
// studentId,
|
||||
// status
|
||||
// }
|
||||
// });
|
||||
|
||||
// 模拟数据
|
||||
return Promise.resolve({
|
||||
data: {
|
||||
code: 200,
|
||||
msg: '状态修改成功'
|
||||
}
|
||||
} as any);
|
||||
}
|
||||
|
||||
// 模拟数据 - 学生列表
|
||||
const mockStudentData: StudentVO[] = [
|
||||
{
|
||||
studentId: 1,
|
||||
studentNo: '202001001',
|
||||
studentName: '张三',
|
||||
nickName: '小张',
|
||||
sex: '0',
|
||||
age: 20,
|
||||
phonenumber: '13800138001',
|
||||
email: 'zhangsan@example.com',
|
||||
idCard: '110101200101011234',
|
||||
deptId: 105,
|
||||
deptName: '计算机科学与技术系',
|
||||
majorId: 1,
|
||||
majorName: '计算机科学与技术',
|
||||
classId: 101,
|
||||
className: '计算机2001班',
|
||||
address: '北京市海淀区',
|
||||
status: '0',
|
||||
createTime: '2023-01-01 10:00:00',
|
||||
remark: ''
|
||||
},
|
||||
{
|
||||
studentId: 2,
|
||||
studentNo: '202001002',
|
||||
studentName: '李四',
|
||||
nickName: '小李',
|
||||
sex: '0',
|
||||
age: 21,
|
||||
phonenumber: '13800138002',
|
||||
email: 'lisi@example.com',
|
||||
idCard: '110101200001011235',
|
||||
deptId: 105,
|
||||
deptName: '计算机科学与技术系',
|
||||
majorId: 1,
|
||||
majorName: '计算机科学与技术',
|
||||
classId: 101,
|
||||
className: '计算机2001班',
|
||||
address: '上海市浦东新区',
|
||||
status: '0',
|
||||
createTime: '2023-01-01 10:10:00',
|
||||
remark: ''
|
||||
},
|
||||
{
|
||||
studentId: 3,
|
||||
studentNo: '202001003',
|
||||
studentName: '王五',
|
||||
nickName: '小王',
|
||||
sex: '0',
|
||||
age: 19,
|
||||
phonenumber: '13800138003',
|
||||
email: 'wangwu@example.com',
|
||||
idCard: '110101200201011236',
|
||||
deptId: 106,
|
||||
deptName: '软件工程系',
|
||||
majorId: 2,
|
||||
majorName: '软件工程',
|
||||
classId: 201,
|
||||
className: '软工2001班',
|
||||
address: '广州市天河区',
|
||||
status: '0',
|
||||
createTime: '2023-01-02 09:00:00',
|
||||
remark: ''
|
||||
},
|
||||
{
|
||||
studentId: 4,
|
||||
studentNo: '202001004',
|
||||
studentName: '赵六',
|
||||
nickName: '小赵',
|
||||
sex: '1',
|
||||
age: 20,
|
||||
phonenumber: '13800138004',
|
||||
email: 'zhaoliu@example.com',
|
||||
idCard: '110101200101011237',
|
||||
deptId: 106,
|
||||
deptName: '软件工程系',
|
||||
majorId: 2,
|
||||
majorName: '软件工程',
|
||||
classId: 201,
|
||||
className: '软工2001班',
|
||||
address: '深圳市南山区',
|
||||
status: '0',
|
||||
createTime: '2023-01-02 10:30:00',
|
||||
remark: ''
|
||||
},
|
||||
{
|
||||
studentId: 5,
|
||||
studentNo: '202001005',
|
||||
studentName: '钱七',
|
||||
nickName: '小钱',
|
||||
sex: '1',
|
||||
age: 21,
|
||||
phonenumber: '13800138005',
|
||||
email: 'qianqi@example.com',
|
||||
idCard: '110101200001011238',
|
||||
deptId: 107,
|
||||
deptName: '人工智能系',
|
||||
majorId: 3,
|
||||
majorName: '人工智能',
|
||||
classId: 301,
|
||||
className: '人工智能2001班',
|
||||
address: '杭州市西湖区',
|
||||
status: '1', // 停用状态
|
||||
createTime: '2023-01-03 11:20:00',
|
||||
remark: '休学中'
|
||||
}
|
||||
];
|
||||
|
||||
// 模拟数据 - 院系树
|
||||
const mockDeptTree = [
|
||||
{
|
||||
id: 100,
|
||||
label: '信息学院',
|
||||
children: [
|
||||
{
|
||||
id: 105,
|
||||
label: '计算机科学与技术系',
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: 106,
|
||||
label: '软件工程系',
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: 107,
|
||||
label: '人工智能系',
|
||||
children: []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 200,
|
||||
label: '经济管理学院',
|
||||
children: [
|
||||
{
|
||||
id: 205,
|
||||
label: '市场营销系',
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: 206,
|
||||
label: '财务管理系',
|
||||
children: []
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
// 模拟数据 - 专业
|
||||
const mockMajors = [
|
||||
{
|
||||
majorId: 1,
|
||||
majorName: '计算机科学与技术',
|
||||
deptId: 105
|
||||
},
|
||||
{
|
||||
majorId: 2,
|
||||
majorName: '软件工程',
|
||||
deptId: 106
|
||||
},
|
||||
{
|
||||
majorId: 3,
|
||||
majorName: '人工智能',
|
||||
deptId: 107
|
||||
},
|
||||
{
|
||||
majorId: 4,
|
||||
majorName: '市场营销',
|
||||
deptId: 205
|
||||
},
|
||||
{
|
||||
majorId: 5,
|
||||
majorName: '财务管理',
|
||||
deptId: 206
|
||||
}
|
||||
];
|
||||
|
||||
// 模拟数据 - 班级
|
||||
const mockClasses = [
|
||||
{
|
||||
classId: 101,
|
||||
className: '计算机2001班',
|
||||
majorId: 1
|
||||
},
|
||||
{
|
||||
classId: 102,
|
||||
className: '计算机2002班',
|
||||
majorId: 1
|
||||
},
|
||||
{
|
||||
classId: 201,
|
||||
className: '软工2001班',
|
||||
majorId: 2
|
||||
},
|
||||
{
|
||||
classId: 202,
|
||||
className: '软工2002班',
|
||||
majorId: 2
|
||||
},
|
||||
{
|
||||
classId: 301,
|
||||
className: '人工智能2001班',
|
||||
majorId: 3
|
||||
},
|
||||
{
|
||||
classId: 401,
|
||||
className: '市场营销2001班',
|
||||
majorId: 4
|
||||
},
|
||||
{
|
||||
classId: 501,
|
||||
className: '财务管理2001班',
|
||||
majorId: 5
|
||||
}
|
||||
];
|
||||
|
||||
export default { listStudent, getStudent, addStudent, updateStudent, delStudent, deptTreeSelect, exportStudent, changeStudentStatus, XgDeptTreeSelect };
|
||||
@@ -0,0 +1,63 @@
|
||||
import request from '@/utils/request';
|
||||
import { AxiosPromise } from 'axios';
|
||||
import { StudentMsgVO, StudentMsgForm, StudentMsgQuery } from '@/api/studentMsg/studentMsg/types';
|
||||
|
||||
/**
|
||||
* 查询学生信息列表
|
||||
* @param query
|
||||
* @returns {*}
|
||||
*/
|
||||
|
||||
export const listStudentMsg = (query?: StudentMsgQuery): AxiosPromise<StudentMsgVO[]> => {
|
||||
return request({
|
||||
url: '/studentMsg/studentMsg/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 查询学生信息详细
|
||||
* @param id
|
||||
*/
|
||||
export const getStudentMsg = (id: string | number): AxiosPromise<StudentMsgVO> => {
|
||||
return request({
|
||||
url: '/studentMsg/studentMsg/' + id,
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 新增学生信息
|
||||
* @param data
|
||||
*/
|
||||
export const addStudentMsg = (data: StudentMsgForm) => {
|
||||
return request({
|
||||
url: '/studentMsg/studentMsg',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 修改学生信息
|
||||
* @param data
|
||||
*/
|
||||
export const updateStudentMsg = (data: StudentMsgForm) => {
|
||||
return request({
|
||||
url: '/studentMsg/studentMsg',
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 删除学生信息
|
||||
* @param id
|
||||
*/
|
||||
export const delStudentMsg = (id: string | number | Array<string | number>) => {
|
||||
return request({
|
||||
url: '/studentMsg/studentMsg/' + id,
|
||||
method: 'delete'
|
||||
});
|
||||
};
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,80 @@
|
||||
/**
|
||||
* 部门树结构
|
||||
*/
|
||||
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;
|
||||
}
|
||||
Reference in new issue
Block a user