// 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 += `
| ${index + 1} |
${row.studentNo} |
${row.banji} |
${(row.score * 100).toFixed(2)} |
${row.solve} |
${row.submit} |
${renderMultiLine(row.submited)} |
${renderMultiLine(row.doing)} |
${renderMultiLine(row.undo)} |
`;
});
table += `
`;
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();
};