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++; $('.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(); } })