var achievement = '成绩表'; var backupData = []; var dataTd = {}; function updateData(jsonData, type = 1) { var dataContainer = document.getElementById('dataContainer'); var html = ''; var data = jsonData; console.log('zhes' + type) if (type == 1) { backupData = data; dataTd = data[0].stepScroe; } var td = ''; var i = 1; let dataTdLength = Object.keys(dataTd).length; let isPc = dataTdLength == 27 ? 'pc' : 'vr'; let score = { "pc": [ 0.2, 0.1, 0.5, 0.5, 1, 0, 0.1, 0.1, 0.1, 0.4, 0.4, 1, 0.1, 0.1, 0.1, 0.2, 0.1, 2.5, 0.5, 0.5, 0.4, 0.3, 0.3, 0.3, 0.1, 0.1, 0.4 ], "vr": [ 0, 1, 5, 5, 5, 5, 1, 1, 1, 4, 4, 10, 6, 1, 1, 1, 1, 2, 1, 24, 5, 4, 5, 3, 1, 3 ], }; // console.log(score.vr.length) // console.log(dataTd,Object.keys(dataTd),dataTdLeng) if (dataTd) { td += '学号' + ''; for (obj in dataTd) { td += "" + i + '-' + obj + '-' + score[isPc][i - 1] + ''; i++; } td += '总得分' + ''; td += '创建时间' + ''; var tdContainer = document.getElementById('th'); tdContainer.innerHTML = td; } // 根据您的JSON数据结构,循环遍历并构建HTML字符串 // 这里假设jsonData是一个包含多个对象的数组,每个对象有学号、姓名、分数和考试时间属性 // let dataTdArray = Object.keys(dataTd); console.log(data, type, 55656) data.forEach(function (item) { html += ''; html += '' + item.number + ''; let key = 1; if (dataTd) { for (obj in dataTd) { let colorSuccess = 'red' if (item.stepScroe[obj] == score[isPc][key - 1]) { colorSuccess = 'colour'; } html += '' + item.stepScroe[obj] + ''; key++; } } html += '' + item.score + '_' + '(' + textChange(item.isExam) + ') '; html += '' + item.time.slice(0, 17) + ''; html += ''; // 添加分隔线 }); dataContainer.innerHTML = html; } function textChange(state) { let text = state ? '考试' : '练习'; return text; } function handleDragOver(e) { e.preventDefault(); dropArea.classList.add('dragover'); } function handleDragLeave(e) { e.preventDefault(); dropArea.classList.remove('dragover'); } function scanFiles(e) { const files = e.dataTransfer.files; // 获取拖拽的文件列表 const fileInput = document.getElementById('fileUpload'); for (let i = 0; i < files.length; i++) { const file = files[i]; // 将文件输出到文件输入框中 fileInput.files = files; // 在这里可以进行其他操作,例如上传到服务器或进行其他处理 } } function handleDragOver(e) { e.stopPropagation(); e.preventDefault(); } function handleFileSelect(e) { // fileInput.files = files; // e.stopPropagation(); e.preventDefault(); let item = e.dataTransfer; scanFiles(e); var files = []; [].forEach.call(e.dataTransfer.files, function (file) { files.push(file); }, false); for (var f of files) { var reader = new FileReader(); reader.readAsText(f); //读取文件的内容 reader.onload = function () { var jsonData = JSON.parse(this.result); // console.log(jsonData,36) updateData(jsonData); // console.log(this.result, 9998) }; } } function handSelect() { let id = document.getElementById('id').value; let time = document.getElementById('time').value; if (id || time) { let where = { id:[], time:[] }; if (id) { where['id'] = id.split("/"); } if (time) { where['time'] = time.split("/"); } const result = filterateSearch(backupData, where) updateData(result, 2) } } function filterateSearch(data, searchTerm) { // const conditions = ['b','r']; const conditions = searchTerm['id']; const timeConditions = searchTerm['time']; const filteredArr = data.filter(item => { let newDataName = conditions.every(condition => item.number.includes(condition)) let newDataTime = timeConditions.some(condition => item.time.includes(condition)); if (conditions.length >0 && timeConditions.length >0) { console.log(1) return newDataName && newDataTime; } if (conditions.length >0 && timeConditions.length == 0) { console.log(2) return newDataName; } if (timeConditions.length >0 && conditions.length == 0) { console.log(3) return newDataTime; } }); return filteredArr; }