Greasy Fork镜像 还支持 简体中文。

hbjs质量技术网络学习试卷选择助手

答题进度提示,答案备份和恢复

目前為 2023-02-13 提交的版本,檢視 最新版本

// ==UserScript==
// @name         hbjs质量技术网络学习试卷选择助手
// @namespace    x_jianp
// @version      1.0.6
// @description  答题进度提示,答案备份和恢复
// @author       x_jianp
// @match        http://mis.hebjs.com.cn/*
// @grant        unsafewindow

// @require      http://code.jquery.com/jquery-latest.js
// ==/UserScript==
// 本脚本发布地址在 https://gf.qytechs.cn/zh-CN/scripts/435675

//1.0.6更新:答题统计年限增加2023年,
//1.0.5更新:答题统计年度显示图片改为竖向,15x24p,精简显示效果。更正部分试卷没有统计到答案的bug。

//图片版本更正:
//2023 <img src="https://img1.imgtp.com/2023/02/13/CeB1pI4o.png" alt="V2023.png" title="V2023.png" />
//2022 <img src="https://img1.imgtp.com/2023/02/13/qDkns9Hy.svg" alt="v2022.svg" title="v2022.svg" />
//2021 <img src="https://img1.imgtp.com/2023/02/13/06CyEfBW.svg" alt="v2021.svg" title="v2021.svg" />
// 2021 https://imgloc.com/i/cglio 02/13, 保存1年
// 2022 https://imgloc.com/i/cg0SA
// 2023 https://imgloc.com/i/cgwbN
// 2021 https://i.328888.xyz/2023/02/13/cglio.png
// https://i.328888.xyz/2023/02/13/cg0SA.png
// https://i.328888.xyz/2023/02/13/cgwbN.png
// 成绩查询==================================

(function() {
    'use strict';

    //成绩进度查询
    //
    //在"/Technic/Exam/AnswerNotes/ListAsJson?UnitId=1&&rows=200"文件中有全部答题记录。
    //1.读取JSON,处理数据
    //2.便历页面中的试卷名称,添加年度标识图标,实现鼠标on事件,显示成绩。


    //在规范答题的时候刷新成绩,不再做存储。
    let myJson = new Object;
    let yanzheng = null;
    try {
        yanzheng = document.querySelector("#formMain > table > tbody > tr:nth-child(1) > td > h3");
    } finally {}
    if (yanzheng != null) {
        if (yanzheng.innerText = '请选择规范开始答题'){
            // alert("新成绩读入开始工作");
            console.log("成绩读取开始");
            //let keys = GM_listValues();
            //for (let key of keys){ GM_deleteValue(key);}
            var xmlhttp = new XMLHttpRequest();
            xmlhttp.onreadystatechange = function() {
                if (this.readyState == 4 && this.status == 200) {
                   //GM_setValue('chengji',this.responseText);
                   myJson = JSON.parse(this.responseText).rows;
                   //chengji = myJson.rows;
                   //console.log(myJson);
                   for (let j=0 ; j<5;j++ ){
                        let tiku = document.querySelector("#formMain > table > tbody > tr:nth-child("+String(j*2+3)+") > td");
                        let tishu = tiku.children.length;
                        for (let i=0;i<tishu;i++){
                            //innerText 将取回文字中的两个空格,精简成了一个。造成部分试卷成绩查询失败。原因是innerText是基于浏览器显示的,会基于CSS,性能比不上textContent。
//                            let tiname = tiku.children[i].querySelector("span > span.l-btn-text").innerText;
                            let tiname = tiku.children[i].querySelector("span > span.l-btn-text").textContent;
                            //筛选数据.
                            let chengji = myJson.filter(function(e){ return e.BankName.value==tiname});
                            //console.log(chengji);
                            let years = {};
                            if (chengji.length != 0) {
                                for (let k=0; k<chengji.length;k++){
                                    var year = chengji[k].CreatedDate.split("-")[0];
                                    years[year]=year;
                                    //console.log(years);
                                }
                                for (var key in years){

                                    var imgy = document.createElement("img");

                                    switch(key) {
                                        case "2020":
                                            imgy.src = "https://img1.imgtp.com/2022/08/23/lMc5hns8.svg";
                                            break;
                                        case '2021':
                                            imgy.src = "https://i.328888.xyz/2023/02/13/cglio.png" ;
                                            break;
                                        case '2022':
                                            imgy.src = "https://i.328888.xyz/2023/02/13/cg0SA.png" ;
                                            break;
                                        case '2023':
                                            imgy.src = "https://i.328888.xyz/2023/02/13/cgwbN.png";
                                            break;
                                        default:
                                            var btn = document.createElement("button");
                                            var btt1 = document.createTextNode(years[key]);
                                            btn.appendChild(btt1);
                                            tiku.children[i].appendChild(btn);
                                    }
                                    tiku.children[i].appendChild(imgy);
                                }
                            } else {
                            console.log(tiname+"没成绩");
                            }
                        }
                    }
                }
            };
            xmlhttp.open("GET", "/Technic/Exam/AnswerNotes/ListAsJson?UnitId=1&&rows=200", true);
            xmlhttp.send();


        }
    }

})();
//成绩查询结束===========================================


