HanvonAttendanceService/device-api-dump/report.html

958 lines
27 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title class="lang" key="device_setting">edit shift</title>
<link href="resources/plugins/bootstrap-3.3.0/css/bootstrap.min.css" rel="stylesheet"/>
<link href="resources/plugins/material-design-iconic-font-2.2.0/css/material-design-iconic-font.min.css" rel="stylesheet"/>
<link href="resources/plugins/bootstrap-table-1.17.0/bootstrap-table.min.css" rel="stylesheet"/>
<link href="resources/plugins/waves-0.7.5/waves.min.css" rel="stylesheet"/>
<link href="resources/plugins/jquery-confirm/jquery-confirm.min.css" rel="stylesheet"/>
<link href="resources/css/common.css" rel="stylesheet"/>
<link href="resources/css/diy.css" rel="stylesheet"/>
<style>
.tab {
display: none;
justify-content: center;
}
.tab.active {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 20px;
/*height: 90vh;*/
}
.tab-container {
display: none;
}
.tab-container.active {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
}
.tab-buttons {
display: flex;
}
.tab-buttons button {
background-color: #f1f1f1;
border: none;
outline: none;
cursor: pointer;
padding: 10px 20px;
transition: background-color 0.3s ease;
font-size: 16px;
font-weight: bold;
border-radius: 5px 5px 0 0;
margin-right: 10px;
}
.tab-buttons button.active {
background-color: #ccc;
}
.tab table {
width: 100%;
border-collapse: collapse;
font-family: Arial, sans-serif;
}
.tab th, .tab td {
padding: 10px;
text-align: left;
border-bottom: 1px solid #ddd;
}
#Schedule.tab table {
margin-bottom: 20px;
}
/* sc */
.xl655987
{padding-top:1px;
padding-right:1px;
padding-left:1px;
mso-ignore:padding;
color:black;
font-size:9.0pt;
font-weight:700;
font-style:normal;
text-decoration:none;
font-family:"Meiryo UI", serif;
mso-font-charset:0;
mso-number-format:General;
text-align:center;
vertical-align:middle;
border-top:.5pt solid black;
border-right:.5pt solid black;
border-bottom:.5pt solid black;
border-left:.5pt solid windowtext;
background:#7fcafa;
mso-pattern:black none;
white-space:nowrap;}
.xl665987
{padding-top:1px;
padding-right:1px;
padding-left:1px;
mso-ignore:padding;
color:windowtext;
font-size:8.0pt;
font-weight:400;
font-style:normal;
text-decoration:none;
font-family:"Meiryo UI", serif;
mso-font-charset:0;
mso-number-format:General;
text-align:center;
vertical-align:middle;
border-top:1.0pt solid green;
border-right:.5pt solid green;
border-bottom:1.0pt solid green;
border-left:.5pt solid green;
background:red;
mso-pattern:black none;
white-space:nowrap;}
.xl675987
{padding-top:1px;
padding-right:1px;
padding-left:1px;
mso-ignore:padding;
color:windowtext;
font-size:8.0pt;
font-weight:400;
font-style:normal;
text-decoration:none;
font-family:"Meiryo UI", serif;
mso-font-charset:0;
mso-number-format:"\@";
text-align:center;
vertical-align:middle;
border-top:1.0pt solid green;
border-right:.5pt solid green;
border-bottom:1.0pt solid green;
border-left:.5pt solid green;
background:#c5e5f9;
mso-pattern:black none;
white-space:nowrap;}
.xl685987
{padding-top:1px;
padding-right:1px;
padding-left:1px;
mso-ignore:padding;
color:windowtext;
font-size:8.0pt;
font-weight:400;
font-style:normal;
text-decoration:none;
font-family:"Meiryo UI", serif;
mso-font-charset:0;
mso-number-format:"\@";
text-align:center;
vertical-align:middle;
border-top:1.0pt solid green;
border-right:.5pt solid green;
border-bottom:1.0pt solid green;
border-left:.5pt solid green;
background:#f7f9fb;
mso-pattern:black none;
white-space:nowrap;}
.xl695987
{padding-top:1px;
padding-right:1px;
padding-left:1px;
mso-ignore:padding;
color:windowtext;
font-size:8.0pt;
font-weight:400;
font-style:normal;
text-decoration:none;
font-family:"Meiryo UI", serif;
mso-font-charset:0;
mso-number-format:General;
text-align:center;
vertical-align:middle;
border-top:1.0pt solid green;
border-right:.5pt solid green;
border-bottom:1.0pt solid green;
border-left:.5pt solid green;
background:#CCFFCC;
mso-pattern:black none;
white-space:nowrap;}
.xl705987
{padding-top:1px;
padding-right:1px;
padding-left:1px;
mso-ignore:padding;
color:black;
font-size:24.0pt;
font-weight:700;
font-style:normal;
text-decoration:none;
font-family:"Meiryo UI", serif;
mso-font-charset:0;
mso-number-format:General;
text-align:center;
vertical-align:middle;
background:#0d9bf7;
mso-pattern:black none;
white-space:nowrap;}
.xl715987
{padding-top:1px;
padding-right:1px;
padding-left:1px;
mso-ignore:padding;
color:black;
font-size:9.0pt;
font-weight:700;
font-style:normal;
text-decoration:none;
font-family:"Meiryo UI", serif;
mso-font-charset:0;
mso-number-format:General;
text-align:left;
vertical-align:middle;
border-top:.5pt solid black;
border-right:.5pt solid black;
border-bottom:.5pt solid black;
border-left:.5pt solid windowtext;
background:#7fcafa;
mso-pattern:black none;
white-space:nowrap;}
/* 考勤汇总表 */
.xl1518308
{padding-top:1px;
padding-right:1px;
padding-left:1px;
mso-ignore:padding;
color:black;
font-size:11.0pt;
font-weight:400;
font-style:normal;
text-decoration:none;
font-family:Arial, sans-serif;
mso-font-charset:0;
mso-number-format:General;
text-align:general;
vertical-align:bottom;
background:#7fcafa;
mso-pattern:auto;
white-space:nowrap;}
.xl6518308
{padding-top:1px;
padding-right:1px;
padding-left:1px;
mso-ignore:padding;
color:black;
font-size:9.0pt;
font-weight:700;
font-style:normal;
text-decoration:none;
font-family:"Meiryo UI", serif;
mso-font-charset:0;
mso-number-format:General;
text-align:center;
vertical-align:middle;
border-top:.5pt solid black;
border-right:.5pt solid black;
border-bottom:.5pt solid black;
border-left:.5pt solid windowtext;
background:#7fcafa;
mso-pattern:black none;
white-space:nowrap;}
.xl6618308
{padding-top:1px;
padding-right:1px;
padding-left:1px;
mso-ignore:padding;
color:black;
font-size:8.0pt;
font-weight:400;
font-style:normal;
text-decoration:none;
font-family:"Meiryo UI", serif;
mso-font-charset:0;
mso-number-format:"\@";
text-align:center;
vertical-align:middle;
border-top:1.0pt solid green;
border-right:.5pt solid green;
border-bottom:1.0pt solid green;
border-left:.5pt solid green;
background:#c5e5f9;
mso-pattern:black none;
white-space:nowrap;}
.xl6718308
{padding-top:1px;
padding-right:1px;
padding-left:1px;
mso-ignore:padding;
color:black;
font-size:8.0pt;
font-weight:400;
font-style:normal;
text-decoration:none;
font-family:"Meiryo UI", serif;
mso-font-charset:0;
mso-number-format:"\@";
text-align:center;
vertical-align:middle;
border-top:1.0pt solid green;
border-right:.5pt solid green;
border-bottom:1.0pt solid green;
border-left:.5pt solid green;
background:#f7f9fb;
mso-pattern:black none;
white-space:nowrap;}
.xl6818308
{padding-top:1px;
padding-right:1px;
padding-left:1px;
mso-ignore:padding;
color:black;
font-size:24.0pt;
font-weight:700;
font-style:normal;
text-decoration:none;
font-family:"Meiryo UI", serif;
mso-font-charset:0;
mso-number-format:General;
text-align:center;
vertical-align:middle;
background:#6ec2f8;
mso-pattern:black none;
white-space:nowrap;}
.xl6918308
{padding-top:1px;
padding-right:1px;
padding-left:1px;
mso-ignore:padding;
color:black;
font-size:6.0pt;
font-weight:700;
font-style:normal;
text-decoration:none;
font-family:"Meiryo UI", serif;
mso-font-charset:0;
mso-number-format:"\@";
text-align:left;
vertical-align:middle;
background:#6ec2f8;
mso-pattern:black none;
white-space:normal;}
.xl7018308
{padding-top:1px;
padding-right:1px;
padding-left:1px;
mso-ignore:padding;
color:black;
font-size:8.0pt;
font-weight:700;
font-style:normal;
text-decoration:none;
font-family:"Meiryo UI", serif;
mso-font-charset:0;
mso-number-format:General;
text-align:center;
vertical-align:middle;
border-top:1.0pt solid green;
border-right:.5pt solid green;
border-bottom:none;
border-left:.5pt solid green;
background:#99CCFF;
mso-pattern:black none;
white-space:normal;}
</style>
</head>
<body>
<div id="createDialog" class="crudDialog" hidden>
<form>
<div class="form-group">
<label for="inputuserid" class="lang" key="UISTR_ENROLL_ID">user id</label>
<input id="inputuserid" class="form-control" type="text" oninput="validateEnrollid(this)">
</div>
<div class="form-group">
<label for="inputstartdate" class="lang" key="UISTR_START">start</label>
<input id="inputstartdate" type="date" class="form-control">
</div>
<div class="form-group">
<label for="inputenddate"class="lang" key="UISTR_END">end</label>
<input id="inputenddate" type="date" class="form-control">
</div>
<div class="form-group">
<div id="progress-bar" class="progress">
<div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;">
0%
</div>
</div>
</div>
</form>
</div>
<div class="tab-container">
<div class="tab-buttons">
<button class="lang" key="UISTR_Report_DETAILS">Schedule</button>
<button class="lang" key="UISTR_MonthReport">Summary</button>
</div>
<div class="button-container">
<button class="optbtn lang" key="UISTR_PRINT" onclick="printActiveDiv()">Print</button>
</div>
</div>
<div id="Schedule" class="tab">
</div>
<div id="Summary" class="tab">
<table id="Summary_table" style='width:800pt'>
<col width=47 span=11 style='width:35pt'>
<col width=94 span=2 style='width:71pt'>
<tr height=43 style='height:32.25pt'>
<td colspan=13 class=xl6818308><span class="lang" key="UISTR_MonthReport">Summary</span></td>
</tr>
<tr height=24 style='height:18.2pt'>
<td colspan=13 class=xl6918308></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td rowspan=2 class=xl6518308 ><span class="lang" key="UISTR_ENROLL_ID">ID</span></td>
<td rowspan=2 class=xl6518308><span class="lang" key="UISTR_UserName">username</span></td>
<td rowspan=2 class=xl6518308><span class="lang" key="UISTR_Department">dept.</span></td>
<td colspan=2 class=xl6518308 ><span class="lang" key="UISTR_Work_hours">work hours</span></td>
<td colspan=2 class=xl6518308 ><span class="lang" key="UISTR_Late_minutes">late minutes</span></td>
<td colspan=2 class=xl6518308 ><span class="lang" key="UISTR_Leave_minutes">leave minutes</span></td>
<td colspan=2 class=xl6518308 ><span class="lang" key="UISTR_OT_hours">ot hours</span></td>
<td rowspan=2 class=xl6518308 ><span class="lang" key="UISTR_Work_Dates">work dates</span></td>
<td rowspan=2 class=xl6518308 ><span class="lang" key="UISTR_Truancy">truancy</span></td>
</tr>
<tr height=20 style='height:15.0pt'>
<td class=xl6518308 ><span class="lang" key="UISTR_ATTNormal">normal</span></td>
<td class=xl6518308 ><span class="lang" key="UISTR_Actual">actual</span></td>
<td class=xl6518308 ><span class="lang" key="UISTR_TIMES">times</span></td>
<td class=xl6518308 ><span class="lang" key="UISTR_Minute">minute</span></td>
<td class=xl6518308 ><span class="lang" key="UISTR_TIMES">times</span></td>
<td class=xl6518308 ><span class="lang" key="UISTR_Minute">minute</span></td>
<td class=xl6518308 ><span class="lang" key="UISTR_ATTNormal">normal</span></td>
<td class=xl6518308 ><span class="lang" key="UISTR_Actual">actual</span></td>
</tr>
</table>
</div>
<script src="resources/plugins/jquery.1.12.4.min.js"></script>
<script src="resources/plugins/bootstrap-3.3.0/js/bootstrap.min.js"></script>
<script src="resources/plugins/bootstrap-table-1.17.0/bootstrap-table.min.js"></script>
<script src="resources/plugins/waves-0.7.5/waves.min.js"></script>
<script src="resources/plugins/jquery-confirm/jquery-confirm.min.js"></script>
<script src="resources/plugins/jquery.cookie.js"></script>
<link href="resources/plugins/jquery-toastmessage/resources/css/jquery.toastmessage.css" rel="stylesheet"/>
<script src="resources/plugins/jquery-toastmessage/javascript/jquery.toastmessage.js"></script>
<script src="resources/js/notify.js"></script>
<script src="resources/js/lang.js"></script>
<script src="resources/js/common.js"></script>
<script src="resources/js/xlsx.full.min.js"></script>
<script>
let DI_USERID_FORMAT = parseInt($.cookie("USERID_FORMAT")) || 0;
const tabButtons = document.querySelectorAll('.tab-buttons button');
const tabs = document.querySelectorAll('.tab');
check_permission();
lang_load().then(() => {
getfromtodate();
}).catch(error => {
});
function convertEnrollId(strid) {
if (typeof strid === 'number') {
return strid > 0xFFFFFFFF ? strid.toString() : strid;
}
if (typeof strid === 'string' && /^\d+$/.test(strid) && DI_USERID_FORMAT != 2) {
const num = Number(strid);
return Number.isSafeInteger(num) ? num : strid;
}
return strid;
}
function set_report_input(data) {
// 创建表格元素
let table = document.createElement('table');
table.style.width = '800pt';
// 添加表格列宽
let colWidths = [47, 38, 47, 47, 47, 47, 42, 42, 66, 66, 66, 72];
for (let i = 0; i < colWidths.length; i++) {
let col = document.createElement('col');
col.style.width = colWidths[i] + 'pt';
table.appendChild(col);
}
// 添加表头
let thead = document.createElement('thead');
let tr = document.createElement('tr');
tr.height = 40;
let th = document.createElement('th');
th.colSpan = 13;
th.height = 40;
th.className = 'xl705987';
th.textContent = lang.UISTR_Report_DETAILS;
tr.appendChild(th);
thead.appendChild(tr);
tr = document.createElement('tr');
tr.height = 20;
th = document.createElement('th');
th.colSpan = 3;
th.height = 20;
th.className = 'xl715987';
th.textContent = lang.UISTR_ENROLL_ID+':'+data.enrollid;
tr.appendChild(th);
th = document.createElement('th');
th.colSpan = 10;
th.className = 'xl715987';
th.textContent =lang.UISTR_UserName+':'+data.name;
tr.appendChild(th);
thead.appendChild(tr);
tr = document.createElement('tr');
tr.height = 20;
th = document.createElement('th');
th.colSpan = 3;
th.height = 20;
th.className = 'xl655987';
th.textContent =lang.UISTR_Department+':'+data.department;
tr.appendChild(th);
th = document.createElement('th');
th.colSpan = 6;
th.className = 'xl655987';
th.textContent = lang.UISTR_UserShift+':'+data.shift;
tr.appendChild(th);
th = document.createElement('th');
th.colSpan = 4;
th.className = 'xl655987';
th.textContent =lang.UISTR_Holidaysdate+':'+data.date;
tr.appendChild(th);
thead.appendChild(tr);
tr = document.createElement('tr');
tr.height = 20;
th = document.createElement('th');
th.rowSpan = 2;
th.height = 40;
th.className = 'xl655987';
th.textContent = lang.UISTR_Holidaysdate;
tr.appendChild(th);
th = document.createElement('th');
th.rowSpan = 2;
th.className = 'xl655987';
th.textContent = lang.UISTR_WEEK;
tr.appendChild(th);
th = document.createElement('th');
th.colSpan = 2;
th.className = 'xl655987';
th.textContent = lang.UISTR_Section+'1';
tr.appendChild(th);
th = document.createElement('th');
th.colSpan = 2;
th.className = 'xl655987';
th.textContent = lang.UISTR_Section+'2';
tr.appendChild(th);
th = document.createElement('th');
th.colSpan = 2;
th.className = 'xl655987';
th.textContent =lang.UISTR_Section+'3';
tr.appendChild(th);
th = document.createElement('th');
th.colSpan = 2;
th.className = 'xl655987';
th.textContent = lang.UISTR_Work_hours;
tr.appendChild(th);
th = document.createElement('th');
th.rowSpan = 2;
th.className = 'xl655987';
th.textContent = lang.UISTR_OT_hours;
tr.appendChild(th);
th = document.createElement('th');
th.rowSpan = 2;
th.className = 'xl655987';
th.textContent = lang.UISTR_Late_minutes;
tr.appendChild(th);
th = document.createElement('th');
th.rowSpan = 2;
th.className = 'xl655987';
th.textContent = lang.UISTR_Leave_minutes;
tr.appendChild(th);
thead.appendChild(tr);
tr = document.createElement('tr');
tr.height = 20;
th = document.createElement('th');
th.className = 'xl655987';
th.textContent = lang.UISTR_ON_DUTY;
tr.appendChild(th);
th = document.createElement('th');
th.className = 'xl655987';
th.textContent = lang.UISTR_OFF_DUTY;
tr.appendChild(th);
th = document.createElement('th');
th.className = 'xl655987';
th.textContent = lang.UISTR_ON_DUTY;
tr.appendChild(th);
th = document.createElement('th');
th.className = 'xl655987';
th.textContent = lang.UISTR_OFF_DUTY;
tr.appendChild(th);
th = document.createElement('th');
th.className = 'xl655987';
th.textContent = lang.UISTR_ON_DUTY;
tr.appendChild(th);
th = document.createElement('th');
th.className = 'xl655987';
th.textContent = lang.UISTR_OFF_DUTY;
tr.appendChild(th);
th = document.createElement('th');
th.className = 'xl655987';
th.textContent = lang.UISTR_ATTNormal;
tr.appendChild(th);
th = document.createElement('th');
th.className = 'xl655987';
th.textContent = lang.UISTR_Actual;
tr.appendChild(th);
thead.appendChild(tr);
table.appendChild(thead);
// 添加表格数据
let tbody = document.createElement('tbody');
for (let i = 0; i < data.days.length; i++) {
let day = data.days[i];
let tr = document.createElement('tr');
tr.height = 20;
var vclassname=i%2==0?'xl685987':'xl675987'
let td = document.createElement('td');
td.height = 20;
td.className = vclassname;
td.textContent = day.day;
tr.appendChild(td);
td = document.createElement('td');
td.className = vclassname;
td.textContent = day.week;
tr.appendChild(td);
for (let j = 0; j < day.time.length; j++) {
td = document.createElement('td');
var vcolor=vclassname;
if(day.time[j].length !== 0){
if (day.flag[j] == 0 ){
vcolor='xl665987';
}
else if(day.flag[j]==2){
vcolor='xl695987';
}
}
td.className = vcolor;
td.textContent = day.time[j];
tr.appendChild(td);
}
td = document.createElement('td');
td.className = vclassname;
td.textContent = day.fatten;
tr.appendChild(td);
td = document.createElement('td');
td.className = vclassname;
td.textContent = day.fact_atten;
tr.appendChild(td);
td = document.createElement('td');
td.className = vclassname;
td.textContent = day.dayot;
tr.appendChild(td);
td = document.createElement('td');
td.className = vclassname;
td.textContent = day.daylate;
tr.appendChild(td);
td = document.createElement('td');
td.className = vclassname;
td.textContent = day.dayLeaveearly;
tr.appendChild(td);
tbody.appendChild(tr);
}
// 添加总计行
tr = document.createElement('tr');
tr.height = 20;
td = document.createElement('td');
td.colSpan = 8;
td.height = 20;
td.className = 'xl675987';
td.textContent = lang.UISTR_Summary+':';
tr.appendChild(td);
td = document.createElement('td');
td.className = 'xl675987';
td.textContent = data.work_hour;
tr.appendChild(td);
td = document.createElement('td');
td.className = 'xl675987';
td.textContent = data.atten_hour;
tr.appendChild(td);
td = document.createElement('td');
td.className = 'xl675987';
td.textContent = data.ot_hour;
tr.appendChild(td);
td = document.createElement('td');
td.className = 'xl675987';
td.textContent = data.late_minute;
tr.appendChild(td);
td = document.createElement('td');
td.className = 'xl675987';
td.textContent = data.leave_minute;
tr.appendChild(td);
tbody.appendChild(tr);
table.appendChild(tbody);
// 将表格添加到 DOM
let reportDiv = document.getElementById('Schedule');
reportDiv.appendChild(table);
}
let isDateUpdated = false;
function validateEnrollid(inputElement) {
let maxValue, maxLength;
switch(DI_USERID_FORMAT) {
case 0:
inputElement.value = inputElement.value.replace(/\D/g, '');
maxValue = 99999999;
maxLength = 8;
break;
case 1:
inputElement.value = inputElement.value.replace(/[^0-9]/g, '');
maxValue = BigInt('9223372036854775807');
maxLength = 19;
break;
case 2:
maxLength = 32;
break;
}
if (inputElement.value.length > maxLength) {
inputElement.value = inputElement.value.slice(0, maxLength);
}
if (DI_USERID_FORMAT !== 2) {
const numericValue = DI_USERID_FORMAT === 1 ?
BigInt(inputElement.value || 0) :
parseInt(inputElement.value || 0, 10);
if (numericValue > maxValue) {
inputElement.value = maxValue.toString();
}
}
}
function set_summary_input(data) {
const summarytable = document.getElementById('Summary_table');
const tableBody = summarytable.querySelector('tbody');
const rows = tableBody.rows;
const rowindex = rows.length;
const row = document.createElement('tr');
row.setAttribute('height', '15.0px');
const cssClass = rowindex % 2 === 0 ? 'xl6718308' : 'xl6618308';
row.innerHTML = `
<td class='${cssClass}' >${data.enrollid}</td>
<td class='${cssClass}' >${data.name}</td>
<td class='${cssClass}' >${data.department}</td>
<td class='${cssClass}' >${data.work_hour}</td>
<td class='${cssClass}' >${data.atten_hour}</td>
<td class='${cssClass}' >${data.late_times}</td>
<td class='${cssClass}' >${data.late_minute}</td>
<td class='${cssClass}' >${data.leave_times}</td>
<td class='${cssClass}' >${data.leave_minute}</td>
<td class='${cssClass}' >${data.std_ot_hour}</td>
<td class='${cssClass}' >${data.ot_hour}</td>
<td class='${cssClass}' >${data.work_days}</td>
<td class='${cssClass}' >${data.absent_days}</td>
`;
tableBody.appendChild(row);
// 只在第一次调用时更新日期部分
if (!isDateUpdated) {
const dateCell = summarytable.querySelector('tr:nth-child(2) td');
dateCell.textContent =lang.UISTR_Holidaysdate+':'+data.date;
isDateUpdated = true;
}
}
function get_userids(fromDate, toDate) {
let send = new Object();
send["password"] = $.cookie("pwd");
send["cmd"] = 'getuserids';
$.ajax({
url: debugserver + '/api',
type: 'POST',
contentType: "application/json",
dataType: "json",
data: JSON.stringify(send),
beforeSend: function() {
// 显示进度条
$('#progress-bar .progress-bar').css('width', '0%').attr('aria-valuenow', 0);
},
success: function(json) {
console.log("done", json);
let records = json.record;
let total = records.length;
let completed = 0;
for (let i = 0; i < records.length; i++){
let record = records[i];
report_get(fromDate, toDate, record, function() {
completed++;
let progress = (completed / total) * 100;
$('#progress-bar .progress-bar').css('width', progress + '%').attr('aria-valuenow', progress).text(Math.round(progress) + '%');
});
}
},
error: function(error) {
console.log("error::::", error);
}
});
}
function report_get(fromDate, toDate, enrollIdstr) {
let send = new Object()
send["password"] = $.cookie("pwd");
send["cmd"] = 'getreport';
if (enrollIdstr) {
send["enrollid"] = convertEnrollId(enrollIdstr);
}
if (fromDate) {
send["from"] = fromDate;
}
if (toDate) {
send["to"] = toDate;
}
console.log(send)
$.ajax({
url: debugserver+'/api',
type: 'POST',
contentType:"application/json",
dataType: "json",
data: JSON.stringify(send),
beforeSend: function() {
},
success: function(json){
console.log("done", json);
set_report_input(json);
set_summary_input(json);
const tabContainer = document.querySelector('.tab-container');
tabContainer.classList.add('active');
tabButtons[0].classList.add('active');
tabs[0].classList.add('active');
},
error: function(error){
console.log("error::::",error);
}
});
}
function getfromtodate() {
$.confirm({
type: 'blue',
animationSpeed: 300,
title: lang.UISTR_Report,
content: $('#createDialog').html(),
buttons: {
confirm: {
text: lang.UISTR_YES_OK,
btnClass: 'waves-effect waves-button',
action: function () {
let fromDate = this.$content.find('#inputstartdate').val();
let toDate = this.$content.find('#inputenddate').val();
let enrollIdstr = this.$content.find('#inputuserid').val();
if (enrollIdstr === '') {
get_userids(fromDate, toDate);
} else {
report_get(fromDate, toDate, enrollIdstr);
}
}
}
}
});
}
tabButtons.forEach((button, index) => {
button.addEventListener('click', () => {
// Remove active class from all buttons and tabs
tabButtons.forEach(btn => btn.classList.remove('active'));
tabs.forEach(tab => tab.classList.remove('active'));
// Add active class to the clicked button and its corresponding tab
button.classList.add('active');
tabs[index].classList.add('active');
});
});
function printActiveDiv() {
// 获取当前激活的标签页
const activeTabs = document.querySelectorAll('.tab.active');
// 检查是否有激活的标签页
if (activeTabs.length > 0) {
// 获取激活标签页的内容
const activeTabContent = activeTabs[0].innerHTML;
// 获取当前激活的 button 文本
const activeButton = document.querySelector('.tab-buttons .active');
const activeButtonText = activeButton ? activeButton.textContent : 'Print Report';
// 创建新窗口用于打印
const printWindow = window.open('', 'Print Window', 'width=800,height=600');
printWindow.document.write(`
<html>
<head>
<title>${activeButtonText}</title>
<style>
/* 添加必要的样式 */
@media print {
* {
-webkit-print-color-adjust: exact;
color-adjust: exact;
}
body {
color: initial;
background-color: initial;
}
table {
border-collapse: collapse;
width: 100%;
margin-bottom: 20px;
}
th, td {
border: 1px solid #ddd;
padding: 8px;
background-color: inherit; // 重置单元格背景色为继承
}
th {
background-color: #f2f2f2;
}
td {
background-color: inherit; // 确保数据单元格的背景色正确打印
}
}
</style>
</head>
<body>
${activeTabContent}
</body>
</html>
`);
// 打印窗口
printWindow.document.close();
printWindow.print();
// 关闭打印窗口
printWindow.close();
} else {
console.log('没有找到激活的标签页。');
}
}
</script>
</body>
</html>