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 => { // 实际项目中连接后端接口 // return request({ // url: '/system/user/deptTree', // method: 'get', // params: { // belongDeptId // } // }); return request({ url: '/xgStudentManagerSource/studentManagerSource/currentUserAuthTree', method: 'get' }); // // 模拟数据,直接返回与页面组件期望格式一致的数据 // return Promise.resolve({ // data: mockDeptTree, // status: 200, // statusText: 'OK', // headers: {}, // config: {} as any // }) as any; }; // 查询学生列表 export function listStudent(query?: StudentQuery): AxiosPromise>> { // 实际使用时连接后端接口 // 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> { 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> { // 实际使用时连接后端接口 // return request({ // url: '/studentMsg/student', // method: 'post', // data: data // }); // 模拟数据 return Promise.resolve({ data: { code: 200, msg: '添加成功' } } as any); } // 修改学生 export function updateStudent(data: StudentForm): AxiosPromise> { // 实际使用时连接后端接口 // 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): AxiosPromise> { // 实际使用时连接后端接口 // return request({ // url: '/studentMsg/student/' + studentId, // method: 'delete' // }); // 模拟数据 return Promise.resolve({ data: { code: 200, msg: '删除成功' } } as any); } // 查询院系树结构 export function deptTreeSelect(): AxiosPromise> { // 实际使用时连接后端接口 // 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 { // 实际使用时连接后端接口 // 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> { // 实际使用时连接后端接口 // 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 };