//答题辅助================================================
(function() {
    'use strict';
    //答题助手
    jQuery(function () {
    });

    try { var myFormDoc = document.getElementById("formMain").children[11].children[0]; //页面结构变了的时候,注意这里
        } catch(e){} finally{}
    if (myFormDoc != null) {
        var qnum = (myFormDoc.children.length-3)/2;
        var butt = $('<a/>',{
            'id': 'upAnswer',
            'href':'javascript:void(0)',
            'onclick':'up_myanswer()'
        }).text('答案恢复');
        var dbutt = $('<a/>',{
            'id': 'downAnswer',
            'href':'javascript:void(0)',
            'onclick':'down_myanswer()'
        }).text('      答案导出');


        unsafeWindow.up_myanswer = function up_myanswer() {
            alert("该插件仅用于答题暂停时,答案备份和恢复,请正规使用。规范学习");
            console.log("btn_ok");

            var mytxt = document.getElementById("myinputAnswer").value.split("\n");
            if (mytxt.length != 0){
                for (var i=0;i<mytxt.length;i++){
                    document.getElementById(String(i)+"_MyAnswer").value=mytxt[i];
                    var iqus = mytxt[i].split(';');
                    var qusid = document.getElementById(String(i)+"_QuestionId").value; //更正题库答案的时候会影响QUSID的数值,不再是连续的,所以每次都需要读取ID来继续分步。这意味着以前的答案可能拿不了满分
                    for (var j=0;j<iqus.length;j++){
                        document.getElementsByName(String(i)+"_MyAnswerItem_"+String(qusid))[j].value=iqus[j];
                        //console.log(String(i)+"_MyAnswerItem_"+String(qstarnum + i));
                        //console.log(document.getElementById(String(i)+"_MyAnswerItem_"+String(qstarnum + i)));
                    }
                }
            }
        }


        unsafeWindow.down_myanswer = function down_myanswer(){
            var mytxt = ""
            for (var i=0;i<qnum;i++){
                mytxt += document.getElementById(String(i)+"_MyAnswer").value + "\n";
            }
            document.getElementById("myinputAnswer").value=mytxt;
        }

        $("#formMain").append(butt);
        $('#formMain').append(dbutt);
        $('#formMain').append('<textarea id="myinputAnswer"></textarea>');
    }
    //$('#formMain').append('<button id="upanswer_btn">上传答案</button>');
    /*
    for (var i=0;i<qnum;i++)
    {
        document.getElementById(String(i)+"_MyAnswer").type="text";
    }
*/
    //document.getElementById("formMain").appendChild(btn);
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址