【油猴脚本】天津工业大学URP教务系统查看本学期详细成绩V2.0(平时、期中、期末、实验等详细分)
warning:
这篇文章距离上次修改已过471天,其中的内容可能已经有所变动。
此方法仅限电脑端,2024年1月14日已失效
快捷安装地址(需浏览器已安装油猴脚本):
https://greasyfork.org/zh-CN/scripts/484461
使用效果:


适用范围:
“本学期成绩”页面
https://jwxs.tiangong.edu.cn/student/integratedQuery/scoreQuery/thisTermScores/index
新建脚本方法:
1.在Chrome或Edge浏览器内安装油猴Tampermonkey插件(具体方法可以百度/哔哩哔哩寻找)
2.找到脚本图标,点击“管理面板”,如下图

3.右上方区域找到“+”的图标,点击,如下图

4.将下方代码覆盖掉原有内容,按下Ctrl+S快捷键保存
5.打开“本学期成绩”页面
油猴脚本代码(安装油猴脚本方法略):
// ==UserScript==
// @name 强制开启详细分数查询
// @author Drzad
// @match https://jwxs.tiangong.edu.cn/student/integratedQuery/*
// @description 适用于天津工业大学URP高校教学管理与服务平台“本学期成绩查询列表”页面,能够自动显示详细分数和分数代码
// @grant none
// @version 2.1
// ==/UserScript==
(function() {
'use strict';
$("#showScoreDetail").val("1");
// 成绩类别映射
const scoreCategoryMapping = {
"001-1": "课堂成绩(平时)",
"001-2": "课堂成绩(期中)",
"001-3": "课堂成绩(期末)",
"002-1": "实验成绩(平时)",
"002-2": "实验成绩(期中)",
"002-3": "实验成绩(期末)",
"003-1": "实践成绩(平时)",
"003-2": "实践成绩(期中)",
"003-3": "实践成绩(期末)"
};
// 创建一个观察者对象
let observer = new MutationObserver((mutations, obs) => {
let table = $('#scoretbody tr');
if (table.length) {
// 表格存在,执行脚本
modifyTableAndRunAjax();
// 停止观察
obs.disconnect();
}
});
// 配置观察者选项:仅监视子元素的变动
let config = { childList: true, subtree: true };
// 选择需要观察变动的节点
let targetNode = document.body;
// 启动观察者
observer.observe(targetNode, config);
// 修改表格并运行AJAX的函数
function modifyTableAndRunAjax() {
// 向表头添加新列
$('table.table thead tr').append('<th>成绩明细</th>');
// 向每个表格行添加新数据列
$('table.table tbody tr').append('<td class="score-details"></td>');
// 对<tbody>内的每个<tr>元素进行遍历
let rows = $('table.table tbody tr');
rows.each(function() {
let row = $(this);
let onclickElement = row.find('[onclick]');
if (onclickElement.length) {
let onclickArgs = onclickElement.attr('onclick');
let argsMatch = onclickArgs.match(/\((.*?)\)/);
if (argsMatch && argsMatch[1]) {
let args = argsMatch[1].split(',').map(arg => arg.trim().replace(/"/g, ''));
if (args.length >= 4) {
let zxjxjhh = args[0];
let kch = args[1];
let kxh = args[2];
let kssj = args[3];
// 发送Ajax请求
$.ajax({
url: "/student/integratedQuery/scoreQuery/subitemScore/look",
type: "post",
data: `zxjxjhh=${zxjxjhh}&kch=${kch}&kxh=${kxh}&kssj=${kssj}¶m=1`,
dataType: "json",
success: function (response) {
if (response.scoreDetailList && response.scoreDetailList.length > 0) {
let scoreDetails = response.scoreDetailList.map(detail => {
let scoreCategory = scoreCategoryMapping[detail.id.scoreSubItemCode] || detail.id.scoreSubItemCode;
return `${scoreCategory}: ${detail.subItemScore}`;
}).join('<br>');
// 在新添加的单元格中显示成绩明细
row.find('.score-details').html(scoreDetails);
}
},
error: function (error) {
console.log('请求失败: ', error);
}
});
}
}
} else {
// 修复未定成绩时候的多余格
row.find('td:empty:first').remove();
}
});
}
})();
注:此方法仅供学习交流使用,免费分享,脚本开源,不可用于任何形式的销售。
大佬,这个代码好像不太行了
2023年12月发现该方法已失效,原因是URP系统更新了对详细成绩的业务代码。测试发现,仍然存在开放接口能够查询,具体方法比较麻烦,正在寻找方便快捷的方法,我会尽快更新。
大佬请问麻烦的方法查看平时成绩怎么看呀,可以出个教程吗,自己看源程序还是有课程明细的程序在的,但是不知道怎么改TT
更新后那些原来的课程明细的接口都被关闭了,前台也不调用了,调用的也没返回结果
坐等大佬更新
已更新
求大佬更新
求大佬更新
求大佬更新
求大佬更新
好像还是失效
大佬,现在这个又看不了了
离谱,发出来第4天,又把接口给我封了,真就网络攻防了
求大佬更新
求大佬更新,新学期查不了了
求大佬更新,新学期看不了
求更新
学长有空能不能看看还有没有其他的Api了,look的不响应
大佬,新学期链接还会更新吗
求更新
求更新