亿赛通oa工时自动计算

亿赛通oa工时自动计算脚本 http://jsrun.net/2wsKp.js

目前為 2022-10-27 提交的版本,檢視 最新版本

// ==UserScript==
// @name         亿赛通oa工时自动计算
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  亿赛通oa工时自动计算脚本 http://jsrun.net/2wsKp.js
// @author       hangj
// @match        http://192.168.0.26:8080/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=0.26
// @grant        none
// ==/UserScript==

(function () {
    'use strict'; var count = 0
    function average(nums) {
        return (nums.reduce((a, b) => a + b) / nums.length).toFixed(2)
    }
    function notCurrDay(data) {
        var currDate = new Date()
        var currMonth = currDate.getFullYear() + "-" + (currDate.getMonth() + 1)
        var currDay = currMonth + "-" + currDate.getDate()
        return currDay != data.date
    }
    function isCurrMonth(data) {
        var currDate = new Date()
        var currMonth = currDate.getFullYear() + "-" + (currDate.getMonth() + 1)
        var currDay = currMonth + "-" + currDate.getDate()
        return currDay != data.date && data.month === currMonth
    }
    function isPreMonth(data) {
        var currDate = new Date()
        var currMonth = currDate.getFullYear() + "-" + (currDate.getMonth() + 1)
        return currMonth != data.month
    }
    function currHour(data) {
        var currDate = new Date()
        var currMonth = currDate.getFullYear() + "-" + (currDate.getMonth() + 1)
        return data.hour
    }
    function percentage(num, total) {
        if (num == 0 || total == 0) {
            return 0
        }
        return Math.round(num / total * 10000) / 100.00
    }
    function createHtml(name, value, filterFun) {
        var val = average(value.filter(filterFun).map(o => o.hour))
        return "<br/><span title='" + name + "'>" + name + ":" + val + ",符合率:" + percentage(val, 9.5) + "%</span>"
    }
    function countSecond() {
        var flag = false
        var title = document.getElementsByClassName("wea-new-top-title-breadcrumb")
        var logo = document.getElementsByClassName("e9header-top-logo")
        if (logo.length == 0 && count < 6) {
            flag = true
        } else {
            var tab = document.getElementsByClassName("table")
            var data = document.querySelectorAll("table > tbody > tr")
            if (data.length == 0) {
                flag = true
            } else {
                var hahas = []
                data.forEach(tr => {
                    var spans = tr.querySelectorAll("span.wea-url")
                    var haha = {}
                    haha.date = spans[0].innerText
                    haha.week = spans[1].innerText
                    haha.dept = spans[2].innerText
                    haha.name = spans[3].innerText
                    haha.start = spans[4].innerText
                    haha.end = spans[5].innerText
                    haha.er = spans[6].innerText
                    var dates = haha.date.split("-")
                    var index = haha.date.lastIndexOf("-")
                    haha.month = haha.date.substring(0, index)
                    var starts = haha.start.split(":")
                    var ends = haha.end.split(":")
                    haha.startTime = new Date(dates[0], dates[1] - 1, dates[2], starts[0], starts[1], starts[2])
                    haha.endTime = new Date(dates[0], dates[1] - 1, dates[2], ends[0], ends[1], ends[2])
                    haha.hour = parseInt(haha.endTime - haha.startTime) / 1000 / 60 / 60
                    hahas.push(haha)
                })
                var currM = createHtml("当月平均时长", hahas, isCurrMonth)
                var preM = createHtml("上月平均时长", hahas, isPreMonth)
                var allM = createHtml("历史平均时长", hahas, notCurrDay)
                title[0].innerHTML = title[0].innerText + currM + preM + allM
            }
        }
        count = count + 1
        if (flag) {
            setTimeout(countSecond, 1000)
        }
    }
    countSecond()
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址