/** * 班级操行分管理系统 - 管理员管理页JS * * 开发者: Canglan * 版权归属: Sea Network Technology Studio * * 版权所有 © Sea Network Technology Studio */ (function() { 'use strict'; let currentEditUserId = null; let currentResetUserId = null; async function loadAdmins() { const res = await apiGet('/api/admin/list'); if (res && res.success) { let html = ''; res.data.admins.forEach(admin => { html += ` ${escapeHtml(admin.username)} ${escapeHtml(admin.real_name)} ${escapeHtml(admin.role_type)} `; }); if (res.data.admins.length === 0) { html = '暂无管理员'; } document.getElementById('adminList').innerHTML = html; } } function showEditAdminModal(userId, username, realName, roleType) { currentEditUserId = userId; document.getElementById('editAdminUserId').value = userId; document.getElementById('editAdminUsername').value = username; document.getElementById('editAdminRealName').value = realName; document.getElementById('editAdminRole').value = roleType; document.getElementById('editAdminModal').style.display = 'flex'; } async function submitEditAdmin() { if (!currentEditUserId) return; const roleType = document.getElementById('editAdminRole').value; if (!roleType) { showToast('请选择角色', 'warning'); return; } const res = await apiPut(`/api/admin/update/${currentEditUserId}`, { real_name: document.getElementById('editAdminRealName').value, role_type: roleType }); if (res && res.success) { showToast('管理员更新成功'); closeModal('editAdminModal'); loadAdmins(); } else { showToast(res?.message || '更新失败', 'error'); } } async function deleteAdmin(userId, realName) { if (!confirm(`确定要删除管理员 "${realName}" 吗?此操作不可恢复。`)) { return; } const res = await apiDelete(`/api/admin/delete/${userId}`); if (res && res.success) { showToast('管理员删除成功'); loadAdmins(); } else { showToast(res?.message || '删除失败', 'error'); } } function resetAdminPassword(userId, realName) { currentResetUserId = userId; document.getElementById('resetPasswordUserId').value = userId; document.getElementById('resetPasswordAdminName').value = realName; document.getElementById('newPassword').value = ''; document.getElementById('resetPasswordModal').style.display = 'flex'; } async function unlockUser(username, realName) { if (!confirm(`确定要解除用户 "${realName}" 的登录锁定吗?\n(适用于多次登录失败被禁止登录的情况)`)) { return; } const res = await apiPost('/api/admin/unlock-user', { username: username }); if (res && res.success) { showToast(res.message || '解锁成功'); } else { showToast(res?.message || '解锁失败', 'error'); } } async function submitResetPassword() { if (!currentResetUserId) return; const newPassword = document.getElementById('newPassword').value; if (!newPassword || newPassword.length < 6) { showToast('密码长度至少6位', 'warning'); return; } const res = await apiPost(`/api/admin/reset-password/${currentResetUserId}`, { new_password: newPassword }); if (res && res.success) { showToast('密码重置成功'); closeModal('resetPasswordModal'); } else { showToast(res?.message || '密码重置失败', 'error'); } } loadAdmins(); window.loadAdmins = loadAdmins; window.showEditAdminModal = showEditAdminModal; window.submitEditAdmin = submitEditAdmin; window.deleteAdmin = deleteAdmin; window.resetAdminPassword = resetAdminPassword; window.unlockUser = unlockUser; window.submitResetPassword = submitResetPassword; })();