增加了多个查询按钮
This commit is contained in:
142
main.js
142
main.js
@@ -7,6 +7,7 @@
|
|||||||
// @match http://192.168.36.67:7888/shr/dynamic.do?uipk=com.kingdee.eas.hr.ats.app.WorkCalendarItem*
|
// @match http://192.168.36.67:7888/shr/dynamic.do?uipk=com.kingdee.eas.hr.ats.app.WorkCalendarItem*
|
||||||
// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAdVBMVEX///////7+/v4kVZ729/lafbO2xd3x8/f5+vz8/Pzd4+4tW6GSp8xnh7nP2OgxXqLK1OZ1kb/s7/UgUZytvdhKcKw+aKgaTZlhgrbU3eqar9Dm6fFVd7CEnsZwjb4VSZfAy+BCbKq3xd58l8OXrM6nudaMo8kyjkGlAAABfklEQVQokT1Si5arIBCLDIqCiogP8FHtWvv/n3iH7vZyDjDMQAIJwLdlpVIlz0L8T0FAxDaTy5JBrWn52ZhxoO6tQ+ZyjT7fJSqRpYJAJte8qbDPmxKPY4vgXOqdhramwzp6B1GTKRJahjjVVdlQI3FauiTahkOmFfHyJ9qJduC2lHf4o69weiZYyLyAYvLWFe3O1apHa80AsZOpGfdhZrLHDfSDwpumFuVO5HqI8xot3xvrM5Qy+DGiqo3fTgbvteRRT36AHmlk2J/R26vlbHmuiMVrWtOlpoGPX2a2wV3BMjQiNSXakezVA50zfvbHyGTMQlcFnRNtRQXEl3u4lklWVRi6FNRuyTRD/5E7sXehvIlCBM6c3zBed3E/dNKqCdlg/bRIlENj/XHMxztphdUGxNxTKNhAPbz3/edjlEC0uRTLc6b81syu5K8fPOhxKtAvm5/NMw/vNRNfy1U9hUKpbnFNsyh8v0Pa0A/O1SyE+LrxV6mSdjH2gsPf/D//7BjTQny+YwAAAABJRU5ErkJggg==
|
// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAdVBMVEX///////7+/v4kVZ729/lafbO2xd3x8/f5+vz8/Pzd4+4tW6GSp8xnh7nP2OgxXqLK1OZ1kb/s7/UgUZytvdhKcKw+aKgaTZlhgrbU3eqar9Dm6fFVd7CEnsZwjb4VSZfAy+BCbKq3xd58l8OXrM6nudaMo8kyjkGlAAABfklEQVQokT1Si5arIBCLDIqCiogP8FHtWvv/n3iH7vZyDjDMQAIJwLdlpVIlz0L8T0FAxDaTy5JBrWn52ZhxoO6tQ+ZyjT7fJSqRpYJAJte8qbDPmxKPY4vgXOqdhramwzp6B1GTKRJahjjVVdlQI3FauiTahkOmFfHyJ9qJduC2lHf4o69weiZYyLyAYvLWFe3O1apHa80AsZOpGfdhZrLHDfSDwpumFuVO5HqI8xot3xvrM5Qy+DGiqo3fTgbvteRRT36AHmlk2J/R26vlbHmuiMVrWtOlpoGPX2a2wV3BMjQiNSXakezVA50zfvbHyGTMQlcFnRNtRQXEl3u4lklWVRi6FNRuyTRD/5E7sXehvIlCBM6c3zBed3E/dNKqCdlg/bRIlENj/XHMxztphdUGxNxTKNhAPbz3/edjlEC0uRTLc6b81syu5K8fPOhxKtAvm5/NMw/vNRNfy1U9hUKpbnFNsyh8v0Pa0A/O1SyE+LrxV6mSdjH2gsPf/D//7BjTQny+YwAAAABJRU5ErkJggg==
|
||||||
// @grant none
|
// @grant none
|
||||||
|
// @run-at document-idle
|
||||||
// ==/UserScript==
|
// ==/UserScript==
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
@@ -14727,9 +14728,57 @@
|
|||||||
}
|
}
|
||||||
return totalSum;
|
return totalSum;
|
||||||
}
|
}
|
||||||
// 创建并添加按钮
|
|
||||||
var button = document.createElement('button');
|
// 方便快速查询前一月、前二月、前三月
|
||||||
var copiedStyles = {
|
function simulateDateInput(elementId, dateValue) {
|
||||||
|
const inputElement = document.getElementById(elementId);
|
||||||
|
if (!inputElement) {
|
||||||
|
console.error(`未找到ID为 ${elementId} 的输入框`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
inputElement.focus();
|
||||||
|
inputElement.value = dateValue;
|
||||||
|
inputElement.dispatchEvent(new Event('input', {
|
||||||
|
bubbles: true,
|
||||||
|
cancelable: true
|
||||||
|
}));
|
||||||
|
|
||||||
|
inputElement.dispatchEvent(new Event('change', {
|
||||||
|
bubbles: true,
|
||||||
|
cancelable: true
|
||||||
|
}));
|
||||||
|
inputElement.blur();
|
||||||
|
}
|
||||||
|
|
||||||
|
function getCustomMonthRange(monthsAgo) {
|
||||||
|
const now = new Date();
|
||||||
|
let year = now.getFullYear();
|
||||||
|
let month = now.getMonth() - monthsAgo;
|
||||||
|
while (month < 0) {
|
||||||
|
month += 12;
|
||||||
|
year--;
|
||||||
|
}
|
||||||
|
const firstDay = new Date(year, month - 1, 20);
|
||||||
|
const lastDay = new Date(year, month, 19);
|
||||||
|
const formatLocal = (date) => {
|
||||||
|
return date.toLocaleDateString('en-CA', {
|
||||||
|
year: 'numeric',
|
||||||
|
month: '2-digit',
|
||||||
|
day: '2-digit'
|
||||||
|
}).replace(/\//g, '-');
|
||||||
|
};
|
||||||
|
return {
|
||||||
|
firstDay: formatLocal(firstDay),
|
||||||
|
lastDay: formatLocal(lastDay)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建菜单按钮
|
||||||
|
function createMenueButton(text, options = {}) {
|
||||||
|
const button = document.createElement('button');
|
||||||
|
button.textContent = text;
|
||||||
|
const copiedStyles = {
|
||||||
webkitTapHighlightColor: "rgba(0, 0, 0, 0)",
|
webkitTapHighlightColor: "rgba(0, 0, 0, 0)",
|
||||||
fontFamily: '"Helvetica Neue", Helvetica, Arial, "Microsoft Yahei", "Hiragino Sans GB", "Heiti SC", "WenQuanYi Micro Hei", sans-serif',
|
fontFamily: '"Helvetica Neue", Helvetica, Arial, "Microsoft Yahei", "Hiragino Sans GB", "Heiti SC", "WenQuanYi Micro Hei", sans-serif',
|
||||||
fontSize: "14px",
|
fontSize: "14px",
|
||||||
@@ -14746,15 +14795,84 @@
|
|||||||
color: "#e5e5e5",
|
color: "#e5e5e5",
|
||||||
};
|
};
|
||||||
Object.assign(button.style, copiedStyles);
|
Object.assign(button.style, copiedStyles);
|
||||||
button.textContent = '统计加班时间';
|
|
||||||
|
|
||||||
// 添加点击事件监听器
|
// 处理点击事件回调
|
||||||
button.addEventListener('click', function() {
|
if (typeof options.onClick === 'function') {
|
||||||
var message = sumOfSecondColumn('grid').toFixed(2);
|
button.addEventListener('click', options.onClick);
|
||||||
var table = document.querySelector("#gview_grid > div.ui-state-default.ui-jqgrid-hdiv > div > table > thead > tr")
|
}
|
||||||
var rows = table.getElementsByTagName('th');
|
return button;
|
||||||
|
}
|
||||||
|
// 查询工作时间
|
||||||
|
function get_work_time() {
|
||||||
|
const message = sumOfSecondColumn('grid').toFixed(2);
|
||||||
|
const table = document.querySelector("#gview_grid > div.ui-state-default.ui-jqgrid-hdiv > div > table > thead > tr")
|
||||||
|
const rows = table.getElementsByTagName('th');
|
||||||
// 修改表头
|
// 修改表头
|
||||||
rows[5].querySelector('#jqgh_grid_fillCardTimeStr').textContent = `加班时间(${message}小时)`;
|
rows[5].querySelector('#jqgh_grid_fillCardTimeStr').textContent = `加班时间(${message}小时)`;
|
||||||
|
}
|
||||||
|
|
||||||
|
var query_button = document.getElementById("query");
|
||||||
|
// 创建菜单按钮
|
||||||
|
const button = createMenueButton("统计加班时间", {
|
||||||
|
onClick: () => {
|
||||||
|
get_work_time();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const button0 = createMenueButton('查当月', {
|
||||||
|
onClick: () => {
|
||||||
|
const month = getCustomMonthRange(0);
|
||||||
|
const firstDay = month.firstDay;
|
||||||
|
const lastDay = month.lastDay;
|
||||||
|
console.log(`firstDay: ${firstDay}, lastDay ${lastDay}`)
|
||||||
|
simulateDateInput('beginDate', firstDay);
|
||||||
|
simulateDateInput('endDate', lastDay);
|
||||||
|
query_button.click();
|
||||||
|
setTimeout(function() {
|
||||||
|
get_work_time();
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const button1 = createMenueButton('查上月', {
|
||||||
|
onClick: () => {
|
||||||
|
const month = getCustomMonthRange(1);
|
||||||
|
const firstDay = month.firstDay;
|
||||||
|
const lastDay = month.lastDay;
|
||||||
|
console.log(`firstDay: ${firstDay}, lastDay ${lastDay}`)
|
||||||
|
simulateDateInput('beginDate', firstDay);
|
||||||
|
simulateDateInput('endDate', lastDay);
|
||||||
|
query_button.click();
|
||||||
|
setTimeout(function() {
|
||||||
|
get_work_time();
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const button2 = createMenueButton('查上上月', {
|
||||||
|
onClick: () => {
|
||||||
|
const month = getCustomMonthRange(2);
|
||||||
|
const firstDay = month.firstDay;
|
||||||
|
const lastDay = month.lastDay;
|
||||||
|
console.log(`firstDay: ${firstDay}, lastDay ${lastDay}`)
|
||||||
|
simulateDateInput('beginDate', firstDay);
|
||||||
|
simulateDateInput('endDate', lastDay);
|
||||||
|
query_button.click();
|
||||||
|
setTimeout(function() {
|
||||||
|
get_work_time();
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const button3 = createMenueButton('查上上上月', {
|
||||||
|
onClick: () => {
|
||||||
|
const month = getCustomMonthRange(3);
|
||||||
|
const firstDay = month.firstDay;
|
||||||
|
const lastDay = month.lastDay;
|
||||||
|
console.log(`firstDay: ${firstDay}, lastDay ${lastDay}`)
|
||||||
|
simulateDateInput('beginDate', firstDay);
|
||||||
|
simulateDateInput('endDate', lastDay);
|
||||||
|
query_button.click();
|
||||||
|
setTimeout(function() {
|
||||||
|
get_work_time();
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// 获取要将按钮添加到其中的容器
|
// 获取要将按钮添加到其中的容器
|
||||||
@@ -14763,6 +14881,10 @@
|
|||||||
container = document.body;
|
container = document.body;
|
||||||
}
|
}
|
||||||
container.appendChild(button);
|
container.appendChild(button);
|
||||||
|
container.appendChild(button0);
|
||||||
|
container.appendChild(button1);
|
||||||
|
container.appendChild(button2);
|
||||||
|
container.appendChild(button3);
|
||||||
console.log("复旦微加班时间统计脚本已加载");
|
console.log("复旦微加班时间统计脚本已加载");
|
||||||
console.log("点击按钮后会统计加班时间");
|
console.log("点击按钮后会统计加班时间");
|
||||||
})();
|
})()
|
Reference in New Issue
Block a user