// ==UserScript== // @name YNUer's Grade // @namespace https://nut-cj.gitee.io/ // @version 0.2 // @description 对金智教务系统成绩页的无语,故写了这个脚本,更直观的查看成绩,目前仅适配云大本科教务系统的成绩页 // @author nut-cj // @match *://ehall.ynu.edu.cn/jwapp/sys/cjcx/* // @grant none // @require https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js // @downloadURL https://update.greasyfork.icu/scripts/404009/YNUer%27s%20Grade.user.js // @updateURL https://update.greasyfork.icu/scripts/404009/YNUer%27s%20Grade.meta.js // ==/UserScript== var $ = $ || window.$; //添加样式 var sty = ``; $("head").append(sty); function isInArray(arr, obj) { var i = arr.length; while (i--) { if (arr[i] === obj) { return true; } } return false; }; function db2main(datb) { var html = ''; for (var i = 0; i < datb.length; i++) { var row = datb[i]; html += `
${row.KCM}
成绩:${String(row.ZCJ)}
绩点:${String(row.XFJD)}
学分:${String(row.XF)}
期中${String(row.QZCJ)}(${String(row.QZCJXS)}%)平时${String(row.PSCJ)}(${String(row.PSCJXS)}%)
期末${String(row.QMCJ)}(${String(row.QMCJXS)}%)及格${row.SFJG_DISPLAY}
学时${row.XS}修读方式${row.XDFSDM_DISPLAY}
有效${row.SFYX_DISPLAY}性质${row.KCLBDM_DISPLAY}
类型${row.KCXZDM_DISPLAY}
学期${row.XNXQDM}
开课单位${row.KKDWDM_DISPLAY}
考试时间${row.KSSJ}
`; } return html; }; function db2db(data) { var cjda = {}; for (var i = 0; i < data.length; i++) { var da = data[i]; var ks = Object.keys(cjda); if (!isInArray(ks, da.XNXQDM)) { cjda[da.XNXQDM] = []; } cjda[da.XNXQDM].push(da); }; return cjda; }; $(document).ready(function () { setTimeout(() => { $.post("/jwapp/sys/cjcx/modules/cjfx/xscjcx.do", {XNXQDM:"2019-2020-1"}, (data, status) => { /* var data = JSON.parse(data); */ var cjda = db2db(data.datas.xscjcx.rows); var ks = Object.keys(cjda); ks.sort(); var xqm = ["大一上", "大一下", "大二上", "大二下", "大三上", "大三下", "大四上", "大四下", "大五上", "大五下"]; var xq = '
'; var con = ""; for (let i = ks.length - 1, j = 0; i >= 0; i--, j++) { if (j == 0) { con += '
' + db2main(cjda[ks[i]]) + '
'; } else { con += '
' + db2main(cjda[ks[i]]) + '
'; } }; var myjiaohu = ` `; var res = xq + con + "
"; $("body").append(res); $("body").append(myjiaohu); }); //$("body").on("click", function() { /*$("body").on("click", ".label li", function() {*/ //交互 }, 500); });