创建悬浮面板用于快速评教
// ==UserScript==
// @name 东南大学快速评教工具
// @namespace http://tampermonkey.net/
// @version 1.0
// @description 创建悬浮面板用于快速评教
// @author You
// @match http*://pjxt.seu.edu.cn/*
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
// 你的ping函数
function ping(point=10, comment='好') {
// 确保只点击页面上原有的元素,不包括我们创建的悬浮面板中的元素
document.querySelectorAll(`[data-x-fz="${point}"]:not(#quickEvalPanel *)`).forEach(a => a.click());
document.querySelector('textarea:not(#quickEvalPanel textarea)').value = comment;
document.querySelector('.bh-btn-success:not(#quickEvalPanel .bh-btn-success)').click();
document.querySelector('.bh-dialog-btn:not(#quickEvalPanel .bh-dialog-btn)').click();
}
// 创建悬浮面板
function createQuickEvalPanel() {
// 创建面板容器
const panel = document.createElement('div');
panel.id = 'quickEvalPanel';
panel.style.position = 'fixed';
panel.style.bottom = '20px';
panel.style.right = '20px';
panel.style.zIndex = '9999';
panel.style.backgroundColor = '#fff';
panel.style.border = '1px solid #ddd';
panel.style.borderRadius = '5px';
panel.style.padding = '15px';
panel.style.boxShadow = '0 2px 10px rgba(0,0,0,0.1)';
panel.style.width = '250px';
panel.style.height = 'fit-content';
// 创建标题
const title = document.createElement('h3');
title.textContent = '快速评教';
title.style.marginTop = '0';
title.style.marginBottom = '15px';
title.style.fontSize = '16px';
title.style.color = '#333';
panel.appendChild(title);
// 创建分数选择
const scoreLabel = document.createElement('label');
scoreLabel.textContent = '评分: ';
scoreLabel.style.marginRight = '10px';
panel.appendChild(scoreLabel);
const scoreSelect = document.createElement('select');
scoreSelect.id = 'evalScore';
scoreSelect.style.marginBottom = '10px';
scoreSelect.style.padding = '5px';
scoreSelect.style.borderRadius = '3px';
scoreSelect.style.border = '1px solid #ccc';
// 添加分数选项(1-10分)
for (let i = 1; i <= 10; i++) {
const option = document.createElement('option');
option.value = i;
option.textContent = i + '分';
if (i === 10) option.selected = true; // 默认10分
scoreSelect.appendChild(option);
}
panel.appendChild(scoreSelect);
// 创建评语输入
const commentLabel = document.createElement('label');
commentLabel.textContent = '评语: ';
commentLabel.style.display = 'block';
commentLabel.style.marginBottom = '5px';
panel.appendChild(commentLabel);
const commentInput = document.createElement('textarea');
commentInput.id = 'evalComment';
commentInput.value = '好';
commentInput.style.width = '100%';
commentInput.style.height = '60px';
commentInput.style.marginBottom = '10px';
commentInput.style.padding = '5px';
commentInput.style.borderRadius = '3px';
commentInput.style.border = '1px solid #ccc';
commentInput.style.resize = 'vertical';
panel.appendChild(commentInput);
// 创建提交按钮
const submitBtn = document.createElement('button');
submitBtn.textContent = '提交评教';
submitBtn.style.backgroundColor = '#4CAF50';
submitBtn.style.color = 'white';
submitBtn.style.border = 'none';
submitBtn.style.padding = '8px 15px';
submitBtn.style.borderRadius = '3px';
submitBtn.style.cursor = 'pointer';
submitBtn.style.width = '100%';
submitBtn.addEventListener('click', function() {
const score = document.getElementById('evalScore').value;
const comment = document.getElementById('evalComment').value;
ping(parseInt(score), comment);
});
panel.appendChild(submitBtn);
// 添加到页面
document.body.appendChild(panel);
// 使面板可拖动
makeDraggable(panel, title);
}
// 使元素可拖动
function makeDraggable(element, handle) {
let pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
handle.onmousedown = dragMouseDown;
function dragMouseDown(e) {
e = e || window.event;
e.preventDefault();
pos3 = e.clientX;
pos4 = e.clientY;
document.onmouseup = closeDragElement;
document.onmousemove = elementDrag;
}
function elementDrag(e) {
e = e || window.event;
e.preventDefault();
pos1 = pos3 - e.clientX;
pos2 = pos4 - e.clientY;
pos3 = e.clientX;
pos4 = e.clientY;
element.style.top = (element.offsetTop - pos2) + "px";
element.style.left = (element.offsetLeft - pos1) + "px";
}
function closeDragElement() {
document.onmouseup = null;
document.onmousemove = null;
}
}
createQuickEvalPanel();
})();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址