12 |
- function e(){$(".hidable").toggle(1e3)}var t="";for(let e=3e3;e<3200;e++)t+=e.toString()+",";function U(e,t){return(e=Math.round(e*10**t)/10**t).toFixed(t)}var t=t.slice(0,t.length-1),a=0,K=0,s={},X={},Z={};function prevFile(){K=(K-1+a)%a,c()}function nextFile(){K=(K+1)%a,c()}function _(){$(".chart").hide(),$("#fileOutput").html(""),$("#name").html("")}function r(e){s[a]=e.target.files[0],K=a,a++,$("#controls").removeClass("disabled"),$("#lbtn").removeClass("disabled"),$("#rbtn").removeClass("disabled"),c(1)}document.onkeydown=function(e){var t=e||window.event||arguments.callee.caller.arguments[0];t&&("ArrowLeft"==t.key?prevFile():"ArrowRight"==t.key&&nextFile())};const o=CryptoJS.enc.Utf8.parse("abcdefgabcdefg12");function ee(e){e=CryptoJS.lib.CipherParams.create({ciphertext:CryptoJS.enc.Hex.parse(e)});return CryptoJS.AES.decrypt(e,o,{mode:CryptoJS.mode.ECB,padding:CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8)}function n(e){return CryptoJS.AES.encrypt(e,o,{mode:CryptoJS.mode.ECB,padding:CryptoJS.pad.Pkcs7}).ciphertext.toString()}function d(t){var a,s=new Array,r=t.length;for(let e=0;e<r;e++)65536<=(a=t.charCodeAt(e))&&a<=1114111?(s.push(a>>18&7|240),s.push(a>>12&63|128),s.push(a>>6&63|128),s.push(63&a|128)):2048<=a&&a<=65535?(s.push(a>>12&15|224),s.push(a>>6&63|128),s.push(63&a|128)):128<=a&&a<=2047?(s.push(a>>6&31|192),s.push(63&a|128)):s.push(255&a);return s}function l(e){e='{"meId":'+$("#Id").val()+',"seIds":"'+t+'","schoolId":19707,"studentId":"'+e+'"}';console.log(e),e=n(e),console.log(e),fetch("http://36.112.23.77/analysis/api/student/exam/getStudentReportMEVO",{method:"POST",headers:{"Content-type":"application/json"},body:e}).then(e=>{e.text().then(e=>{s[a]=new Blob([e],{type:"text/plain"}),K=a,a++,$("#controls").removeClass("disabled"),$("#lbtn").removeClass("disabled"),$("#rbtn").removeClass("disabled"),c(1)})})}function fetchMe(t){parseInt(t)?l(t):fetch("/js/e.json",{method:"GET",headers:{"Content-type":"application/json"}}).then(e=>{e.json().then(e=>{l(e.data.filter(function(e){return e.name==t})[0].no)})})}function i(e){console.log(e),X[K]||(X[K]=prompt("数字校园号?")),Z[K]||(Z[K]=prompt("考试编号?(心意答点击考试标题后,切换考试的列表里可见)"));var t='{"schoolId":19707,"seId":'+e+',"studentId":"'+X[K]+'"}';console.log(t),t=n(t),fetch("http://36.112.23.77/analysis/api/student/exam/getStudentReportSEVO",{method:"POST",headers:{"Content-type":"application/json"},body:t}).then(e=>{e.json().then(e=>{})}),t='{"schoolId":19707,"meId":'+Z[K]+',"seId":'+e+',"studentId":"'+X[K]+'"}',console.log(t),t=n(t),fetch("http://36.112.23.77/analysis/api/student/exam/getStuExamDetailInfo",{method:"POST",headers:{"Content-type":"application/json"},body:t}).then(e=>{e.json().then(e=>{$("#singleDat").html(ee(e.data))})})}function te(e){return 90<=e?"success":75<=e?"info":60<=e?"warning":"danger"}function resizeChart(){setTimeout(function(){sChart1.resize(),sChart2.resize(),oChart1.resize(),oChart2.resize(),oChart3.resize(),oChart4.resize(),"0px"==$("#score1>div").css("width")?$("#resizeBtn").show():$("#resizeBtn").hide(300)},300)}function ae(){return 972==Z[K]||957==Z[K]||951==Z[K]?"15":970==Z[K]?"13":"?"}function c(q=0){console.log("Start processing No. "+K);var e=s[K],R=$("#message")[0],V='<table class="table table-responsive" style="table-layout: fixed;"><tr><td>平均分</td><td>最高分</td><td>75%</td><td>中位数</td><td>25%</td><td>最低分</td></tr>',t=(R.innerHTML=K+1+"/"+a+" - "+e.name+" - "+e.size+" 字节 - "+e.type+" - 正在读取...<br>>",$("#upbtn").removeClass("btn-danger"),$("#upbtn").addClass("btn-info"),$("#upicon").removeClass("glyphicon-exclamation-sign"),$("#upicon").addClass("glyphicon-open"),new FileReader);t.onload=function(H){try{var L=$("#fileOutput")[0],e=$("#fileInfo")[0],W=$("#name")[0],t=eval("("+H.target.result+")"),a="",s="",r=($("#single").empty(),t.data=eval("("+ee(t.data).toString()+")"),Z[K]=t.data.meId.toString(),X[K]=t.data.studentId,console.log(Z[K],X[K]),e.innerHTML="<h3>"+t.data.multiExam.meName+"</h3>",console.log(t.data.multiExam.meName),[]),o=[],J=1,n=t.data.multiExamStudentScore.singleExamStudentScores,d=t.data.singleExamClassScores,l=t.data.singleExamClassYsScores,i=t.data.multiExam.singleExams,r=t.data.seIds,c=r.length;for(let t=0;t<c;t++)for(let e=0;e<c;e++)i[t].seId==r[e]&&(o[e]=i[t].seCourseName);var m={};for(let e=0;e<c;e++)m[r[e]]=o[e];m[0]="总分";for(let e=0;e<l.length;e++)m[l[e].seId+"Ys"]=m[l[e].seId]+" "+l[e].ysClassId;var u={},j={},F={};for(let t=0;t<c;t++)for(let e=0;e<c;e++)n[e]&&n[e].seId==r[t]&&(F[t]=!0,u[e]=t);for(let e=1;e<c;e++)F[e]||(r[e]=-1);for(let e=0;e<c;e++)j[u[e]]=e;var p={},h={},S={},y={},f={},g={},x={},C={},b={},P={},v={},O={},G={},E={},I;for(let e=0;e<c;e++){n[e]&&(I=n[e].seId,p[I]=n[e].essScore,h[I]=d[e].secsAvgScore,S[I]=d[e].secsMinScore,y[I]=d[e].secsQuarterScore,f[I]=d[e].secsHalfScore,g[I]=d[e].secs3quatrerScore,x[I]=d[e].secsMaxScore,C[I]=i[u[e]].seFullScore,b[I]=n[e].essClassOrder,v[I]=n[e].essGradeOrder,O[I]=U(1-n[e].essClassOrder/d[e].secsStudentCount,3),E[I]=U(1-n[e].essGradeOrder/i[u[e]].seStudentCount,3))}O[0]=U(1-t.data.multiExamStudentScore.messClassOrder/t.data.multiExamClassScores[0].mecsStudentCount,3),E[0]=U(1-t.data.multiExamStudentScore.messGradeOrder/t.data.multiExamSchoolScore.mecsStudentCount,3),b[0]=t.data.multiExamStudentScore.messClassOrder,v[0]=t.data.multiExamStudentScore.messGradeOrder;for(let t=0;t<l.length;t++)for(let e=0;e<c;e++)n[e]&&l[t].seId==n[e].seId&&(G[l[t].seId+"Ys"]=U(1-n[e].essYsClassOrder/l[t].secsStudentCount,3),P[l[t].seId+"Ys"]=n[e].essYsClassOrder);console.log(t.data);var Y=ae();for(let e=0;e<c;e++){var Q=j[e];if(n[Q]){$("#single").append('<button class="btn btn-'+te(U(100*E[r[e]],1))+' btn-how" onclick="getSe('+r[e]+");$('.btn-how').removeClass('active');$(this).addClass('active')\">"+m[n[Q].seId]+"</button>"),a+="<h3 class='bg-"+te(U(100*E[r[e]],1))+" text-"+te(U(100*E[r[e]],1))+"'>"+m[n[Q].seId]+" <small>"+n[Q].essScore+"</small></h3><h4>"+t.data.examStudents[0].classId+" 班内:</h4>"+n[Q].essClassOrder+" / "+d[Q].secsStudentCount+V+"<tr><td>"+d[Q].secsAvgScore+"</td><td>"+d[Q].secsMaxScore+"</td><td>"+d[Q].secs3quatrerScore+"</td><td>"+d[Q].secsHalfScore+"</td><td>"+d[Q].secsQuarterScore+"</td><td>"+d[Q].secsMinScore+"</td></tr></table>",s=","+t.data.examStudents[0].classId+" 班 "+d[Q].secsClassOrder+" / "+Y;for(let e=0;e<l.length;e++)l[e].seId==n[Q].seId&&(a+="<h4>"+l[e].ysClassId+" 层内:</h4>"+n[Q].essYsClassOrder+" / "+l[e].secsStudentCount+V+"<tr><td>"+l[e].secsAvgScore+"</td><td>"+l[e].secsMaxScore+"</td><td>"+l[e].secs3quatrerScore+"</td><td>"+l[e].secsHalfScore+"</td><td>"+l[e].secsQuarterScore+"</td><td>"+l[e].secsMinScore+"</td></tr></table>",s+=","+l[e].ysClassId+" 层 "+l[e].secsClassOrder+" / ?");a+="<h4>年级:</h4>"+n[Q].essGradeOrder+" / "+i[u[Q]].seStudentCount+s+V+"<tr><td>"+i[u[Q]].seAvgScore+"</td><td>"+i[u[Q]].seMaxScore+"</td><td>"+i[u[Q]].se3QuarterScore+"</td><td>"+i[u[Q]].seHalfScore+"</td><td>"+i[u[Q]].seQuarterScore+"</td><td>"+i[u[Q]].seMinScore+"</td></tr></table>"}}}catch(e){return console.log(e),_(),R.innerHTML+="读取失败!",$("#upbtn").removeClass("btn-info"),$("#upbtn").addClass("btn-danger"),$("#upicon").removeClass("glyphicon-open"),void $("#upicon").addClass("glyphicon-exclamation-sign")}var B,A;$("#single").append('<pre id="singleDat" style="word-wrap: break-word; white-space: normal"></pre><br>'),q&&(B=JSON.stringify({content:t.data.multiExamStudentScore.studentName+" "+parseInt(t.data.examStudents[0].classId)}),fetch("/score/log",{method:"POST",headers:{"Content-type":"application/json"},body:B})),R.innerHTML+="读取成功! - 注:实验中学 74 桌出品,我仅做搬运修改。<br>",W.innerHTML="姓名:"+t.data.multiExamStudentScore.studentName,e.innerHTML="<h3>"+t.data.multiExam.meName+" <small>"+t.data.examStudents[0].classId+"班 "+t.data.multiExamStudentScore.studentName+"</small></h3>",L.innerHTML=1<c?"<h3>总分 <small>"+t.data.multiExamStudentScore.messScore+"</small></h3><h4>"+t.data.examStudents[0].classId+" 班内:</h4>"+t.data.multiExamStudentScore.messClassOrder+" / "+t.data.multiExamClassScores[0].mecsStudentCount+V+"<tr><td>"+t.data.multiExamClassScores[0].mecsAvgScore+"</td><td>"+t.data.multiExamClassScores[0].mecsMaxScore+"</td><td>"+t.data.multiExamClassScores[0].mecs3quatrerScore+"</td><td>"+t.data.multiExamClassScores[0].mecsHalfScore+"</td><td>"+t.data.multiExamClassScores[0].mecsQuarterScore+"</td><td>"+t.data.multiExamClassScores[0].mecsMinScore+"</td></tr></table><h4>年级:</h4>"+t.data.multiExamStudentScore.messGradeOrder+" / "+t.data.multiExamSchoolScore.mecsStudentCount+","+t.data.examStudents[0].classId+"班 "+t.data.multiExamClassScores[0].mecsClassOrder+" / "+Y+V+"<tr><td>"+t.data.multiExam.meAvgScore+"</td><td>"+t.data.multiExam.meMaxScore+"</td><td>"+t.data.multiExam.me3QuatrerScore+"</td><td>"+t.data.multiExam.meHalfScore+"</td><td>"+t.data.multiExam.meQuarterScore+"</td><td>"+t.data.multiExam.meMinScore+"</td></tr></table>"+a:a,$("#fileOutput table").css("display","inline-table"),$("#fileOutput table").css("margin-bottom","0px"),$(".chart").show(),sChart1=echarts.init($("#score1")[0]),sChart2=echarts.init($("#score2")[0]),oChart1=echarts.init($("#order1")[0]),oChart2=echarts.init($("#order2")[0]),oChart3=echarts.init($("#order3")[0]),oChart4=echarts.init($("#order4")[0]),seNameDicP=[],scorePP=[],avgPP=[],rate0P=[],rate25P=[],rate50P=[],rate75P=[],rate100P=[],rateFullP=[],scoreQ=[],avgQ=[],rate0Q=[],rate25Q=[],rate50Q=[],rate75Q=[],rate100Q=[],seNameDicP2=[],classOrderPP=[],gradeOrderPP=[],classOrderQ=[],gradeOrderQ=[],seNameDicP3=[],ysClassOrderPP=[],ysClassOrderQ=[],r[c]=0;for(let e=0;e<c;e++){var Q=r[e];-1==Q||"总分"==m[Q].substr(0,2)&&1<c||(seNameDicP.push(m[Q].substr(0,2)),scorePP.push(p[Q]),avgPP.push(h[Q]),rate0P.push(S[Q]),rate25P.push(y[Q]),rate50P.push(f[Q]),rate75P.push(g[Q]),rate100P.push(x[Q]),rateFullP.push(C[Q]),scoreQ.push(U(p[Q]/C[Q]*100,1)),avgQ.push(U(h[Q]/C[Q]*100,1)),rate0Q.push(U(S[Q]/C[Q]*100,1)),rate25Q.push(U(y[Q]/C[Q]*100,1)),rate50Q.push(U(f[Q]/C[Q]*100,1)),rate75Q.push(U(g[Q]/C[Q]*100,1)),rate100Q.push(U(x[Q]/C[Q]*100,1)))}for(let e=0;e<c;e++){var Q=r[e];-1!=Q&&(seNameDicP2.push(m[Q].substr(0,2)),classOrderPP.push(b[Q]),gradeOrderPP.push(v[Q]),classOrderQ.push(U(100*O[Q],1)),gradeOrderQ.push(U(100*E[Q],1)))}for(A in P)seNameDicP3.push(m[A]),ysClassOrderPP.push(P[A]),ysClassOrderQ.push(U(100*G[A],1));var w={textStyle:{fontFamily:"Noto Serif SC"},tooltip:{trigger:"axis"},toolbox:{show:!0,feature:{saveAsImage:{show:!0},dataView:{show:!0,readOnly:!1}},orient:"vertical"},emphasis:{focus:"series"},calculable:!0},N={...w},M={...w},T={...w},k={...w},z={...w},D={...w};N.title={text:"分数",textStyle:{fontSize:14,fontStyle:"normal",fontWeight:"bold"}},N.legend={data:["0%","25%","50%","75%","100%","满分","平均分","我的分数"]},N.xAxis=[{axisTick:{alignWithLabel:!0},type:"category",data:seNameDicP,name:"科目",position:"left"}],N.yAxis=[{type:"value",name:"分数",position:"left"}],N.series=[{name:"0%",type:"line",data:rate0P,color:"#5cb85c"},{name:"25%",type:"line",data:rate25P,color:"#c7dc68"},{name:"50%",type:"line",data:rate50P,color:"#f0ad4e"},{name:"75%",type:"line",data:rate75P,color:"#c7dc68"},{name:"100%",type:"line",data:rate100P,color:"#5cb85c"},{name:"满分",type:"line",data:rateFullP,color:"#b6b6b6"},{name:"平均分",type:"line",data:avgPP,color:"#337ab7"},{name:"我的分数",type:"line",data:scorePP,color:"#e2041b"}],M.title={text:"得分率",textStyle:{fontSize:14,fontStyle:"normal",fontWeight:"bold"}},M.legend={data:["0%","25%","50%","75%","100%","平均得分率","我的得分率"]},M.xAxis=[{axisTick:{alignWithLabel:!0},type:"category",data:seNameDicP,name:"科目",position:"left"}],M.yAxis=[{type:"value",name:"得分率(%)",position:"left"}],M.series=[{name:"0%",type:"line",data:rate0Q,color:"#5cb85c"},{name:"25%",type:"line",data:rate25Q,color:"#c7dc68"},{name:"50%",type:"line",data:rate50Q,color:"#f0ad4e"},{name:"75%",type:"line",data:rate75Q,color:"#c7dc68"},{name:"100%",type:"line",data:rate100Q,color:"#5cb85c"},{name:"平均得分率",type:"line",data:avgQ,color:"#337ab7"},{name:"我的得分率",type:"line",data:scoreQ,color:"#d9534f"}],T.title={text:"行政排名位次",textStyle:{fontSize:14,fontStyle:"normal",fontWeight:"bold"}},T.legend={data:["班级排名","年级排名"]},T.xAxis=[{axisTick:{alignWithLabel:!0},type:"category",data:seNameDicP2,name:"科目",position:"left"}],T.yAxis=[{type:"value",name:"排名",position:"left"}],T.series=[{name:"班级排名",type:"bar",data:classOrderPP,color:"#5bc0de"},{name:"年级排名",type:"bar",data:gradeOrderPP,color:"#337ab7"}],k.title={text:"行政排名比例",textStyle:{fontSize:14,fontStyle:"normal",fontWeight:"bold"}},k.legend={data:["班级排名(%)","年级排名(%)"]},k.xAxis=[{axisTick:{alignWithLabel:!0},type:"category",data:seNameDicP2,name:"科目",position:"left"}],k.yAxis=[{type:"value",name:"排名(%)",position:"left",max:100}],k.series=[{name:"班级排名(%)",type:"bar",data:classOrderQ,color:"#5bc0de"},{name:"年级排名(%)",type:"bar",data:gradeOrderQ,color:"#337ab7"}],z.title={text:"分班排名位次",textStyle:{fontSize:14,fontStyle:"normal",fontWeight:"bold"}},z.legend={data:["分班排名"]},z.xAxis=[{axisTick:{alignWithLabel:!0},type:"category",data:seNameDicP3,name:"科目",position:"left"}],z.yAxis=[{type:"value",name:"排名",position:"left"}],z.series=[{name:"分班排名",type:"bar",data:ysClassOrderPP,color:"#5cb85c"}],D.title={text:"分班排名比例",textStyle:{fontSize:14,fontStyle:"normal",fontWeight:"bold"}},D.legend={data:["分班排名(%)"]},D.xAxis=[{axisTick:{alignWithLabel:!0},type:"category",data:seNameDicP3,name:"科目",position:"left"}],D.yAxis=[{type:"value",name:"排名(%)",position:"left",max:100}],D.series=[{name:"分班排名(%)",type:"bar",data:ysClassOrderQ,color:"#5cb85c"}],sChart1.setOption(N),sChart2.setOption(M),oChart1.setOption(T),oChart2.setOption(k),oChart3.setOption(z),oChart4.setOption(D),window.onresize=resizeChart},t.readAsText(e)}$().ready(function(){$(".chart").hide(),$(function(){$("[data-toggle='tooltip']").tooltip()}),$("#Input").keydown(function(e){13==e.keyCode&&$("#fetchBtn")[0].click()})});
- //我知道引用了代码再压缩了不厚道,想看源代码把min去掉就行
|