Greasy Fork

Greasy Fork is available in English.

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

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

当前为 2022-08-23 提交的版本,查看 最新版本

// ==UserScript==
// @name         hbjs质量技术网络学习试卷选择助手
// @namespace    x_jianp
// @version      1.0.2a
// @description  答题进度提示,答案备份和恢复
// @author       x_jianp
// @match        http://mis.hebjs.com.cn/*
// @grant        unsafewindow
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_listValues
// @grant        GM_deleteValue
// @require      http://code.jquery.com/jquery-latest.js
// ==/UserScript==
// 本脚本发布地址在 http://greasyfork.icu/zh-CN/scripts/435675

//全局变量
//2022<img src="https://img1.imgtp.com/2022/08/23/B8X7Gurk.png" alt="年份2022.png" title="年份2022.png" />
//2022<img src="https://img1.imgtp.com/2022/08/23/lMc5hns8.svg" alt="年份2022.svg" title="年份2022.svg" />
//<img src="https://img1.imgtp.com/2022/08/23/yX2ceA4O.svg" alt="年份2021.svg" title="年份2021.svg" />

// 成绩查询==================================

(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++){
                            let tiname = tiku.children[i].querySelector("span > span.l-btn-text").innerText;
                            //筛选数据.
                            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 "2022":
                                            imgy.src = "https://img1.imgtp.com/2022/08/23/lMc5hns8.svg";
                                            break;
                                        case '2021':
                                            imgy.src = "https://img1.imgtp.com/2022/08/23/yX2ceA4O.svg" ;
                                            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);
})();