惠州学院 HZU 查分

没有任何引流和诱导,不需要手动输入代码,安装后访问学校教务系统,然后进入“学籍预警查询”即可查询成绩信息。

当前为 2024-07-14 提交的版本,查看 最新版本

// ==UserScript==
// @name         惠州学院 HZU 查分
// @namespace    http://tampermonkey.net/
// @version      20240713
// @description  没有任何引流和诱导,不需要手动输入代码,安装后访问学校教务系统,然后进入“学籍预警查询”即可查询成绩信息。
// @author       Anonymous
// @match        https://jwxt.hzu.edu.cn/xjyj/xjyj_cxXjyjIndex.html
// @license      BSD-4-Clause
// ==/UserScript==
     
    (function() {
      const c = "https://jwxt.hzu.edu.cn/xjyj/xjyj_cxXjyjjdlb.html";
      function s() {
        return {
          jg_id: document.getElementById("jg_id").value,
          njdm_id: document.getElementById("njdm_id").value,
          zyh_id: document.getElementById("zyh_id").value
        };
      }
      function a(t) {
        const o = new URLSearchParams(t).toString();
        return fetch(c, {
          method: "POST",
          headers: {
            "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"
          },
          body: o
        }).then((e) => e.json());
      }
      function d(t) {
        let o = [];
        return t.forEach((e) => {
          e.kcList && e.kcList.forEach((n) => {
            n.kcmc && n.bfzcj && o.push({
              name: n.kcmc,
              score: parseFloat(n.bfzcj)
            });
          });
        }), o.sort((e, n) => e.name.localeCompare(n.name, "zh-CN"));
      }
      function i(t) {
        return t.map((o) => `
                    <div class="course-score ${o.score < 60 ? "fail" : "pass"}">
                        <span class="course-name">${o.name}</span>
                        <span class="course-score-value">${o.score}</span>
                    </div>
                `).join("");
      }
      function r(t, o = !1) {
        const e = document.createElement("div");
        e.id = "custom-modal", e.innerHTML = `
                <div class="modal-content">
                    <h2 class="modal-title">${o ? "错误" : "您的成绩"}</h2>
                    <div class="scores-container">${t}</div>
                    <button class="close-btn">×</button>
                </div>
            `, document.body.appendChild(e), e.querySelector(".close-btn").onclick = () => e.remove();
      }
      function l() {
        const t = document.createElement("style");
        t.textContent = `
                #custom-modal {
                    position: fixed;
                    left: 0;
                    top: 0;
                    width: 100%;
                    height: 100%;
                    background-color: rgba(0, 0, 0, 0.5);
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    z-index: 10000;
                }
                .modal-content {
                    background-color: #fff;
                    border-radius: 10px;
                    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
                    width: 90%;
                    max-width: 500px;
                    max-height: 80vh;
                    display: flex;
                    flex-direction: column;
                    overflow: hidden;
                }
                .modal-title {
                    font-size: 24px;
                    color: #333;
                    margin: 0;
                    padding: 20px;
                    background-color: #fff;
                    border-bottom: 2px solid #f0f0f0;
                    text-align: center;
                    position: sticky;
                    top: 0;
                    z-index: 2;
                }
                .scores-container {
                    padding: 20px;
                    overflow-y: auto;
                    flex-grow: 1;
                }
                .course-score {
                    display: flex;
                    justify-content: space-between;
                    align-items: center;
                    padding: 12px 15px;
                    margin-bottom: 10px;
                    border-radius: 5px;
                    transition: all 0.3s ease;
                }
                .course-score:hover {
                    transform: translateY(-2px);
                    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
                }
                .course-score.pass {
                    background-color: #e8f5e9;
                    border-left: 4px solid #4caf50;
                }
                .course-score.fail {
                    background-color: #ffebee;
                    border-left: 4px solid #f44336;
                }
                .course-name {
                    font-weight: bold;
                    color: #333;
                    flex-grow: 1;
                    margin-right: 10px;
                }
                .course-score-value {
                    font-weight: bold;
                    font-size: 18px;
                }
                .pass .course-score-value {
                    color: #4caf50;
                }
                .fail .course-score-value {
                    color: #f44336;
                }
                .close-btn {
                    position: absolute;
                    top: 10px;
                    right: 10px;
                    border: none;
                    background: none;
                    font-size: 24px;
                    color: #999;
                    cursor: pointer;
                    transition: color 0.3s ease;
                }
                .close-btn:hover {
                    color: #333;
                }
                .scores-container::-webkit-scrollbar {
                    width: 8px;
                }
                .scores-container::-webkit-scrollbar-track {
                    background: #f1f1f1;
                    border-radius: 4px;
                }
                .scores-container::-webkit-scrollbar-thumb {
                    background: #888;
                    border-radius: 4px;
                }
                .scores-container::-webkit-scrollbar-thumb:hover {
                    background: #555;
                }
            `, document.head.appendChild(t);
      }
      function u() {
        const t = s();
        a(t).then(d).then((o) => {
          const e = i(o);
          r(e);
        }).catch((o) => {
          r(`错误: ${o.message}`, !0);
        });
      }
      window.addEventListener("load", () => {
        l(), u();
      });
    })();

QingJ © 2025

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