cacl timer
当前为
// ==UserScript==
// @name bset-supervise
// @namespace dagu
// @version 2024-07-25-2
// @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('8') || 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 });
})();