您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
对金智教务系统成绩页的无语,故写了这个脚本,更直观的查看成绩,目前仅适配云大本科教务系统的成绩页
// ==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 // ==/UserScript== var $ = $ || window.$; //添加样式 var sty = `<style>#para {border-radius: 9px;margin: 0px;padding: 0px;background-color: #fff6e9;padding: 10px 0px;position: absolute;top: 44px;left: 24px;z-index: 99999;} .classname {text-align:center;font-size:20px;padding-top:3px;padding-bottom:10px;} .dbp {text-align:center;} .main {padding: 0px 10px;width: 400px;max-height: 475px;overflow: auto;} .item_con {display: none;padding: 3px;background: #eee;} .item {border-bottom: 1px solid #bbb;padding-bottom: 5px;} .item.active-tab {background: #eee;transition: all 0.3s ease;} .open {background: #0ff;} .z1,.z2,.z3 {padding: 1px;border-radius: 6px;color: #fff;display: inline-block;width: 80px;} .z1 {background-color: #5AA9E6;} .z2 {background-color: #06BA63;margin-left: 15px;margin-right: 15px;} .z3 {background-color: #FC9E4F;} table {text-align: center;background-color: #fff;width: 100%;} table tr:nth-child(2n) {background-color: rgba(0,0,0,0.05);} .label {width: 400px;height: 500px;text-align: center;} .label>ul {width: 400px;height: 20px;padding: 0;margin-bottom: 10px;margin-top: 0;} .label>ul>li {float: left;display: block;color: #888;text-align: center;padding: 1px 2px;text-decoration: none;border-bottom: solid 2px #fff0;font-weight: bold;} .label>div {width: 400px;max-height: 500px;position: absolute;display: none;} .label li.showed {border-bottom: solid 2px #FE9225;color: #FE9225;} .label div.showed {display: block;} .main::-webkit-scrollbar {width: 4px;height: 4px;scrollbar-arrow-color:red;} .main::-webkit-scrollbar-thumb {border-radius: 5px;-webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);background: #c1c1c1;scrollbar-arrow-color:red;} .main::-webkit-scrollbar-track {-webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);border-radius: 0;background: #f1f1f1;}</style>`; $("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 += `<div class="item"> <div class="classname">${row.KCM}</div> <div class="dbp"><div class="z1">成绩:${String(row.ZCJ)}</div><div class="z2">绩点:${String(row.XFJD)}</div><div class="z3">学分:${String(row.XF)}</div></div></div> <div class="item_con" style="background-color:#eee"><table> <tr><td>期中</td><td>${String(row.QZCJ)}(${String(row.QZCJXS)}%)</td><td>平时</td><td>${String(row.PSCJ)}(${String(row.PSCJXS)}%)</td> </tr><tr><td>期末</td><td>${String(row.QMCJ)}(${String(row.QMCJXS)}%)</td><td>及格</td><td>${row.SFJG_DISPLAY}</td> </tr><tr><td>学时</td><td>${row.XS}</td><td>修读方式</td><td>${row.XDFSDM_DISPLAY}</td> </tr><tr><td>有效</td><td>${row.SFYX_DISPLAY}</td><td>性质</td><td>${row.KCLBDM_DISPLAY}</td> </tr><tr><td>类型</td><td>${row.KCXZDM_DISPLAY} </tr><tr><td>学期</td><td>${row.XNXQDM}</td><td></td><td></td> </tr><tr><td>开课单位</td><td>${row.KKDWDM_DISPLAY}</td> </tr><tr><td>考试时间</td><td>${row.KSSJ}</td><td></td><td></td> </tr></table></div>`; } 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 = '<div id="para"><div class="label"><ul style="padding: 0px 10px;">'; for (let i = ks.length - 1, j = 0; i >= 0; i--, j++) { if (j == 0) { xq += '<li class="showed">' + xqm[i] + '</li>'; } else { xq += '<li>' + xqm[i] + '</li>'; } }; xq += '</ul>'; var con = ""; for (let i = ks.length - 1, j = 0; i >= 0; i--, j++) { if (j == 0) { con += '<div class="showed"><div class="main">' + db2main(cjda[ks[i]]) + '<br/></div></div>'; } else { con += '<div><div class="main">' + db2main(cjda[ks[i]]) + '<br/></div></div>'; } }; var myjiaohu = `<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> <script> $(".main").find(".item").click(function () { $(this).next().slideToggle("fast"); $(this).toggleClass("active-tab"); $(".item_con").not($(this).next()).slideUp("fast"); $(".main .item").not($(this)).removeClass("active-tab"); }); $(".main").find(".item_con").click(function () { $(this).slideToggle("fast"); $(this).prev().toggleClass("active-tab"); }); $(".label li").mouseenter(function () { if (!$(this).hasClass(".showed")) { $(".showed").removeClass("showed"); $(this).addClass("showed"); $(".label>div").eq($(this).index()).addClass("showed"); } }); $(".bh-headerBar-title").click(() => { $("#para").slideToggle("fast"); }); $(".bh-headerBar-logo").click(() => { $("#para").slideToggle("fast"); }); </script>`; var res = xq + con + "</div></div>"; $("body").append(res); $("body").append(myjiaohu); }); //$("body").on("click", function() { /*$("body").on("click", ".label li", function() {*/ //交互 }, 500); });