|
|
let globalStudent = null;
|
|
|
let globalnumber =0;
|
|
|
let houduan = "10.133.48.140:8000";
|
|
|
const generatedStrings = [];
|
|
|
async function uploadFile() {
|
|
|
const fileInput = document.getElementById('fileInput'); // 获取文件输入元素
|
|
|
const url = window.location.href;
|
|
|
console.log(fileInput);
|
|
|
// 创建一个 URL 对象
|
|
|
const urlObj = new URL(url);
|
|
|
|
|
|
// 使用 URLSearchParams 获取查询参数
|
|
|
const params = new URLSearchParams(urlObj.search);
|
|
|
|
|
|
// 获取 'number' 参数的值
|
|
|
globalnumber = params.get('number');
|
|
|
|
|
|
// 检查是否选中了文件
|
|
|
if (fileInput.files.length === 0) {
|
|
|
alert('请先选择一个文件!');
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
const file = fileInput.files[0]; // 获取第一个文件
|
|
|
|
|
|
// 检查文件类型
|
|
|
const allowedTypes = ['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.ms-excel']; // 允许的文件类型
|
|
|
if (!allowedTypes.includes(file.type)) {
|
|
|
alert('请上传有效的 Excel 文件!');
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
// 检查文件大小(例如:限制为 5MB)
|
|
|
const maxSize = 5 * 1024 * 1024; // 5MB
|
|
|
if (file.size > maxSize) {
|
|
|
alert('文件大小不能超过 5MB!');
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
const formData = new FormData();
|
|
|
formData.append('file', file);
|
|
|
|
|
|
try {
|
|
|
const response = await fetch(`http://10.133.48.140:8000/${globalnumber}/upload`, {
|
|
|
method: 'POST',
|
|
|
body: formData
|
|
|
});
|
|
|
|
|
|
if (!response.ok) {
|
|
|
throw new Error('文件上传失败。');
|
|
|
}
|
|
|
|
|
|
const data = await response.json();
|
|
|
alert(data.message);
|
|
|
|
|
|
}
|
|
|
catch (error) {
|
|
|
console.error('错误:', error);
|
|
|
alert('上传失败: ' + error.message);
|
|
|
}
|
|
|
}
|
|
|
async function getRandomStudent() {
|
|
|
const urlObj = new URL(url);
|
|
|
|
|
|
// 使用 URLSearchParams 获取查询参数
|
|
|
const params = new URLSearchParams(urlObj.search);
|
|
|
|
|
|
// 获取 'number' 参数的值
|
|
|
globalnumber = params.get('number');
|
|
|
console.log('haha');
|
|
|
const response = await fetch(`http://10.133.48.140:8000/${globalnumber}/random-call`,
|
|
|
{
|
|
|
method: 'POST',
|
|
|
});
|
|
|
const student = await response.json();
|
|
|
|
|
|
globalStudent=student;
|
|
|
console.log(student);
|
|
|
|
|
|
if(!generatedStrings.includes(student.id))
|
|
|
{
|
|
|
generatedStrings.push(student.id);
|
|
|
changepoints(1);
|
|
|
}
|
|
|
document.getElementById('picked').innerText = `${student.name} \n 学号:${student.id} \n积分:${student.points}`;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
async function createroom() {
|
|
|
const roomNumber = document.getElementById('roomNumber').value;
|
|
|
if (roomNumber.trim() === '') {
|
|
|
alert('房间号码不能为空!');
|
|
|
this.isModalVisible = false;
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
globalnumber = roomNumber;
|
|
|
console.log(roomNumber);
|
|
|
try {
|
|
|
const response = await fetch(`http://10.133.48.140:8000/create-class/${globalnumber}`, {
|
|
|
method: 'POST',
|
|
|
});
|
|
|
|
|
|
if (!response.ok) {
|
|
|
throw new Error('文件上传失败。');
|
|
|
}
|
|
|
|
|
|
const data = await response.json(); // 解析响应数据(假设返回的是 JSON 格式)
|
|
|
console.log('房间创建成功:', data); // 输出成功消息或处理数据
|
|
|
alert(data.message);
|
|
|
|
|
|
} catch (error) {
|
|
|
console.error('发生错误:', error.message); // 输出错误信息
|
|
|
alert(`连接后端服务器失败: ${error.message}`); // 弹窗显示错误信息
|
|
|
}
|
|
|
|
|
|
setTimeout(() => {
|
|
|
window.location.href = `index.html?number=${roomNumber}`;
|
|
|
}, 300); // 等待1秒
|
|
|
|
|
|
}
|
|
|
|
|
|
async function charoom() {
|
|
|
const roomNumber = document.getElementById('roomNumber').value;
|
|
|
if (roomNumber.trim() === '') {
|
|
|
alert('房间号码不能为空!');
|
|
|
this.isModalVisible = false;
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
globalnumber = roomNumber;
|
|
|
console.log(roomNumber);
|
|
|
try {
|
|
|
const response = await fetch(`http://10.133.48.140:8000/${globalnumber}/search-room`, {
|
|
|
method: 'POST',
|
|
|
});
|
|
|
|
|
|
if (!response.ok) {
|
|
|
throw new Error('连接失败。');
|
|
|
}
|
|
|
|
|
|
const data = await response.json(); // 解析响应数据(假设返回的是 JSON 格式)
|
|
|
alert(data.message);
|
|
|
if(data.message=="班级存在")
|
|
|
{
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
else
|
|
|
{
|
|
|
return 2;
|
|
|
}
|
|
|
} catch (error) {
|
|
|
console.error('发生错误:', error.message); // 输出错误信息
|
|
|
alert(`连接后端服务器失败: ${error.message}`); // 弹窗显示错误信息
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
async function changepoints(chan)
|
|
|
{
|
|
|
const idi = globalStudent.id;
|
|
|
const namei = globalStudent.name;
|
|
|
const pointsi = chan;
|
|
|
globalStudent.points+=chan;
|
|
|
|
|
|
const response = await fetch(`http://10.133.48.140:8000/${globalnumber}/change-points`,
|
|
|
{
|
|
|
method: 'POST',
|
|
|
headers: {
|
|
|
'Content-Type': 'application/json',
|
|
|
},
|
|
|
body: JSON.stringify({
|
|
|
id: String(idi),
|
|
|
name: String(namei),
|
|
|
points: parseFloat(pointsi)
|
|
|
}),
|
|
|
});
|
|
|
response.json().then(result => {
|
|
|
console.log(result); // 输出 Promise 的结果
|
|
|
}).catch(error => {
|
|
|
console.error("发生错误:", error);
|
|
|
});
|
|
|
document.getElementById('picked').innerText = `${globalStudent.name} \n 学号:${globalStudent.id} \n积分:${globalStudent.points}`;
|
|
|
|
|
|
}
|
|
|
|
|
|
function animateImage() {
|
|
|
const imageContainer = document.querySelector('.image-container');
|
|
|
|
|
|
// Step 1: 从右边弹出
|
|
|
imageContainer.style.right = '50%'; // 中间位置
|
|
|
imageContainer.style.transform = 'translate(50%, 0) rotate(360deg)'; // 转动
|
|
|
|
|
|
// Step 2: 等待旋转后从左边出去
|
|
|
setTimeout(() => {
|
|
|
imageContainer.style.right = '100%'; // 从左边出去
|
|
|
imageContainer.style.transform = 'translate(0, 0)'; // 重置旋转
|
|
|
}, 2000); // 旋转时间与动画匹配
|
|
|
}
|
|
|
|
|
|
|