const toggleButton = document.querySelector(".dark-light");
toggleButton.addEventListener("click", () => {
document.body.classList.toggle("dark-mode");
});
if (window.localStorage.getItem("employeeNo") != null && window.localStorage.getItem("employeeNo") !== '') {
loginAndLoadRecord()
} else {
cocoMessage.info(2000, "请先登录!");
}
document.querySelector('#logout').addEventListener("click", () => {
window.localStorage.removeItem("employeeNo");
window.localStorage.removeItem("username");
$('.job-cards').text("");
$('#employee-number').val("");
$('#username').text("未登陆");
$("#logout-div").hide();
$("#login-span").show();
$("#login").css("display", "block");
$("#jsessionId").css("display", "block");
$("#employee-number").css("display", "block");
})
let employeeNumberInput = document.querySelector('#employee-number');
if ($('#login-span').css('display') !== 'none') {
employeeNumberInput.focus()
}
//let jsessonIdInput = document.querySelector('#jsessionId');
let autoDaka = document.querySelector("#toggle--switch")
autoDaka.checked = window.localStorage.getItem("autodaka")
document.querySelector('#login').addEventListener("click", () => {
window.localStorage.setItem("employeeNo", employeeNumberInput.value);
// window.localStorage.setItem("jsessionId", jsessonIdInput.value);
window.localStorage.setItem("autodaka", autoDaka.checked);
loginAndLoadRecord();
})
function loginAndLoadRecord() {
$.ajax({
method: "get",
url: "/api/daka/username/" + window.localStorage.getItem("employeeNo") + "/" + window.localStorage.getItem("autodaka"),
success: function (result) {
if (result.success) {
// $("#login-span").css("display", "none");
$("#login").css("display", "none");
//$("#jsessionId").css("display", "none");
$("#employee-number").css("display", "none");
$('#username').text(result.data.username);
window.localStorage.setItem("username", result.data.username);
$("#logout-div").css("display", "block");
// 登录信息
$('#_user_input').val(result.data.username)
$('#_project_id_input').val(result.data.project_id)
$('#_project_name_input').val(result.data.projectname)
$('#_area_input').val(result.data.area)
$('#_device_input').val(result.data.device)
let userInfoDialog = $('.userinfo_dialog')
userInfoDialog.show();
setTimeout(
() => {
userInfoDialog.hide();
}, 3000
)
$('#user-head').off('click').on("click", () => {
if (userInfoDialog.css("display") === 'block') {
$('.userinfo_dialog').hide()
} else {
$('.userinfo_dialog').show()
}
})
loadDakaList();
} else {
window.localStorage.setItem("employeeNo", '');
cocoMessage.error("登陆失败!" + result.message, 3000);
}
},
error: function () {
cocoMessage.error("请求失败!", 3000);
}
})
}
let dateBeginTimeMap = {};
let dateEndTimeMap = {};
function loadDakaList() {
let closeLoading = cocoMessage.loading(true);
$.ajax({
method: "get",
url: "/api/daka/last/" + window.localStorage.getItem("employeeNo"),
success: function (result) {
if (result.success) {
let data = result.data;
let date = new Date();
let nowDate = date.getFullYear() + '-' + ((date.getMonth() + 1) < 10 ? '0' + date.getMonth() + 1 : date.getMonth() + 1) + '-' + (date.getDate() < 10 ? '0' + date.getDate() : date.getDate());
let index = 0;
for (var signlog of data) {
dateBeginTimeMap[signlog.yearmonth] = (signlog.begin_time == null ? "未打卡" : signlog.begin_time.substr(11, 5));
dateEndTimeMap[signlog.yearmonth] = (signlog.end_time == null ? "未打卡" : signlog.end_time.substr(11, 5));
index++;
let beginWarn = (signlog.begin_time != null && signlog.begin_time.substr(11, 5) > '09:30')
let endWarn = (signlog.end_time != null && signlog.end_time.substr(11, 5) < '18:30')
let buqianWarn = (signlog.actual_area_begin === '补签卡' || signlog.actual_area_end === '补签卡')
let weidakaWarn = (signlog.begin_time == null || signlog.end_time == null)
$('.job-cards').append('
' +
'
' + (nowDate === signlog.yearmonth ? "今天" : signlog.yearmonth) + '
' +
'
' +
signlog.area_id +
'
' +
'
' +
'' +
'' +
(signlog.autoDakaBeginTime == null ? "" : '') +
(signlog.autoDakaEndTime == null ? "" : '') +
// (signlog.end_time != null && signlog.end_time.substr(11, 5) > "21:00" ? '' : '') +
'
' +
(index <= 3 ? '
' +
'' +
'' +
'
' : '') +
(index > 3 ?
'
' +
signlog.actual_area_begin +
'
' +
(signlog.actual_area_begin !== signlog.actual_area_end ? '
' +
signlog.actual_area_end +
'
' : '')
: '') +
'
'
);
}
bindDakaClick();
bindAutoDakaClick();
bindRandomBeginTime();
bindRandomEndTime();
bindSaveDakaTime();
bindAutoDakaToggle();
} else {
cocoMessage.error("加载打卡记录失败!" + result.message, 3000);
}
closeLoading()
},
error: function () {
cocoMessage.error("请求失败!", 3000);
closeLoading()
}
});
}
function bindDakaClick() {
document.querySelectorAll(".daka-buttons").forEach((dakaButton) => {
$(dakaButton).off('click').on('click', function (e) {
let dialogDom = $('.dialog');
dialogDom.css("left", e.clientX)
dialogDom.css("top", e.clientY)
let titleDate = e.target.parentElement.parentElement.children[0];
let times = e.target.parentElement.parentElement.children[2].children;
let beginTime = times[0].outerText
let date = new Date()
let nowTime = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':' + (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes())
if (beginTime === '未打卡' && nowTime < '09:30') {
beginTime = nowTime
}
let endTime = times[1].outerText
if (endTime === '未打卡' && nowTime > '18:00') {
endTime = nowTime
}
$('#sign-date > span').text(titleDate.outerText);
$('#sign-begin-time').val(beginTime);
$('#sign-end-time').val(endTime);
dialogDom.show();
})
})
}
function bindAutoDakaClick() {
document.querySelectorAll(".auto-daka-buttons").forEach((autoDakaButton) => {
$(autoDakaButton).off('click').on('click', function (e) {
let titleDate = e.target.parentElement.parentElement.children[0].outerText;
let times = e.target.parentElement.parentElement.children[2].children;
let beginTime = times[0].outerText;
let endTime = times[1].outerText;
if (beginTime > "09:30") {
beginTime = randomBeginTime();
}
if (endTime === "未打卡" || endTime < '20:30') {
endTime = randomEndTime();
}
saveDakaTime(titleDate, beginTime, endTime);
})
})
}
function bindRandomBeginTime() {
$('#sign-begin-random').off('click').on("click", () => {
$('#sign-begin-time').val(randomBeginTime());
})
}
function bindRandomEndTime() {
$('#sign-end-random').off('click').on("click", () => {
$('#sign-end-time').val(randomEndTime());
})
}
function bindSaveDakaTime() {
$('#save-sign').off('click').on("click", () => {
let signDate = $('#sign-date > span').text();
let beginTime = $('#sign-begin-time').val();
let endTime = $('#sign-end-time').val();
saveDakaTime(signDate, beginTime, endTime);
})
}
function bindAutoDakaToggle() {
document.querySelectorAll("#toggle--switch").forEach((dakaButton) => {
$(dakaButton).off('change').on('change', function () {
window.localStorage.setItem("autodaka", this.checked);
$.ajax({
method: "get",
url: "/api/daka/auto/" + window.localStorage.getItem("employeeNo") + "/" + autoDaka.checked,
success: function (result) {
if (!result.success) {
cocoMessage.error("登陆失败!" + result.message, 3000);
}
},
error: function () {
cocoMessage.error("请求失败!", 3000);
}
})
})
})
}
function saveDakaTime(signDate, beginTime, endTime) {
let messageType = 0;
let beginTimeMessage = dateBeginTimeMap[signDate] !== beginTime;
let endTimeMessage = endTime !== '' && dateEndTimeMap[signDate] !== endTime;
if (beginTimeMessage && endTimeMessage) {
messageType = 1;
} else if (beginTimeMessage && !endTimeMessage) {
messageType = 2;
} else if (!beginTimeMessage && endTimeMessage) {
messageType = 3;
} else {
messageType = 4;
}
if (dateBeginTimeMap[signDate] !== beginTime) {
$.ajax({
method: "post",
url: "/api/daka/beginTime",
contentType: "application/json; charset=utf-8",
dataType: 'json',
data: JSON.stringify({
'employeeNo': window.localStorage.getItem("employeeNo"),
'date': signDate,
'time': beginTime
}),
success: function (result) {
if (!result.success) {
success = false;
cocoMessage.error("打上班卡失败!" + result.message, 3000);
} else {
if (messageType === 2) {
setTimeout(function () {
$('.dialog').hide();
$('.job-cards').html('');
loadDakaList();
}, 1000);
}
}
},
error: function () {
cocoMessage.error("请求失败!", 3000);
}
});
}
if (endTime !== '' && dateEndTimeMap[signDate] !== endTime) {
$.ajax({
method: "post",
url: "/api/daka/endTime",
contentType: "application/json; charset=utf-8",
dataType: 'json',
data: JSON.stringify({
'employeeNo': window.localStorage.getItem("employeeNo"),
'date': signDate,
'time': endTime
}),
success: function (result) {
if (!result.success) {
success = false;
cocoMessage.error("打下班卡失败!" + result.message, 3000);
} else {
if (messageType === 1 || messageType === 3) {
setTimeout(function () {
$('.dialog').hide();
$('.job-cards').html('');
loadDakaList();
}, 1000);
}
}
},
error: function () {
cocoMessage.error("请求失败!", 3000);
}
});
}
if (messageType === 4) {
cocoMessage.info(1000, "没有变更");
}
}
function randomBeginTime() {
let randomMinutes = Math.round(Math.random() * 30);
return "09:" + (randomMinutes < 10 ? "0" + randomMinutes : randomMinutes);
}
function randomEndTime() {
let hourArray = [18, 19, 20, 21, 22, 23, 20, 21, 22, 20, 20, 21];
let randomHour = hourArray[Math.round(Math.random() * 9)];
let randomMinute;
if (randomHour === 18) {
randomMinute = Math.round(Math.random() * 30) + 29;
} else {
randomMinute = Math.round(Math.random() * 59);
if (randomMinute < 10) {
randomMinute = '0' + randomMinute;
}
}
return randomHour + ":" + randomMinute;
}
$(document).click(function(e) {
var $target = $(e.target);
//点击表情选择按钮和表情选择框以外的地方 隐藏表情选择框
if (!$target.is('.dialog *') && !$target.is('.daka-buttons')) {
$('.dialog').hide();
}
if (!$target.is('.userinfo_dialog *') && !$target.is('#user-head')) {
$('.userinfo_dialog').hide();
}
})