UCAS auto evaluate

在中国科学院大学评教系统中自动选中“非常符合/非常满意”,并将文本框最小字数改为1个字。

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey, το Greasemonkey ή το Violentmonkey για να εγκαταστήσετε αυτόν τον κώδικα.

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey ή το Violentmonkey για να εγκαταστήσετε αυτόν τον κώδικα.

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey ή το Violentmonkey για να εγκαταστήσετε αυτόν τον κώδικα.

θα χρειαστεί να εγκαταστήσετε μια επέκταση όπως το Tampermonkey ή το Userscripts για να εγκαταστήσετε αυτόν τον κώδικα.

You will need to install an extension such as Tampermonkey to install this script.

Θα χρειαστεί να εγκαταστήσετε μια επέκταση διαχείρισης κώδικα χρήστη για να εγκαταστήσετε αυτόν τον κώδικα.

(Έχω ήδη έναν διαχειριστή κώδικα χρήστη, επιτρέψτε μου να τον εγκαταστήσω!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Έχω ήδη έναν διαχειριστή στυλ χρήστη, επιτρέψτε μου να τον εγκαταστήσω!)

// ==UserScript==
// @name         UCAS auto evaluate
// @namespace    https://github.com/sun-jiao
// @version      3.5
// @description  在中国科学院大学评教系统中自动选中“非常符合/非常满意”,并将文本框最小字数改为1个字。
// @author       Sun Jiao
// @match        *://xkcts.ucas.ac.cn:8443/evaluate/eva*
// @grant        none
// @license     description: CC BY-SA 4.0; code: GPL.
// ==/UserScript==

(function(){
    'use strict';

    function choose(name){
        var radio;
        radio = document.getElementsByName(name);
        if(radio.length > 0){
            radio[0].checked = 1;
        }
    };
    function setlength(name){
        var text;
        text = document.getElementsByName(name);
        if(text.length > 0){
            text[0].setAttribute("minlength","1");
        }
    };

    function autofill(name, string){
        var text;
        text = document.getElementsByName(name);
        if(text.length > 0){
            text[0].value = string;
        }
    };


    var i;

    for (i = 1346; i <= 1417; i++) {
        choose("item_" + i.toString());
    }

    choose("radio_1360")
    var multi = document.getElementsByName("item_1366");
    if(multi.length > 0){
        multi[0].checked = 0;
        multi[1].checked = 1;
        multi[4].checked = 1;
        multi[5].checked = 1;
    }
    var strings = [".",
                   ".",
                   ".",
                   ".",
                   ".",
                   ".",
                   ".", ]
    for (i = 0; i <= 4; i++) {
        var st = "item_" + (i+1355).toString()
        setlength(st)
        autofill(st, strings[i]);
    }

    for(i=0;i <= 1;i ++)
    {
        st = "item_" + (i+1403).toString()
        setlength(st)
        autofill(st, strings[i+5])
    }

(function() {
    'use strict';

    // 获取目标容器 .form-actions
    const formActionsDiv = document.querySelector('.form-actions');

    let newDiv = formActionsDiv

    if (!formActionsDiv) {
        console.error('无法找到 .form-actions 元素');
        newDiv = document.createElement('div');
        // 获取 .mc-body 元素
        let mcBodyDiv = document.querySelector('.mc-body');
        if (mcBodyDiv) {
console.log("dawda")
             // 获取 .mc-body 下一级的所有子元素
            let childElements = mcBodyDiv.children;

            // 遍历所有子元素
            Array.from(childElements).forEach((child) => {
                // 排除 <div class="head">、<p> 和 <form id="regfrm">
                if (!(child.classList && child.classList.contains('head')) &&
                    !(child.tagName === 'P') &&
                    !(child.id === 'regfrm')) {
                    // 将符合条件的元素添加到新 div 中
                    newDiv.appendChild(child);
                }
            });
        }

    }

    // 创建新的 div 元素
  //  newDiv.id = 'newDivContainer';  // 为新 div 设置 id(可选)
    newDiv.style.border = '3px solid #ccc';  // 设置新 div 的样式(可选)
    newDiv.style.padding = '10px';  // 设置一些内边距(可选)
    newDiv.style.backgroundColor = 'white';  // 设置背景色(可选)
    newDiv.style.boxShadow = '0px 4px 6px rgba(0, 0, 0, 0.1)';  // 为新 div 添加阴影效果(可选)
    newDiv.style.width = '300px';
    newDiv.style.height= '100px';
    newDiv.style.margin = '0px';

    // 将原有 .form-actions 的所有内容移动到新 div 中

    // 设置新 div 的定位样式,将其放置在右上角 300px 的位置
    newDiv.style.position = 'fixed';  // 固定定位
    newDiv.style.top = '200px';  // 距离页面顶部 300px
    newDiv.style.right = '100px';  // 距离页面右边缘 0px
    newDiv.style.zIndex = '9999';  // 设置较高的层级,确保在页面的上层




    // 添加拖动功能
    let offsetX, offsetY, isDragging = false;

    // 鼠标按下时开始拖动
    newDiv.addEventListener('mousedown', function(event) {
        isDragging = true;
        offsetX = event.clientX - newDiv.offsetLeft;  // 计算鼠标相对 div 的位置
        offsetY = event.clientY - newDiv.offsetTop;

        // 添加鼠标移动事件来实现拖动
        document.addEventListener('mousemove', moveDiv);
        // 鼠标松开时停止拖动
        document.addEventListener('mouseup', stopDrag);
    });

    // 移动 div
    function moveDiv(event) {
        if (isDragging) {
            newDiv.style.left = `${event.clientX - offsetX}px`;  // 更新 div 的 left 值
            newDiv.style.top = `${event.clientY - offsetY}px`;  // 更新 div 的 top 值
        }
    }

    // 停止拖动
    function stopDrag() {
        isDragging = false;
        document.removeEventListener('mousemove', moveDiv);  // 移除鼠标移动事件
        document.removeEventListener('mouseup', stopDrag);  // 移除鼠标松开事件
    }
    document.body.appendChild(newDiv);


    let imgElement = document.getElementById('adminValidateImg');
    // 将新 div 插入到页面中的合适位置,假设我们将它插入到 body 的末尾

    if (imgElement) {
        // 监听图片加载完成后放大
        imgElement.onload = function() {
            imgElement.style.width = (imgElement.width * 3) + 'px';
            imgElement.style.height = (imgElement.height * 3) + 'px';
        };

        // 如果图片已经加载完成,直接修改
        if (imgElement.complete) {
            imgElement.onload();
        }
    }

    const saveButton = document.getElementById('sb1');

    if (!saveButton) {
        console.error('没有找到 "保存" 按钮');
        return;
    }

    // 获取 "确定" 按钮
    const confirmButtonSelector = '.jbox-button[value="ok"]';

    // 点击保存按钮时触发的事件
    saveButton.addEventListener('click', function() {
        console.log('点击了保存按钮');

        // 每隔 1 秒检查一次是否出现 "确定" 按钮
        let intervalId = setInterval(function() {
            const confirmButton = document.querySelector(confirmButtonSelector);
            if (confirmButton) {
                console.log('找到了 "确定" 按钮,点击它');
                confirmButton.click();  // 点击 "确定" 按钮
                clearInterval(intervalId);  // 点击后清除定时器
            }
        }, 500);  // 每隔 1 秒检查一次
    });
})();
})();