您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
cacl timer
当前为
// ==UserScript== // @name bset-supervise // @namespace dagu // @version 2024-07-25-1 // @description cacl timer // @author dagu // @match http://jiangxi.ggjtfw.com/web/bussRecPeriodList/toPeriod* // @icon https://www.google.com/s2/favicons?sz=64&domain=ggjtfw.com // @grant GM_addStyle // @grant GM_setValue // @grant GM_getValue // @license MIT // ==/UserScript== (async function() { 'use strict'; var code = async function cacl(){ var stagemap = { '第一部分': 1, '第二部分': 2, '第三部分': 3, '第四部分': 4, } var typeTimer = { '模拟器Ⅱ型教学' : 0, '实操': 0, '远程教学' : 0 } var typeMileage = { '模拟器Ⅱ型教学' : 0, '实操': 0 } var stage = 0; function caclTimer(stage) { switch(stage){ case 1: case 4: return '总学时:' + typeTimer['远程教学']; case 2: return '总学时:' + typeTimer['实操']; case 3: var simTime = typeTimer['模拟器Ⅱ型教学'] var trueSimTime = simTime > 90 ? 90 : simTime return '总学时:' + (trueSimTime + typeTimer['实操']) + '。其中模拟器:' + simTime + ', 有效:' + trueSimTime } } function caclMileage(stage) { switch(stage){ case 1: case 4: return '总里程:0'; case 2: return '总里程:0'; case 3: var simTime = typeTimer['模拟器Ⅱ型教学'] var trueSimTime = simTime > 90 ? 90 : simTime // 模拟器里程比例 var p = 20 / 90 // 计算真实里程 var trueMaleage = trueSimTime > 23 ? trueSimTime * p : 0; trueMaleage = trueMaleage.toFixed(2) var allMileage = parseFloat(trueMaleage) + parseFloat(typeMileage['实操'].toFixed(2)) return '总里程:' + allMileage + '。其中模拟器:' + typeMileage['模拟器Ⅱ型教学'].toFixed(2) + ', 有效:' + trueMaleage } var simTime = typeMileage['模拟器Ⅱ型教学'] var trueSimTime = simTime > 20 ? 20 : simTime return trueSimTime + typeMileage['实操'] } var list = await document.querySelectorAll('.dataTables_scrollBody > table > tbody > tr') list.forEach(e => { stage = stagemap[e.children[6].innerText] typeTimer[e.children[15].innerText] += parseInt(e.children[12].outerText.replaceAll('分钟', '').replaceAll('未终审', '0')) typeMileage[e.children[15].innerText] += parseFloat(e.children[13].outerText) // 高亮显示照片问题学时 var errorTypeList = e.children[15].innerText.split(",") console.log(errorTypelist) }) var msg = caclTimer(stage) + "<br>" + caclMileage(stage) layer.alert(msg) console.log(typeTimer, typeMileage) } var script = document.createElement('script'); script.textContent = code.toString(); // 将script元素添加到DOM中 document.body.appendChild(script); queryPageCount(50) function addCaclButton(){ var div = document.getElementsByClassName("tablebtn")[0] console.log(div) div.innerHTML += '<a id="cacl" style="" class="layui-btn" onclick="cacl()">计算学时</a>'; } addCaclButton() async function modifyRows(){ var list = await document.querySelectorAll('.dataTables_scrollBody > table > tbody > tr') list.forEach(e => { // 高亮显示照片问题学时 var errorTypeList = e.children[14].innerText.split(",") if (errorTypeList.includes('4') || errorTypeList.includes('14')) { e.style.backgroundColor = 'lightgray'; } }) } // 高亮显示照片问题行 const targetDiv = document.querySelector('#list'); // 假设要监听的div有id为myDiv const observer = new MutationObserver(function(mutationsList) { for (let mutation of mutationsList) { if (mutation.type === 'childList') { modifyRows() } } }); observer.observe(targetDiv, { childList: true }); })();