survey/test_filter.html
2025-11-15 23:51:08 +08:00

77 lines
3.6 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>测试筛选功能</title>
</head>
<body>
<h1>测试筛选功能</h1>
<button onclick="testFiltering()">开始测试</button>
<div id="results"></div>
<script>
async function testFiltering() {
const resultsDiv = document.getElementById('results');
resultsDiv.innerHTML = '<p>正在测试...</p>';
try {
// 测试获取筛选条件
console.log('=== 测试获取筛选条件 ===');
const filtersResponse = await fetch('/api/filters');
const filtersResult = await filtersResponse.json();
console.log('筛选条件:', filtersResult);
// 测试获取题目
console.log('=== 测试获取题目 ===');
const questionsResponse = await fetch('/api/questions');
const questionsResult = await questionsResponse.json();
console.log('题目总数:', Object.keys(questionsResult).map(type => `${type}: ${questionsResult[type].length}`).join(', '));
// 测试筛选功能
console.log('=== 测试筛选功能 ===');
if (filtersResult.success) {
const subject = filtersResult.data.subjects[0] || '';
const grade = filtersResult.data.grades[0] || '';
const unit = filtersResult.data.units[0] || '';
console.log(`测试筛选: 学科=${subject}, 年级=${grade}, 单元=${unit}`);
// 构建筛选URL
const filterParams = new URLSearchParams({
subject: subject,
grade: grade,
unit: unit
});
const filteredResponse = await fetch(`/api/questions-by-filters?${filterParams}`);
const filteredResult = await filteredResponse.json();
console.log('筛选结果:', filteredResult);
if (filteredResult.success) {
const filteredQuestions = filteredResult.data;
const totalFiltered = Object.keys(filteredQuestions).reduce((sum, type) => sum + filteredQuestions[type].length, 0);
resultsDiv.innerHTML = `
<h2>测试结果</h2>
<p>原始题目总数: ${Object.keys(questionsResult).reduce((sum, type) => sum + questionsResult[type].length, 0)}</p>
<p>筛选条件: 学科=${subject}, 年级=${grade}, 单元=${unit}</p>
<p>筛选后题目总数: ${totalFiltered}</p>
<p>筛选后分布:</p>
<ul>
${Object.keys(filteredQuestions).map(type => `<li>${type}: ${filteredQuestions[type].length}题</li>`).join('')}
</ul>
<p>查看浏览器控制台获取详细信息</p>
`;
} else {
resultsDiv.innerHTML = `<p>筛选测试失败</p>`;
}
}
} catch (error) {
console.error('测试失败:', error);
resultsDiv.innerHTML = `<p>测试失败: ${error.message}</p>`;
}
}
</script>
</body>
</html>