This commit is contained in:
BianLzhaoMin 2025-11-20 11:10:32 +08:00
parent e851fb6399
commit e864cad88c
3 changed files with 335 additions and 227 deletions

View File

@ -1,6 +1,6 @@
var pers = checkPermission();
var example;
layui.use(['form','layer','laydate'], function () {
layui.use(["form", "layer", "laydate"], function () {
var layer = layui.layer;
var form = layui.form;
var laydate = layui.laydate;
@ -9,20 +9,21 @@ layui.use(['form','layer','laydate'], function () {
example.ajax.reload();
});
var minListDate = $('#hidMinListDate').val();//最小可选时间1990-02-01
var maxListDate = $('#hidMaxListDate').val();//最大可选时间2200-12-31
$('#startTime').val(getNowTime());
$('#endTime').val(getNowTime());
var begin = "#startTime", end = "#endTime";//开始时间选择框、结束时间选择框:文本框
var minListDate = $("#hidMinListDate").val(); //最小可选时间1990-02-01
var maxListDate = $("#hidMaxListDate").val(); //最大可选时间2200-12-31
$("#startTime").val(getNowTime());
$("#endTime").val(getNowTime());
var begin = "#startTime",
end = "#endTime"; //开始时间选择框、结束时间选择框:文本框
var endChange = function (val, date) {
if (date && date.year)
begindate.config.max = {
year: date.year,
month: date.month - 1,//必须减1才是正确值
month: date.month - 1, //必须减1才是正确值
date: date.date,
hours: date.hours,
minutes: date.minutes,
seconds: date.seconds
seconds: date.seconds,
};
else {
var dateInit = new Date(maxListDate.replace(/-/g, "/"));
@ -32,7 +33,7 @@ layui.use(['form','layer','laydate'], function () {
date: dateInit.getDate(),
hours: dateInit.getHours(),
minutes: dateInit.getMinutes(),
seconds: dateInit.getSeconds()
seconds: dateInit.getSeconds(),
};
}
};
@ -44,7 +45,7 @@ layui.use(['form','layer','laydate'], function () {
date: date.date,
hours: date.hours,
minutes: date.minutes,
seconds: date.seconds
seconds: date.seconds,
};
else {
var dateInit = new Date(minListDate.replace(/-/g, "/"));
@ -54,131 +55,212 @@ layui.use(['form','layer','laydate'], function () {
date: dateInit.getDate(),
hours: dateInit.getHours(),
minutes: dateInit.getMinutes(),
seconds: dateInit.getSeconds()
seconds: dateInit.getSeconds(),
};
}
};
var enddate = laydate.render({
elem: end,
format: 'yyyy-MM-dd',
format: "yyyy-MM-dd",
min: minListDate,
max: maxListDate,
done: endChange
done: endChange,
});
var begindate = laydate.render({
elem: begin,
format: 'yyyy-MM-dd',
format: "yyyy-MM-dd",
min: minListDate,
max: maxListDate,
done: beginChange
done: beginChange,
});
init();
});
function init() {
example =
$('#dt-table').DataTable({
"sort": false,
"searching": false,
"processing": true,
"serverSide": true,
"language": {
"url": ctxPath + "/js/plugin/datatables/Chinese.lang"
example = $("#dt-table").DataTable({
sort: false,
searching: false,
processing: true,
serverSide: true,
language: {
url: ctxPath + "/js/plugin/datatables/Chinese.lang",
},
ajax: {
url: systemPath + "/operlog/getAllList",
type: "post",
data: function (d) {
d.keyWord = $("#keyWord").val();
d.module = $("#module").val();
d.result = $("#result").val();
d.type = $("#type").val();
d.startTime = $("#startTime").val();
d.endTime = $("#endTime").val();
},
"ajax": {
"url": systemPath + "/operlog/getAllList",
"type": "post",
"data": function (d) {
d.keyWord = $('#keyWord').val();
d.module = $('#module').val();
d.result = $('#result').val();
d.type = $('#type').val();
d.startTime = $('#startTime').val();
d.endTime = $('#endTime').val();
},
"error": function (xhr, textStatus, errorThrown) {
var msg = xhr.responseText;
console.log(msg);
var response = JSON.parse(msg);
var code = response.code;
var message = response.message;
if (code == 400) {
layer.msg(message);
} else if (code == 401) {
localStorage.removeItem("smz-token");
layer.msg("token过期请先登录", {shift: -1, time: 1000}, function () {
location.href = ctxPath + '/login.html';
});
} else if (code == 403) {
console.log("未授权:" + message);
layer.msg('未授权');
} else if (code == 500) {
console.log('系统错误:' + message);
}
error: function (xhr, textStatus, errorThrown) {
var msg = xhr.responseText;
console.log(msg);
var response = JSON.parse(msg);
var code = response.code;
var message = response.message;
if (code == 400) {
layer.msg(message);
} else if (code == 401) {
localStorage.removeItem("smz-token");
layer.msg(
"token过期请先登录",
{ shift: -1, time: 1000 },
function () {
location.href = ctxPath + "/login.html";
}
);
} else if (code == 403) {
console.log("未授权:" + message);
layer.msg("未授权");
} else if (code == 500) {
console.log("系统错误:" + message);
}
},
"drawCallback": function() {
// alert( '表格重绘了' );
var thisDataTable = $('#dt-table').DataTable();
$(".pagination").append("<li>" +
},
drawCallback: function () {
// alert( '表格重绘了' );
var thisDataTable = $("#dt-table").DataTable();
$(".pagination").append(
"<li>" +
"<a class='paginate_button' style='padding:4px;' href='#' tabindex='0'>到 <input style='margin:0px;width:40px;' id='changePage'> 页</a>" +
"<a class='paginate_button' style='margin-bottom:1px' href='#' tabindex='0' id='dataTable-btn'>确认</a></li>");
//点击按钮跳转指定页数
$('#dataTable-btn').click(function (e) {
"<a class='paginate_button' style='margin-bottom:1px' href='#' tabindex='0' id='dataTable-btn'>确认</a></li>"
);
//点击按钮跳转指定页数
$("#dataTable-btn").click(function (e) {
if ($("#changePage").val() && $("#changePage").val() > 0) {
var redirectpage = $("#changePage").val() - 1;
} else {
var redirectpage = 0;
}
thisDataTable.page(redirectpage).draw("page");
});
//敲击回车键跳转指定页数
$("#changePage").keypress(function (e) {
if (event.keyCode == 13) {
if ($("#changePage").val() && $("#changePage").val() > 0) {
var redirectpage = $("#changePage").val() - 1;
} else {
var redirectpage = 0;
}
thisDataTable.page(redirectpage).draw( 'page' );
});
//敲击回车键跳转指定页数
$("#changePage").keypress(function (e) {
if(event.keyCode==13){
if ($("#changePage").val() && $("#changePage").val() > 0) {
var redirectpage = $("#changePage").val() - 1;
} else {
var redirectpage = 0;
}
thisDataTable.page(redirectpage).draw( 'page' );
}
});
},
"createdRow": function (row, data, dataIndex) {
var measures = data.registerCapital;
if (measures != null) {
if (measures.length > remarkShowLength) {//只有超长才有td点击事件
$(row).children('td').eq(3).attr('onclick', 'javascript:changeShowRemarks(this);');
$(row).children('td').eq(3).css('cursor', 'pointer');
}
$(row).children('td').eq(3).attr('content', data.registerCapital);
thisDataTable.page(redirectpage).draw("page");
}
},
"dom": "<'dt-toolbar'r>t<'dt-toolbar-footer'<'col-sm-4 col-xs-4 hidden-xs'i><'col-xs-8 col-sm-8' p v>>",
"columns": [
{"width":"5%",
data: function (row, type, set, meta) {
var c = meta.settings._iDisplayStart + meta.row + 1;
return c;
}
});
},
createdRow: function (row, data, dataIndex) {
var measures = data.registerCapital;
if (measures != null) {
if (measures.length > remarkShowLength) {
//只有超长才有td点击事件
$(row)
.children("td")
.eq(3)
.attr("onclick", "javascript:changeShowRemarks(this);");
$(row).children("td").eq(3).css("cursor", "pointer");
}
$(row)
.children("td")
.eq(3)
.attr("content", data.registerCapital);
}
},
dom: "<'dt-toolbar'r>t<'dt-toolbar-footer'<'col-sm-4 col-xs-4 hidden-xs'i><'col-xs-8 col-sm-8' p v>>",
columns: [
{
width: "5%",
data: function (row, type, set, meta) {
var c = meta.settings._iDisplayStart + meta.row + 1;
return c;
},
{"data": "operName", "defaultContent": "","width":"8%"},
{"data": "phone", "defaultContent": "","width":"8%"},
{"data": "type", "defaultContent": "","width":"8%"},
{"data": "title", "defaultContent": "","width":"10%"},
{"render": function (data, type, row) {
let jsonResult = row['jsonResult'];
let id = row['id'];
let html = "";
html = '<textarea class="layui-textarea">'+jsonResult+'</textarea>';
return html;
}, width: "43%"},
{"data": "operatoType", "defaultContent": "","width":"8%"},
{"data": "opersTime", "defaultContent": "","width":"10%"},
],
"order": [[0, "desc"], [1, "asc"]]
});
},
{ data: "operName", defaultContent: "", width: "8%" },
{ data: "phone", defaultContent: "", width: "8%" },
{ data: "type", defaultContent: "", width: "8%" },
{ data: "title", defaultContent: "", width: "10%" },
{
render: function (data, type, row) {
let jsonResult = row["jsonResult"];
let id = row["id"];
let html = "";
html =
'<textarea class="layui-textarea">' +
jsonResult +
"</textarea>";
return html;
},
width: "43%",
},
{ data: "operatoType", defaultContent: "", width: "8%" },
{ data: "opersTime", defaultContent: "", width: "10%" },
],
order: [
[0, "desc"],
[1, "asc"],
],
});
}
/**
* 导出数据
*/
function exportBtn() {
var index = layer.msg("数据较多,请稍等。。。", {
icon: 4,
time: 100000, //2秒关闭如果不配置默认是3秒
});
var token = localStorage.getItem("smz-token");
var keyWord = $("#keyWord").val();
var module = $("#module").val();
var result = $("#result").val();
var type = $("#type").val();
var startTime = $("#startTime").val();
var endTime = $("#endTime").val();
let param = {
keyWord: keyWord,
module: module,
result: result,
type: type,
startTime: startTime,
endTime: endTime,
};
let url =
ctxPath +
"/operlog/export?param=" +
encodeURIComponent(JSON.stringify(param));
let xhr = new XMLHttpRequest();
xhr.open("get", url, true);
//设置xhr请求的超时时间
xhr.timeout = 100000;
//设置响应返回的数据格式
xhr.responseType = "blob"; // 转换流
xhr.setRequestHeader("Authorization", token);
//构造表单数据
xhr.onload = function () {
if (this.status === 200) {
let blob = this.response;
var a = document.createElement("a");
var url = window.URL.createObjectURL(blob);
a.href = url;
layer.close(index);
a.download = "操作日志" + startTime + "-" + endTime + ".xlsx"; // 文件名
} else if (this.status === 401) {
localStorage.removeItem("smz-token");
layer.msg(
"用户登录过期,请重新登录",
{ icon: 5, time: 2000 },
function () {
location.href = ctxPath + "/login.html";
}
);
}
a.click();
window.URL.revokeObjectURL(url);
};
xhr.send();
}
/**
@ -188,7 +270,10 @@ function init() {
function getNowTime() {
var time = new Date();
var year = time.getFullYear();
var month = time.getMonth() + 1 >= 10 ? time.getMonth() + 1 : '0' + (time.getMonth() + 1);
var day = time.getDate() >= 10 ? time.getDate() : '0' + time.getDate();
var month =
time.getMonth() + 1 >= 10
? time.getMonth() + 1
: "0" + (time.getMonth() + 1);
var day = time.getDate() >= 10 ? time.getDate() : "0" + time.getDate();
return year + "-" + month + "-" + day;
}

View File

@ -1,5 +1,6 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>施工人员考勤打卡</title>
@ -7,76 +8,92 @@
<link rel="stylesheet" type="text/css" media="screen" href="../../../../css/dataTables.bootstrap.min.css">
<link rel="stylesheet" type="text/css" media="screen" href="../../../../layui/css/layui.css">
</head>
<body>
<div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<header style="height: 100%">
<div align="left">
<table style="width: 100%">
<tr>
<td>
<form class="layui-form" onsubmit="return false">
<div class="layui-inline">
<div class="layui-input-inline" style="display: flex;align-items: center;">
<input type="text" style="height: 30px;margin: 0px;width:10%;" id="name" name="name" placeholder="请输入姓名" class="form-control">
<input type="text" style="height: 30px;margin: 0px;width:10%;margin-left: 2px;" id="teamName" name="teamName" placeholder="请输入班组名称" class="form-control">
<select id="companyId" name="companyId" style="margin-left: 2px;" lay-verify="required" lay-search="" lay-filter="orgId" class="form-control input-sm"></select>
<select id="proId" name="proId" class="form-control input-sm" lay-verify="required" lay-search=""></select>
<select id="status" name="status" class="form-control input-sm">
<option value="" selected>全部</option>
<option value="0" >在建</option>
<option value="1">完工</option>
<option value="2">筹备</option>
<option value="3">停工</option>
</select>
<input type="text" style="width: 10%;" class="form-control" readonly placeholder="请选择日期" id="startTime">
<span>~</span>
<input type="text" style="width: 10%;" class="form-control" readonly placeholder="请选择日期" id="endTime" value='@DateTime.Now.ToString("yyyy-MM-dd")'>
<select id="attendance" name="attendance" class="form-control input-sm">
<option value="" selected>全部</option>
<option value="1" >已考勤</option>
<option value="0">未考勤</option>
</select>
&nbsp;<button id="searchBt" class="layui-btn layui-btn-sm" permission="sys:faceContrast:query"><i class="layui-icon"></i>搜索</button>
<button id="exportBt" onclick="exportBtn()" class="layui-btn layui-btn-sm">导出</button>
<input type="hidden" id="hidMinListDate" value="2022-07-01" />
<input type="hidden" id="hidMaxListDate" value='@DateTime.Now.ToString("yyyy-MM-dd")' />
</div>
</div>
</form>
</td>
</tr>
</table>
</div>
</header>
<div>
<div class="widget-body no-padding">
<table id="dt-table" class="table table-striped table-bordered table-hover" style="width:100%">
<thead>
<tr>
<th>序号</th>
<th>姓名</th>
<th>身份证号</th>
<th>工种</th>
<th>公司</th>
<th>工程名称</th>
<th>工程状态</th>
<th>分包商</th>
<th>班组</th>
<th>考勤天数</th>
<th>缺勤天数</th>
<th>操作</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<body>
<div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<header style="height: 100%">
<div align="left">
<table style="width: 100%">
<tr>
<td>
<form class="layui-form" onsubmit="return false">
<div class="layui-inline">
<div class="layui-input-inline" style="display: flex;align-items: center;">
<input type="text" style="height: 30px;margin: 0px;width:10%;" id="name"
name="name" placeholder="请输入姓名" class="form-control">
<input type="text"
style="height: 30px;margin: 0px;width:10%;margin-left: 2px;"
id="teamName" name="teamName" placeholder="请输入班组名称"
class="form-control">
<select id="companyId" name="companyId" style="margin-left: 2px;"
lay-verify="required" lay-search="" lay-filter="orgId"
class="form-control input-sm"></select>
<select id="proId" name="proId" class="form-control input-sm"
lay-verify="required" lay-search=""></select>
<select id="status" name="status" class="form-control input-sm">
<option value="" selected>全部</option>
<option value="0">在建</option>
<option value="1">完工</option>
<option value="2">筹备</option>
<option value="3">停工</option>
</select>
<input type="text" style="width: 10%;" class="form-control" readonly
placeholder="请选择日期" id="startTime">
<span>~</span>
<input type="text" style="width: 10%;" class="form-control" readonly
placeholder="请选择日期" id="endTime"
value='@DateTime.Now.ToString("yyyy-MM-dd")'>
<select id="attendance" name="attendance" class="form-control input-sm">
<option value="" selected>全部</option>
<option value="1">已考勤</option>
<option value="0">未考勤</option>
</select>
&nbsp;<button id="searchBt" class="layui-btn layui-btn-sm"
permission="sys:faceContrast:query"><i
class="layui-icon"></i>搜索</button>
<button id="exportBt" onclick="exportBtn()"
class="layui-btn layui-btn-sm">导出</button>
<input type="hidden" id="hidMinListDate" value="2022-07-01" />
<input type="hidden" id="hidMaxListDate"
value='@DateTime.Now.ToString("yyyy-MM-dd")' />
</div>
</div>
</form>
</td>
</tr>
</table>
</div>
</header>
<div>
<div class="widget-body no-padding">
<table id="dt-table" class="table table-striped table-bordered table-hover" style="width:100%">
<thead>
<tr>
<th>序号</th>
<th>姓名</th>
<th>身份证号</th>
<th>工种</th>
<th>公司</th>
<th>工程名称</th>
<th>工程状态</th>
<th>分包商</th>
<th>班组</th>
<th>考勤天数</th>
<th>缺勤天数</th>
<th>操作</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
<script type="text/javascript" src="../../../../js/libs/jquery-3.6.0.js"></script>
<script type="text/javascript" src="../../../../js/jq.js"></script>
@ -88,6 +105,7 @@
<script type="text/javascript" src="../../../../js/dict.js"></script>
<!--引入下拉选js-->
<script type="text/javascript" src="../../../../js/select.js"></script>
<script type="text/javascript" src="../../../../js/work/Person/AttendanceManage/AttendanceAnalyseList.js" defer="defer"></script>
<script type="text/javascript" src="../../../../js/work/Person/AttendanceManage/AttendanceAnalyseList.js"
defer="defer"></script>
<script type="text/javascript">
</script>

View File

@ -1,5 +1,6 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>系统操作日志</title>
@ -10,81 +11,85 @@
<style>
/* dataTables列内容居中 */
.table > tbody > tr > td {
.table>tbody>tr>td {
text-align: center;
vertical-align: middle;
}
/* dataTables表头居中 */
.table > thead:first-child > tr:first-child > th {
.table>thead:first-child>tr:first-child>th {
text-align: center;
vertical-align: middle;
}
.table-bordered > thead > tr > td, .table-bordered > thead > tr > th {
.table-bordered>thead>tr>td,
.table-bordered>thead>tr>th {
text-align: center;
}
.layui-select-title{
.layui-select-title {
width: 100px
}
</style>
</head>
<body>
<div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<header style="height: 100%">
<div align="left">
<form class="layui-form" onsubmit="return false">
<div class="form-group">
<div class="layui-inline">
<div class="layui-input-inline" style="display: flex;align-items: center;">
<input id="module" type="text" class="layui-input" placeholder="请输入功能模块">
<input id="result" type="text" class="layui-input" placeholder="请输入返回值">
<select id="type" name="type" class="layui-input">
<option value="1">后端</option>
<option value="2">APP</option>
</select>
<input type="text" class="form-control" readonly placeholder="请选择日期" id="startTime">
<span>~</span>
<input type="text" class="form-control" readonly placeholder="请选择日期" id="endTime" value='@DateTime.Now.ToString("yyyy-MM-dd")'>
<div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<header style="height: 100%">
<div align="left">
<form class="layui-form" onsubmit="return false">
<div class="form-group">
<div class="layui-inline">
<div class="layui-input-inline" style="display: flex;align-items: center;">
<input id="module" type="text" class="layui-input" placeholder="请输入功能模块">
<input id="result" type="text" class="layui-input" placeholder="请输入返回值">
<select id="type" name="type" class="layui-input">
<option value="1">后端</option>
<option value="2">APP</option>
</select>
<input type="text" class="form-control" readonly placeholder="请选择日期" id="startTime">
<span>~</span>
<input type="text" class="form-control" readonly placeholder="请选择日期" id="endTime"
value='@DateTime.Now.ToString("yyyy-MM-dd")'>
</div>
</div>
<button id="searchBt" class="layui-btn layui-btn-sm" permission="sys:operlog:query"><i
class="layui-icon">&#xe615;</i>搜索
</button>
<button id="exportBt" onclick="exportBtn()" class="layui-btn layui-btn-sm">导出</button>
<input type="hidden" id="hidMinListDate" value="2022-07-01" />
<input type="hidden" id="hidMaxListDate" value='@DateTime.Now.ToString("yyyy-MM-dd")' />
</div>
<button id="searchBt" class="layui-btn layui-btn-sm" permission="sys:operlog:query"
><i class="layui-icon">&#xe615;</i>搜索
</button>
<input type="hidden" id="hidMinListDate" value="2022-07-01" />
<input type="hidden" id="hidMaxListDate" value='@DateTime.Now.ToString("yyyy-MM-dd")' />
</div>
</form>
</div>
</header>
<div>
<div class="widget-body no-padding">
<table id="dt-table" class="table table-striped table-bordered table-hover" style="width:100%">
<thead>
<tr>
</tr>
<tr>
<th>序号</th>
<th>用户名</th>
<th>手机号</th>
<th>操作功能</th>
<th>日志</th>
<th>返回值</th>
<th>资源类型</th>
<th>操作时间</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</form>
</div>
</header>
<div>
<div class="widget-body no-padding">
<table id="dt-table" class="table table-striped table-bordered table-hover" style="width:100%">
<thead>
<tr>
</tr>
<tr>
<th>序号</th>
<th>用户名</th>
<th>手机号</th>
<th>操作功能</th>
<th>日志</th>
<th>返回值</th>
<th>资源类型</th>
<th>操作时间</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
<script type="text/javascript" src="../../../../js/libs/jquery-3.6.0.js"></script>
@ -97,4 +102,4 @@
<script type="text/javascript" src="../../../../js/dict.js"></script>
<script type="text/javascript" src="../../../../js/select.js"></script>
<script type="text/javascript" src="../../../../js/work/SettingManage/OperateLog/SysOperateLog.js"
defer="defer"></script>
defer="defer"></script>