Mutx163学习通自动评教

学习通自动评价,默认满分

目前为 2024-10-16 提交的版本。查看 最新版本

// ==UserScript==
// @name         Mutx163学习通自动评教
// @namespace    http://tampermonkey.net/
// @version      v1.22
// @description  学习通自动评价,默认满分
// @author       Mutx163
// @match        https://newes.chaoxing.com/pj/newesReception/questionnaireInfo*
// @icon
// @license MIT
// @grant        none
// ==/UserScript==
//默认开启了自动提交,把不喜欢的话自动提交下面的那行代码注释掉即可


window.onload = function() {
    'use strict';

    // 创建一个按钮用于控制自动评教
    const autoEvaluateButton = document.createElement('button');
    autoEvaluateButton.textContent = '启动自动评教';
    autoEvaluateButton.style.position = 'fixed';
    autoEvaluateButton.style.top = '10px';
    autoEvaluateButton.style.right = '10px';
    autoEvaluateButton.style.zIndex = '1000';
    document.body.appendChild(autoEvaluateButton);

    // 检查localStorage中的状态
    const autoEvaluateEnabled = localStorage.getItem('autoEvaluateEnabled') === 'true';

    // 根据存储的状态更新按钮文本
    autoEvaluateButton.textContent = autoEvaluateEnabled ? '禁用自动评教' : '启动自动评教';

    autoEvaluateButton.addEventListener('click', function() {
        const isEnabled = localStorage.getItem('autoEvaluateEnabled') === 'true';
        localStorage.setItem('autoEvaluateEnabled', !isEnabled);
        autoEvaluateButton.textContent = !isEnabled ? '禁用自动评教' : '启动自动评教';

        if (!isEnabled) {
            startAutoEvaluation();
        }
    });

    // 如果已启用,自动开始评教
    if (autoEvaluateEnabled) {
        startAutoEvaluation();
    }
};

function startAutoEvaluation() {
    setTimeout(() => {
        // 查找所有 class 为 'dafen' 的输入框,并自动填写满分
        const scoreInputs = document.querySelectorAll('input.dafen');
        if (scoreInputs.length > 0) {
            scoreInputs.forEach(input => {
                const maxScore = input.getAttribute('maxscore'); // 获取最大分数
                input.value = maxScore; // 自动填写最大分数
                const keyupEvent = new Event('keyup', {
                    bubbles: true,
                    cancelable: true
                });
                input.dispatchEvent(keyupEvent); // 触发输入事件,使前端行为一致
            });
            console.log('已找到并填写所有评分框的满分。');
        } else {
            console.error('未找到评分输入框。');
        }

        // 查找 class 为 'blueTextarea' 的文本框并自动填写 "无"
        const textareas = document.querySelectorAll('textarea.blueTextarea');
        if (textareas.length > 0) {
            textareas.forEach(textarea => {
                textarea.value = '无'; // 自动填写 "无"
                const keyupEvent = new Event('keyup', {
                    bubbles: true,
                    cancelable: true
                });
                textarea.dispatchEvent(keyupEvent); // 触发输入事件
            });
            console.log('已找到并填写所有文本框为 "无"。');
        } else {
            console.error('未找到文本输入区域。');
        }

        // 延迟点击提交按钮,确保前面的操作已完成
        setTimeout(() => {
            const submitButton = document.querySelector('a[onclick="save(2);"]');
            if (submitButton) {
                const clickEvent = new MouseEvent('click', {
                    bubbles: true,
                    cancelable: true,
                    view: window
                });
                submitButton.dispatchEvent(clickEvent);
                console.log('提交按钮已模拟点击。');

                // 延迟点击弹窗中的“确定”按钮,以确保弹窗已经出现
                setTimeout(() => {
                    const confirmButton = document.querySelector('a.layui-layer-btn0');
                    if (confirmButton) {
                        const clickEvent = new MouseEvent('click', {
                            bubbles: true,
                            cancelable: true,
                            view: window
                        });
                        confirmButton.dispatchEvent(clickEvent);
                        console.log('弹窗中的“确定”按钮已模拟点击。');
                    } else {
                        console.error('弹窗中的“确定”按钮未找到。');
                    }
                }, 1000); // 根据弹窗出现的实际延迟调整这个时间
            } else {
                console.error('提交按钮未找到,需要手动提交或检查选择器。');
            }
        }, 500); // 延迟500毫秒以确保所有评分框和文本框的值被正确设置和处理
    }, 1000); // 延迟1秒执行,根据实际加载时间调整
}

QingJ © 2025

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