import { requestClient } from '#/api/request'; export namespace StudentApi { /** 学生列表查询参数 */ export interface ListParams { page?: number; limit?: number; student_id?: string; name?: string; phone?: string; class_id?: number; school_id?: number; bind_status?: string; } /** 学生信息 */ export interface StudentInfo { id?: number; student_id?: string | null; name?: string; gender?: string; class_id?: number; phone?: string; email?: string; avatar?: string | null; remark?: string; status?: number; user_id?: number | null; create_time?: string; update_time?: string | null; class_name?: string; bind_status?: string; school_name?: string; [key: string]: any; } /** 学生详情参数 */ export interface DetailParams { id: number; } /** 保存学生参数 */ export interface SaveParams extends StudentInfo { id?: number; } /** 删除学生参数 */ export interface DeleteParams { id: number; } /** 更新学生状态参数 */ export interface StatusParams { id: number; status: number; } /** 解绑学生参数 */ export interface UnbindParams { id: number; } /** 上传学生导入文件参数 */ export interface UploadParams { file: File; } /** 导入学生数据参数 */ export interface ImportParams { class_id: number; file: string; } } /** * 获取学生列表 * GET /api/admin/student/list */ export async function getStudentListApi(params?: StudentApi.ListParams) { // 使用 responseReturn: 'body' 获取完整响应体 return requestClient.get('/api/admin/student/list', { params, responseReturn: 'body', }); } /** * 获取学生详情 * GET /api/admin/student/detail */ export async function getStudentDetailApi(params: StudentApi.DetailParams) { // 使用 responseReturn: 'body' 获取完整响应体 return requestClient.get('/api/admin/student/detail', { params, responseReturn: 'body', }); } /** * 保存学生(新增/编辑) * POST /api/admin/student/save */ export async function saveStudentApi(data: StudentApi.SaveParams) { return requestClient.post('/api/admin/student/save', data); } /** * 删除学生 * POST /api/admin/student/delete */ export async function deleteStudentApi(data: StudentApi.DeleteParams) { return requestClient.post('/api/admin/student/delete', data); } /** * 更新学生状态 * POST /api/admin/student/status */ export async function updateStudentStatusApi(data: StudentApi.StatusParams) { return requestClient.post('/api/admin/student/status', data); } /** * 解绑学生 * POST /api/admin/student/unbind */ export async function unbindStudentApi(data: StudentApi.UnbindParams) { return requestClient.post('/api/admin/student/unbind', data); } /** * 上传学生导入文件 * POST /api/admin/student/upload */ export async function uploadStudentFileApi(file: File) { const formData = new FormData(); formData.append('file', file); // 使用 responseReturn: 'body' 获取完整响应体 return requestClient.post('/api/admin/student/upload', formData, { headers: { 'Content-Type': 'multipart/form-data', }, responseReturn: 'body', }); } /** * 导入学生数据 * POST /api/admin/student/import */ export async function importStudentDataApi(data: StudentApi.ImportParams) { return requestClient.post('/api/admin/student/import', data); }