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) { time = time.split("一"); let time1 = time[0]+ " 00:00:00"; let time2 = time[1]+ " 23:59:59"; where['time1'] = new Date(time1).getTime()/1000; where['time2'] = new Date(time2).getTime()/1000; } const result = filterateSearch(backupData, where) console.log(77777,result) if (result.length >= 1) { console.log(8888888) updateData(result, 2) return; }else ( alert('符合的数据为空,请更改数据搜索条件') ) return; } else { if (backupData.length >= 1) { updateData(backupData) return; } } alert('符合的数据为空,请更改数据搜索条件'); } function filterateSearch(data, searchTerm) { const conditions = searchTerm['id']; const time1 = searchTerm['time1']?searchTerm['time1']:'1674541121'; const time2 = searchTerm['time2']?searchTerm['time2']:"33231449921"; // 转换为 Date 对象 console.log(time1,time2,6633); const filteredArr = data.filter(item => { let hasNameCondition = conditions.every(condition => item.number.includes(condition)) const time = item.stamp; let hasTimeCondition = time >= time1 && time <= time2; return hasNameCondition && hasTimeCondition; }); console.log(filteredArr); return filteredArr; }