您需要先安装一款用户样式管理器扩展(如 Stylus)后才能安装此样式。
您需要先安装一款用户样式管理器扩展(如 Stylus)后才能安装此样式。
您需要先安装一款用户样式管理器扩展(如 Stylus)后才能安装此样式。
您需要先安装一款用户样式管理器扩展后才能安装此样式。
您需要先安装一款用户样式管理器扩展后才能安装此样式。
您需要先安装一款用户样式管理器扩展后才能安装此样式。
(我已经安装了用户样式管理器,让我安装!)
// ==UserScript==
// @name 哈尔滨工程大学成绩查询Pro_test
// @namespace Devour
// @version 4.1
// @description кто знает,кто знает.
// @author Devour
// @match *://*.edu.cn/*
// @match https://edusys.wvpn.hrbeu.edu.cn/jsxsd/kscj/cjcx_list
// @match https://edusys.wvpn.hrbeu.edu.cn/*
// @match http://edusys.hrbeu.edu.cn/jsxsd/kscj/cjcx_list
// @grant none
// @require https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js
// ==/UserScript==
(function () {
'use strict';
var no_border_table_class = document.querySelector("#kscjQueryForm > table > tbody");
var pjxt_url = "http://pjcs.hrbeu.edu.cn/static/html/main/mycollege/index.html";
if (no_border_table_class != undefined) {
var button_teacher_comment_html = document.createElement("tr");
button_teacher_comment_html.innerHTML = "<td colspan='3' align='center'><input type='button' value='前往评教' style='width:60px;height:30px;color:#FF6666;background:#FFCCCC' onclick='window.location.href=\""+pjxt_url+"\"' class='button'></td>";
no_border_table_class.appendChild(button_teacher_comment_html);
}
if (window.location.href == pjxt_url) {
var script_section = document.createElement("script");
script_section.innerHTML = 'setInterval("aaaa();",1000);function aaaa(){var li_list = document.getElementsByTagName("li");\
if(li_list.length != 0){\
li_list[0].click()\
}else{\
window.location.href="https://edusys.wvpn.hrbeu.edu.cn/jsxsd/kscj/cjcx_list";\
}}';
document.querySelector("body").appendChild(script_section);
} else if (window.location.href.indexOf("teaching/course_evaluate_l.html?") != -1) {
var script_section_pj_run = document.createElement("script");
script_section_pj_run.innerHTML = 'setInterval("aaaa();",1000);function aaaa(){var data_comment = ["老师在教室上教得东西我当时就能记住,老师举例生动形象,老师能够锻炼我们举一反三的能力。",\
"整堂课思路清晰,环节紧凑,重难点突出,设计合理。学生的课堂习惯非常好,每个人都能积极的参与到课堂中,课堂效果较好。",\
"学生们上课的积极性和参与率极高,特别是老师能抓住儿童的心理特点,创设一定的情境。老师并提供了丰富的内容,在整个教学过程中给予了学生比较充分的自主探究机会,让学生在活动中学习、提升。",\
"老师能从学生特点出发,让学生在玩活动过程中探究新知识、理解新知,人整体上来看,效果确实不错,值得学习。",\
"感谢老师谆谆教诲,老师的课堂活泼有趣,同学们听的津津有味,老师常引人入胜,我们总是身临其境。",\
"老师与同学们互动,使课堂效率达到高点。老师还平易近人,总是和同学们一起讨论难问题,谢谢老师的教诲。"];\
var data_list = document.getElementsByClassName("mui-input-row mui-radio mui-left");\
for (var i = 0; i < data_list.length; i++) {\
if (data_list[i].innerText == \'非常满意\') {\
data_list[i].getElementsByTagName("input")[0].setAttribute("checked", "checked")\
}\
}\
document.getElementsByTagName("textarea")[0].value = data_comment[Math.round(Math.random() * 10) % 6];\
validate();\
window.location.href = "http://pjcs.hrbeu.edu.cn/static/html/main/mycollege/index.html";}';
document.querySelector("body").appendChild(script_section_pj_run);
}
if(window.location.href.indexOf("/jsxsd/kscj/cjcx_list") != -1){
if (document.getElementById("dataList").rows[1].cells[0].innerText == "未查询到数据") {
alert("未查询到数据!!");
return 0;
}
function Add_th(th_HTML, width = 120) {
let var_th = document.createElement("th");
var_th.innerHTML = th_HTML;
var_th.setAttribute("class", "Nsb_r_list_thb");
var_th.setAttribute("style", "width: " + width.toString() + "px;");
document.getElementById("dataList").rows[0].appendChild(var_th);
}
function PC_Credit_Calc(CourseType, Credit) {
if (document.getElementById("Top1_divLoginName").innerHTML.split("(")[1].split(")")[0].substring(0, 4) < 2019) {
switch (CourseType) {
case "中外历史与文化": PC_A_Credit += Credit; break;
case "语言与文学": PC_B_Credit += Credit; break;
case "哲学人生与社会科学": PC_C_Credit += Credit; break;
case "艺术修养与审美": PC_D_Credit += Credit; break;
case "自然科学与人类文明": PC_E_Credit += Credit; break;
case "国防文化与船海史话": PC_F_Credit += Credit; break;
case "中华传统文化": PC_G_Credit += Credit; break;
case "新生研讨类": PCCategory_2 += Credit; break;
case "专业拓展类": PCCategory_3 += Credit; break;
case "创新创业类": PCCategory_4 += Credit; break;
}
} else {
if (Course_name_2019[CourseType] == undefined) {
Course_name_2019[CourseType] = Credit;
console.log(Course_name_2019[CourseType]);
} else {
Course_name_2019[CourseType] += Credit;
console.log(Course_name_2019[CourseType]);
}
}
}
function AVG_Grade_Color_Control(let_grade) {
if (let_grade < 60) return "#E6E6FA";
else if (let_grade < 70) return "#00AA00";
else if (let_grade < 80) return "#BB5500";
else if (let_grade < 85) return "#FF0088";
else if (let_grade < 90) return "#FF0000";
else if (let_grade < 95) return "#B22222";
else return "#880000";
}
function Grade_Detail_Color_control(let_grade) {
let result = new Array(2);
if (let_grade < 60 || let_grade == '不及格') {
result[0] = "#880000";
result[1] = "┗( T﹏T )┛";
} else if (let_grade < 70 || let_grade == '及格') {
result[0] = "#66DD00";
result[1] = "…(⊙_⊙;)…";
} else if (let_grade < 80 || let_grade == '中等') {
result[0] = "#CC6600";
result[1] = "(= ̄ω ̄=)";
} else if (let_grade < 90 || let_grade == '良好') {
result[0] = "#00DDDD";
result[1] = "(●'◡'●)";
} else {
result[0] = "#FF359A";
result[1] = "(✿◕‿◕✿)";
}
return result;
}
function div_create_parent(width, height) {
var divOB = "<div id='StudentInfo' ";
divOB += "style='left: 5px;";
divOB += "bottom: 50px;";
divOB += "background: #FFB6C1;";
divOB += "overflow: hidden;";
divOB += "z-index: 9999;";
divOB += "position: fixed;";
divOB += "padding:5px;";
divOB += "text-align:center;";
divOB += "width: " + width + "px;";
divOB += "height: " + height + "px;";
divOB += "border-bottom-left-radius: 4px;";
divOB += "border-bottom-right-radius: 4px;";
divOB += "border-top-left-radius: 4px;";
divOB += "border-top-right-radius: 4px;";
divOB += "'> </div>";
$("body").append(divOB);
let var_add_br = document.createElement('br');
document.getElementById("StudentInfo").appendChild(var_add_br);
let button_credit_func = document.createElement("input");
button_credit_func.setAttribute("type", "button");
button_credit_func.setAttribute("value", "统计学分");
button_credit_func.setAttribute("onclick", "Count_Credit_GradeAVG()");
document.getElementById("StudentInfo").appendChild(button_credit_func);
document.getElementById("StudentInfo").appendChild(var_add_br);
document.getElementById("StudentInfo").appendChild(var_add_br);
let Checkbox_group_setting = document.createElement("p");
Checkbox_group_setting.innerHTML = '必修:<input id="checkbox_bx" name="all_checkbox" type="checkbox" checked="checked">\
专选:<input id="checkbox_zx" name="all_checkbox" type="checkbox" checked="checked">\
公选:<input id="checkbox_gx" name="all_checkbox" type="checkbox" ">\
挂科:<input id="checkbox_np" name="all_checkbox" type="checkbox" ">\
自主考试:<input id="checkbox_zz" name="all_checkbox" type="checkbox" "><br>\
自由选择:<input id="checkbox_free" name="free_checkbox" type="checkbox" ">\
';
Checkbox_group_setting.style.fontSize = "125%";
document.getElementById("StudentInfo").appendChild(Checkbox_group_setting);
var Grade_Avg = document.createElement("p");
let Grade_Avg_color = AVG_Grade_Color_Control(GradeAvg);
Grade_Avg.innerHTML = "平均分:<strong style='color:" + Grade_Avg_color + "'>" + GradeAvg.toString() + "</strong>";
Grade_Avg.setAttribute("id", "Grade_AVG");
Grade_Avg.style.fontSize = "150%";
document.getElementById("StudentInfo").appendChild(Grade_Avg);
var ECC = document.createElement("p");
ECC.innerHTML = "专业选修课已修:" + ElectiveCourseCredit.toString() + "分";
ECC.style.fontSize = "150%";
document.getElementById("StudentInfo").appendChild(ECC);
}
function student_level_2018_detail() {
var Graph = document.getElementById("StudentInfo");
var GEC = document.createElement("p");
GEC.innerHTML = "通识教育选修课程已修:" + GeneralEducationCredit.toString() + "分<br>其中:";
GEC.style.fontSize = "150%";
Graph.appendChild(GEC);
var GEC_D = document.createElement("p");
GEC_D.innerHTML += "新生研讨类已修:" + PCCategory_2.toString() + "分";
GEC_D.innerHTML += "<br>专业拓展类已修:" + PCCategory_3.toString() + "分";
GEC_D.innerHTML += "<br>创新创业类已修:" + PCCategory_4.toString() + "分";
GEC_D.innerHTML += "<br>文化素质教育类已修:" + PCCategory_1.toString() + "分<br>其中:";
GEC_D.style.fontSize = "120%";
Graph.appendChild(GEC_D);
var GEC_D_A = document.createElement("ol");
GEC_D_A.innerHTML += "<li>中外文明与历史:" + PC_A_Credit.toString() + "分</li>";
GEC_D_A.innerHTML += "<li>语言与文学:" + PC_B_Credit.toString() + "分</li>";
GEC_D_A.innerHTML += "<li>哲学人生与社会科学:" + PC_C_Credit.toString() + "分</li>";
GEC_D_A.innerHTML += "<li>艺术修养与审美:" + PC_D_Credit.toString() + "分</li>";
GEC_D_A.innerHTML += "<li>自然科学与人类文明:" + PC_E_Credit.toString() + "分</li>";
GEC_D_A.innerHTML += "<li>国防文化与船海史话:" + PC_F_Credit.toString() + "分</li>";
GEC_D_A.innerHTML += "<li>中华优秀传统文化:" + PC_G_Credit.toString() + "分</li>";
GEC_D_A.style.fontSize = "100";
Graph.appendChild(GEC_D_A);
}
function student_level_2019_detail() {
var Graph = document.getElementById("StudentInfo");
let let_text_haed = document.createElement("p");
let count_credit = 0;
var Course_And_Credit = document.createElement("ol");
for (let key in Course_name_2019) {
Course_And_Credit.innerHTML += "<li style='fontSize:120%'>" + key + ":" + Course_name_2019[key] + "分</li>";
count_credit += Course_name_2019[key];
}
let_text_haed.innerHTML += "<br>公选课已修:" + count_credit.toString() + "分<br>其中:";
let_text_haed.style.fontSize = "150%";
Graph.appendChild(let_text_haed);
Graph.appendChild(Course_And_Credit);
}
function Count_Credit_GradeAVG_text() {
var CCGA_text = document.createElement("script");
CCGA_text.innerHTML = 'function Count_Credit_GradeAVG() {\
var GradeList = document.getElementById("dataList");\
var CourseGradeSum = 0, CreditSum = 0, GradeAvg = 0;\
for (var i = 1; i < GradeList.rows.length; i++) {\
var Course = GradeList.rows[i];\
var Grade, Credit;\
if (Course.cells[4].getElementsByTagName("a")[0] == undefined) Grade = Course.cells[4].innerHTML;\
else Grade = Course.cells[4].getElementsByTagName("a")[0].innerHTML;\
Credit = parseFloat(Course.cells[5].innerHTML);\
let checkbox_id = "checkbox" + i.toString();\
if (!document.getElementById("checkbox_free").checked){\
if (Course.cells[9].innerHTML == "必修") {\
document.getElementById(checkbox_id).checked = document.getElementById("checkbox_bx").checked;\
} else if (Course.cells[9].innerHTML == "公选") {\
document.getElementById(checkbox_id).checked = document.getElementById("checkbox_gx").checked;\
} else {\
document.getElementById(checkbox_id).checked = document.getElementById("checkbox_zx").checked;\
}\
if (Course.cells[8].innerHTML == "自主考试") {\
document.getElementById(checkbox_id).checked = document.getElementById("checkbox_zz").checked;\
}\
if (Grade == "不及格" || Grade < 60) {\
document.getElementById(checkbox_id).checked = document.getElementById("checkbox_np").checked;\
}\
}\
if (Grade == "---" || !document.getElementById(checkbox_id).checked) {document.getElementById(checkbox_id).checked=false;continue;}\
switch (Grade) {\
case "优秀": Grade = 95; break;\
case "良好": Grade = 85; break;\
case "中等": Grade = 75; break;\
case "及格": Grade = 65; break;\
case "不及格": Grade = 30; break;\
}\
CourseGradeSum += Grade * Credit;\
CreditSum += Credit;\
}\
if (CreditSum == 0) {\
let_text = "Error!";\
document.getElementById("Grade_AVG").getElementsByTagName("strong")[0].innerText = let_text;\
} else {\
GradeAvg = CourseGradeSum / CreditSum;\
GradeAvg = GradeAvg.toFixed(2);\
document.getElementById("Grade_AVG").getElementsByTagName("strong")[0].innerText = GradeAvg;\
}\
}';
document.getElementById("Footer1_divCopyright").appendChild(CCGA_text);
}
var function_text = document.createElement("script");
function_text.innerHTML = "function all_checkbox_function(checkbox_status){";
function_text.innerHTML += "let checkbox_list = document.getElementsByName('all_checkbox');";
function_text.innerHTML += "for(let i=0; i<checkbox_list.length;i++){";
function_text.innerHTML += "if(checkbox_status == 0)checkbox_list[i].checked = true;";
function_text.innerHTML += "else if(checkbox_status == 1)checkbox_list[i].checked = false;";
function_text.innerHTML += "else checkbox_list[i].checked = !checkbox_list[i].checked;";
function_text.innerHTML += "}";
function_text.innerHTML += "}";
document.getElementById("Footer1_divCopyright").appendChild(function_text);
var Checkbox_noPass_func_text = document.createElement("script");
Checkbox_noPass_func_text.innerHTML = '\
function Checkbox_noPass(){\
let course_list = document.getElementById("dataList");\
for (let i = 1; i < course_list.rows.length; i++) {\
let Course = course_list.rows[i];\
let Grade;\
if (Course.cells[4].getElementsByTagName("a")[0] == undefined) Grade = Course.cells[4].innerHTML;\
else Grade = Course.cells[4].getElementsByTagName("a")[0].innerHTML;\
if(Grade == "不及格"||Grade<60||Grade=="---"){\
let checkbox_id = "checkbox"+i.toString();\
document.getElementById(checkbox_id).checked = false;\
}\
}\
}';
document.getElementById("Footer1_divCopyright").appendChild(Checkbox_noPass_func_text);
document.getElementById("TopTheme").click()
document.getElementById("theme_purple").click()
Add_th("成绩详情");
let add_th_text = "均分组成 <br><input style='background:#D2A2CC' type='button' value='全选' onclick='all_checkbox_function(0)'>";
add_th_text += " <input style='background:#D2A2CC' type='button' value='全不选' onclick='all_checkbox_function(1)'>";
add_th_text += " <input style='background:#D2A2CC' type='button' value='反选' onclick='all_checkbox_function(2)'>";
Add_th(add_th_text, 200);
var GradeList = document.getElementById("dataList");
var GradeAvg = 0, CourseGradeSum = 0, CreditSum = 0;
var GeneralEducationCredit = 0, PCCategory_1 = 0, PCCategory_2 = 0, PCCategory_3 = 0, PCCategory_4 = 0;
var PC_A_Credit = 0, PC_B_Credit = 0, PC_C_Credit = 0, PC_D_Credit = 0, PC_E_Credit = 0;
var PC_F_Credit = 0, PC_G_Credit = 0;
var ElectiveCourseCredit = 0;
var Correction = 0;
var Course_name_2019 = {};
for (var i = 1; i < GradeList.rows.length; i++) {
var Course = GradeList.rows[i];
var Grade, Credit, course_detail_href;
if (Course.cells[4].getElementsByTagName("a")[0] == undefined) Grade = Course.cells[4].innerHTML;
else Grade = Course.cells[4].getElementsByTagName("a")[0].innerHTML;
Credit = parseFloat(Course.cells[5].innerHTML);
let var_td_grade_detail = document.createElement("td");
if (Grade == "---") {
var_td_grade_detail.innerHTML = "X﹏X";
var_td_grade_detail.setAttribute("style", "width: 120px;color: #CE0000");
} else {
course_detail_href = 'http://edusys.hrbeu.edu.cn';
course_detail_href += Course.cells[4].getElementsByTagName("a")[0].href.split("'")[1];
let let_var_color_ico = Grade_Detail_Color_control(Grade);
var_td_grade_detail.innerHTML = "<a style='color:" + let_var_color_ico[0] + "' href=" + course_detail_href + ">" + let_var_color_ico[1] + "</a>";
var_td_grade_detail.setAttribute("style", "width: 120px;");
}
document.getElementById("dataList").rows[i].appendChild(var_td_grade_detail);
function create_course_checkbox(statusCode) {
let var_td_checked = document.createElement("td");
let checkbox_id = "checkbox" + i.toString();
let all_checkbox_name = "all_checkbox";
if (statusCode == 1) {
var_td_checked.innerHTML = "<input id='" + checkbox_id + "'name='" + all_checkbox_name + "'type='checkbox' checked='checked'>";
} else {
var_td_checked.innerHTML = "<input id='" + checkbox_id + "'name='" + all_checkbox_name + "'type='checkbox'>";
}
document.getElementById("dataList").rows[i].appendChild(var_td_checked);
}
if (Grade == "---" || Course.cells[8].innerHTML == "自主考试") {
create_course_checkbox(0);
continue;
}
if (Course.cells[9].innerHTML == "公选" && Grade != "不及格") {
PC_Credit_Calc(Course.cells[10].innerHTML, Credit);
create_course_checkbox(0);
continue;
}
if (Course.cells[9].innerHTML != "必修" && Grade != "不及格" && Course.cells[9].innerHTML != "公选") {
ElectiveCourseCredit += Credit;
}
if (Course.cells[9].innerHTML != "必修" && Grade == "不及格") {
create_course_checkbox(0);
continue;
}
if (Course.cells[8].innerText == "补考") {
create_course_checkbox(0);
continue;
}
create_course_checkbox(1);
switch (Grade) {
case "优秀": Grade = 95; break;
case "良好": Grade = 85; break;
case "中等": Grade = 75; break;
case "及格": Grade = 65; break;
case "不及格": Grade = 30; break;
}
CourseGradeSum += Grade * Credit;
CreditSum += Credit;
}
PCCategory_1 = PC_A_Credit + PC_B_Credit + PC_C_Credit + PC_D_Credit + PC_E_Credit + PC_F_Credit + PC_G_Credit;
GeneralEducationCredit = PCCategory_1 + PCCategory_2 + PCCategory_3 + PCCategory_4;
GradeAvg = CourseGradeSum / CreditSum + Correction;
GradeAvg = GradeAvg.toFixed(2);
let student_level = document.getElementById("Top1_divLoginName").innerHTML.split("(")[1].split(")")[0].substring(0, 4);
Count_Credit_GradeAVG_text();
if (parseInt(student_level) < 2019) {
div_create_parent(300, 400);
student_level_2018_detail();
} else {
div_create_parent(300, 400);
student_level_2019_detail();
}
}
})();