// API URL const apiUrl = 'http://www.52ac.tech/api/exam/getExamScoresByExamId2'; // 模拟获取考试名称的 API (你可以直接替换为真实的API) async function getExamNameById(examId) { // 模拟的API调用 return new Promise((resolve) => { setTimeout(() => { resolve({ name: '期中考试' }); }, 1000); }); } // 模拟获取成绩数据的 API (替换为真实的API) async function getExamScoresByExamId(data) { // 使用 Fetch 来调用 API const response = await fetch(apiUrl, { method: 'POST', //mode: 'no-cors', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(data) }); return response.json(); // 假设返回的数据为 JSON 格式 } // 渲染表格数据 function renderTable(data) { const tableContainer = document.getElementById('table-container'); if (!data || data.length === 0) { tableContainer.innerHTML = '

No data available.

'; return; } let table = ``; data.forEach((row, index) => { table += ``; }); table += `
序号 学号 班级 分数 题解数 提交数 已提交 正在做 未做
${index + 1} ${row.studentNo} ${row.banji} ${(row.score * 100).toFixed(2)} ${row.solve} ${row.submit} ${renderMultiLine(row.submited)} ${renderMultiLine(row.doing)} ${renderMultiLine(row.undo)}
`; tableContainer.innerHTML = table; } // 渲染多行文本内容 function renderMultiLine(array) { if (!array) return ''; return array.join('、').replace(/(.{10})/g, '$1\n'); } // 渲染分页 function renderPagination(total, pageSize, currentPage) { const paginationContainer = document.getElementById('pagination'); const totalPages = Math.ceil(total / pageSize); let paginationHTML = ''; for (let i = 1; i <= totalPages; i++) { paginationHTML += `${i} `; } paginationContainer.innerHTML = paginationHTML; // 添加分页点击事件 document.querySelectorAll('.page-item').forEach(item => { item.addEventListener('click', function () { const page = parseInt(this.getAttribute('data-page')); loadExamScores(page); }); }); } // 加载考试成绩 async function loadExamScores(pageNum = 1) { const examId = '362'; // 这里的 examId 根据实际情况获取 const pageSize = 100; const params = { examId: examId, fromclient: false, pageNum: pageNum, pageSize: pageSize }; try { const result = await getExamScoresByExamId(params); if (result.code === 0) { const data = result.data.list; renderTable(data); renderPagination(result.data.total, pageSize, pageNum); } else { document.getElementById('notifyMsg').innerText = result.message; } } catch (error) { console.error('Failed to fetch exam scores:', error); document.getElementById('notifyMsg').innerText = '获取本场考试成绩失败!'; } } // 获取并显示考试名称 async function loadExamName() { const examId = '362'; // 根据实际情况获取 examId try { const result = await getExamNameById(examId); document.getElementById('exam-name').innerText = `${result.name} 考试成绩`; } catch (error) { console.error('Failed to fetch exam name:', error); document.getElementById('notifyMsg').innerText = '获取考试信息失败'; } } // 页面加载时执行 window.onload = function () { loadExamName(); loadExamScores(); };