/** * 班级操行分管理系统 - 作业扣分页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() { 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 += `
暂无科目,请点击"添加科目"
'; } document.getElementById('subjectList').innerHTML = html; } } function showAddSubjectModal() { const form = document.getElementById('addSubjectFormInHw'); if (form) form.reset(); document.getElementById('addSubjectModal').style.display = 'flex'; } async function submitAddSubject() { const subjectName = document.getElementById('subjectName').value.trim(); const subjectCode = document.getElementById('subjectCode').value.trim(); if (!subjectName) { showToast('请填写科目名称', 'warning'); return; } const res = await apiPost('/api/subject/create', { subject_name: subjectName, subject_code: subjectCode }); if (res && res.success) { showToast('科目添加成功'); closeModal('addSubjectModal'); loadSubjectList(); loadSubjectsForHomework(); } else { showToast(res?.message || '添加失败', 'error'); } } async function toggleSubjectStatus(subjectId, enable) { const res = await apiPut(`/api/subject/update/${subjectId}`, { is_active: enable }); if (res && res.success) { showToast(enable ? '科目已启用' : '科目已禁用'); loadSubjectList(); loadSubjectsForHomework(); } else { showToast(res?.message || '操作失败', 'error'); } } async function deleteSubject(subjectId) { if (!confirm('确定要删除该科目吗?如果科目下有作业数据将无法删除。')) return; const res = await apiDelete('/api/subject/delete/' + subjectId); if (res && res.success) { showToast('科目删除成功'); loadSubjectList(); loadSubjectsForHomework(); } else { showToast(res?.message || '删除失败', 'error'); } } function showEditSubjectModal(subjectId, name, code, sortOrder) { document.getElementById('editSubjectId').value = subjectId; document.getElementById('editSubjectName').value = name; document.getElementById('editSubjectCode').value = code; document.getElementById('editSubjectSortOrder').value = sortOrder; document.getElementById('editSubjectModal').style.display = 'flex'; } async function submitEditSubject() { const subjectId = document.getElementById('editSubjectId').value; const subjectName = document.getElementById('editSubjectName').value.trim(); const subjectCode = document.getElementById('editSubjectCode').value.trim(); const sortOrder = document.getElementById('editSubjectSortOrder').value; if (!subjectName) { showToast('请填写科目名称', 'warning'); return; } const data = { subject_name: subjectName }; if (subjectCode) data.subject_code = subjectCode; if (sortOrder !== '') data.sort_order = parseInt(sortOrder); const res = await apiPut(`/api/subject/update/${subjectId}`, data); if (res && res.success) { showToast('科目更新成功'); closeModal('editSubjectModal'); loadSubjectList(); loadSubjectsForHomework(); } else { showToast(res?.message || '更新失败', 'error'); } } // 绑定科目管理折叠面板 var subjectHeader = document.getElementById('subjectPanelHeader'); if (subjectHeader) { subjectHeader.addEventListener('click', toggleSubjectPanel); } loadStudents(); loadSubjectsForHomework(); window.loadStudents = loadStudents; window.showSinglePointsModal = showSinglePointsModal; window.handleSubmitPoints = handleSubmitPoints; window.toggleSubjectPanel = toggleSubjectPanel; window.showAddSubjectModal = showAddSubjectModal; window.submitAddSubject = submitAddSubject; window.toggleSubjectStatus = toggleSubjectStatus; window.deleteSubject = deleteSubject; window.showEditSubjectModal = showEditSubjectModal; window.submitEditSubject = submitEditSubject; })();