Greasy Fork

xauat自动评教脚本

xauat自动评教

当前为 2025-05-23 提交的版本,查看 最新版本

// ==UserScript==
// @name         xauat自动评教脚本
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  xauat自动评教
// @author       huang
// @match        https://swjw.xauat.edu.cn/evaluation-student-frontend/*
// @grant        none
// ==/UserScript==

(function () {
    'use strict';
    console.log('xauat自动评教脚本-1.0');

    // 定义延迟函数
    function sleep(ms) {
        return new Promise(resolve => setTimeout(resolve, ms));
    }

    async function autoEvaluate() {
        // 等待页面加载完成
        await sleep(3000);

        // 选择并点击评教按钮
        let evaluateBtn = document.querySelector('.el-button.el-button--primary.el-button--mini.is-plain.is-round.borderhalf');
        if (evaluateBtn) {
            evaluateBtn.click();
            console.log('评教按钮点击成功');
            await sleep(1000); // 等待页面切换
        }

        // 获取所有选项并模拟点击选中
        let items = document.querySelectorAll('.item');
        for (let item of items) {
            let option_count = 0;
            let options = item.querySelectorAll('label.el-checkbox');
            for (let option of options) {
                let checkbox = option.querySelector('input.el-checkbox__original');
                if (checkbox && !checkbox.checked) { // 确定未选中状态
                    checkbox.click(); // 模拟点击选中
                    console.log(`选项 ${checkbox.value} 已选中`);
                }
                await sleep(300);
                if (option_count++ >= 3) {
                    break;
                }
            }

            let textarea = document.querySelector('textarea.el-textarea__inner');
            if (textarea) {
                textarea.value = '这个老师真棒!';
                textarea.dispatchEvent(new Event('input', { bubbles: true }));
                console.log('已填写评教内容');
            }
        }

        // 找到并点击提交按钮
        let submitBtn = document.querySelector('.el-button.el-button--primary.el-button--small');
        if (submitBtn) {
            submitBtn.click();
            console.log('提交按钮点击成功');
            alert('评教已自动完成并提交!');
        }
    }

    // Hook Vue路由变化
    document.querySelector("#app").__vue__.$router.afterHooks.push((to, from) => {
        console.log('handleRoutingEvent', to, from);

        if (to.path.startsWith("/timelySurvey/")) {
            console.log('autoEvaluate');
            autoEvaluate();
        }
    });
})();