/** * 多班级版班级管理系统 - 学生管理页JS * * 开发者: Canglan * 版权归属: Sea Network Technology Studio * * 版权所有 © Sea Network Technology Studio */ (function() { 'use strict'; const userRole = window.PAGE_CONFIG.role; let currentPage = 1; let totalPages = 1; async function loadStudents(page = 1) { currentPage = page; const search = document.getElementById('searchInput').value; const res = await apiGet('/api/admin/students', { page, page_size: 20, search }); if (res && res.success) { let html = ''; res.data.students.forEach(student => { html += ` ${escapeHtml(student.student_no)} ${escapeHtml(student.name)} ${escapeHtml(student.dormitory_number || '-')} ${student.total_points} ${userRole === '班主任' ? `${student.parent_account ? student.parent_account.slice(0,3) + '******' + student.parent_account.slice(-2) : '-'}` : ''}
${userRole === '班主任' ? `
编辑 重置密码 解锁 删除
` : ''}
`; }); if (res.data.students.length === 0) { html = `暂无学生数据`; } document.getElementById('studentList').innerHTML = html; totalPages = res.data.total_pages || 1; renderPagination(); } } function renderPagination() { renderSmartPagination('pagination', currentPage, totalPages, function(page) { loadStudents(page); }); } function showSinglePointsModal(studentId, studentName) { window.selectedStudentIds = [studentId]; document.getElementById('selectedStudentsCount').innerHTML = `${studentName} (1人)`; document.getElementById('pointsChange').value = ''; document.getElementById('pointsReason').value = ''; document.getElementById('batchPointsModal').style.display = 'flex'; } async function unlockStudent(studentNo, studentName) { if (!confirm(`确定要解除学生 "${studentName}" 的登录锁定吗?\n(适用于多次登录失败被禁止登录的情况)`)) { return; } const res = await apiPost('/api/admin/unlock-user', { username: studentNo }); if (res && res.success) { showToast(res.message || '解锁成功'); } else { showToast(res?.message || '解锁失败', 'error'); } } loadStudents(); let searchTimeout; document.getElementById('searchInput').addEventListener('input', () => { clearTimeout(searchTimeout); searchTimeout = setTimeout(() => loadStudents(1), 500); }); window.loadStudents = loadStudents; window.showSinglePointsModal = showSinglePointsModal; window.unlockStudent = unlockStudent; })();