/** * 班级操行分管理系统 - 作业管理页JS * * 开发者: Canglan * 版权归属: Sea Network Technology Studio * * 版权所有 © Sea Network Technology Studio */ (function() { 'use strict'; const hwRole = window.PAGE_CONFIG.role; // 初始化扣分配置 const hwMaxPoints = hwRole === '班主任' ? 100 : 5; const hwNotSubmit = window.DEDUCTION_HOMEWORK_NOT_SUBMIT || 2; const hwLate = window.DEDUCTION_HOMEWORK_LATE || 1; // 更新页面中的配置值显示 document.querySelectorAll('.hw-not-submit').forEach(el => el.textContent = hwNotSubmit); document.querySelectorAll('.hw-late').forEach(el => el.textContent = hwLate); document.querySelectorAll('.hw-max').forEach(el => el.textContent = hwMaxPoints); // 更新输入框的 min/max document.getElementById('pointsChange').setAttribute('min', -hwMaxPoints); document.getElementById('pointsChange').setAttribute('max', hwMaxPoints); // 加载科目列表(学习委员) async function loadSubjectsForHomework() { if (hwRole !== '学习委员') return; const subjectSelect = document.getElementById('hwSubjectSelect'); if (!subjectSelect) return; const res = await apiGet('/api/subject/list'); if (res && res.success && res.data && res.data.subjects) { let html = ''; res.data.subjects.forEach(s => { html += ``; }); subjectSelect.innerHTML = html; } } async function loadStudents() { const res = await apiGet('/api/admin/students', {page_size: 1000}); if (res && res.success) { let html = ''; res.data.students.forEach(student => { html += ` ${escapeHtml(student.student_no)} ${escapeHtml(student.name)} ${student.total_points} `; }); if (res.data.students.length === 0) { html = '暂无学生数据'; } document.getElementById('studentList').innerHTML = html; } } 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'; } function selectDeductionType(points, reason) { document.getElementById('pointsChange').value = points; if (points !== 0) { document.getElementById('pointsReason').value = reason; } else { document.getElementById('pointsReason').value = ''; document.getElementById('pointsReason').focus(); } } function handleSubmitPoints() { const pointsChange = parseInt(document.getElementById('pointsChange').value); if (isNaN(pointsChange) || pointsChange === 0) { showToast('请输入有效的加减分值', 'warning'); return; } if (Math.abs(pointsChange) > hwMaxPoints) { showToast(`每次加减分不超过${hwMaxPoints}分`, 'warning'); return; } // 学习委员附加科目前缀、具体作业和缴交时间 if (hwRole === '学习委员') { const subjectSelect = document.getElementById('hwSubjectSelect'); const subjectName = subjectSelect ? subjectSelect.value : ''; const hwTitle = document.getElementById('hwTitle').value.trim(); const hwDeadline = document.getElementById('hwDeadline').value; const reasonEl = document.getElementById('pointsReason'); let prefix = ''; if (subjectName) { prefix = `[${subjectName}]`; } if (hwTitle) { prefix += `[${hwTitle}]`; } if (hwDeadline) { prefix += ` 缴交:${hwDeadline}`; } if (prefix) { reasonEl.value = prefix + ' ' + reasonEl.value; } } submitBatchPoints(); } loadStudents(); loadSubjectsForHomework(); window.loadStudents = loadStudents; window.showSinglePointsModal = showSinglePointsModal; window.selectDeductionType = selectDeductionType; window.handleSubmitPoints = handleSubmitPoints; })();