增加日志功能
This commit is contained in:
@@ -53,24 +53,13 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="tableToolbar">
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="clearAll">
|
||||
<i class="layui-icon layui-icon-delete"></i> 清空日志
|
||||
</button>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="tableBar">
|
||||
<a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="del">删除</a>
|
||||
</script>
|
||||
|
||||
<script src="/static/layui/layui.js"></script>
|
||||
<script>
|
||||
layui.use(['table', 'form', 'laydate'], function(){
|
||||
layui.use(['table', 'form', 'laydate', 'layer'], function(){
|
||||
var table = layui.table;
|
||||
var form = layui.form;
|
||||
var laydate = layui.laydate;
|
||||
var layer = layui.layer;
|
||||
|
||||
// 初始化时间范围选择器
|
||||
laydate.render({
|
||||
@@ -83,35 +72,30 @@
|
||||
table.render({
|
||||
elem: '#operationLogTable',
|
||||
url: '{:url("log/operation")}',
|
||||
method: 'post',
|
||||
toolbar: '#tableToolbar',
|
||||
method: 'get',
|
||||
defaultToolbar: ['filter', 'exports', 'print'],
|
||||
parseData: function(res) {
|
||||
return {
|
||||
"code": res.code === 0 ? 0 : 1,
|
||||
"msg": res.msg,
|
||||
"count": res.count,
|
||||
"data": res.data
|
||||
"code": 0,
|
||||
"msg": res.msg || '获取成功',
|
||||
"count": res.count || 0,
|
||||
"data": res.data || []
|
||||
};
|
||||
},
|
||||
cols: [[
|
||||
{field: 'id', title: 'ID', width: 80, sort: true},
|
||||
{field: 'username', title: '用户名', width: 120},
|
||||
{field: 'module', title: '模块', width: 120},
|
||||
{field: 'operation', title: '操作', width: 120},
|
||||
{field: 'request_method', title: '请求方法', width: 100},
|
||||
{field: 'request_url', title: '请求URL', width: 200},
|
||||
{field: 'request_params', title: '请求参数', width: 200},
|
||||
{field: 'ip_address', title: 'IP地址', width: 130},
|
||||
{field: 'status', title: '状态', width: 100, templet: function(d){
|
||||
return d.status == 1 ?
|
||||
'<span class="layui-badge layui-bg-green">成功</span>' :
|
||||
'<span class="layui-badge layui-bg-red">失败</span>';
|
||||
{field: 'id', title: 'ID', width: 80, sort: true, align: 'center'},
|
||||
{field: 'username', title: '操作人', width: 120, align: 'center'},
|
||||
{field: 'module', title: '模块', width: 120, align: 'center'},
|
||||
{field: 'operation', title: '操作', width: 150, align: 'center'},
|
||||
{field: 'request_method', title: '请求方法', width: 100, align: 'center'},
|
||||
{field: 'request_url', title: '请求地址', align: 'center'},
|
||||
{field: 'ip_address', title: 'IP地址', width: 120, align: 'center'},
|
||||
{field: 'status', title: '状态', width: 100, align: 'center', templet: function(d){
|
||||
return d.status == 1 ? '<span class="layui-badge layui-bg-green">成功</span>' : '<span class="layui-badge layui-bg-red">失败</span>';
|
||||
}},
|
||||
{field: 'error_message', title: '错误信息', width: 150},
|
||||
{field: 'operation_time', title: '操作时间', width: 180, sort: true},
|
||||
{field: 'execution_time', title: '执行时间(ms)', width: 120, sort: true},
|
||||
{title: '操作', toolbar: '#tableBar', width: 80, fixed: 'right'}
|
||||
{field: 'operation_time', title: '操作时间', width: 180, align: 'center'},
|
||||
{field: 'execution_time', title: '执行时间(ms)', width: 120, align: 'center'},
|
||||
{title: '操作', width: 120, toolbar: '#operationBar', fixed: 'right', align: 'center'}
|
||||
]],
|
||||
page: true,
|
||||
limit: 10,
|
||||
@@ -138,38 +122,52 @@
|
||||
// 监听工具条
|
||||
table.on('tool(operationLogTable)', function(obj){
|
||||
var data = obj.data;
|
||||
if(obj.event === 'del'){
|
||||
layer.confirm('确定删除这条日志吗?', function(index){
|
||||
$.post('{:url("log/deleteOperation")}', {id: data.id}, function(res){
|
||||
if(obj.event === 'detail'){
|
||||
// 获取详情
|
||||
$.ajax({
|
||||
url: '{:url("log/getOperationDetail")}',
|
||||
type: 'GET',
|
||||
data: {id: data.id},
|
||||
success: function(res){
|
||||
if(res.code === 0){
|
||||
layer.msg(res.msg, {icon: 1});
|
||||
obj.del();
|
||||
}else{
|
||||
layer.msg(res.msg, {icon: 2});
|
||||
var detail = res.data;
|
||||
var content = '<div class="layui-card">' +
|
||||
'<div class="layui-card-body">' +
|
||||
'<table class="layui-table" lay-skin="nob">' +
|
||||
'<colgroup><col width="100"><col></colgroup>' +
|
||||
'<tbody>' +
|
||||
'<tr><td>操作人:</td><td>' + detail.username + '</td></tr>' +
|
||||
'<tr><td>模块:</td><td>' + detail.module + '</td></tr>' +
|
||||
'<tr><td>操作:</td><td>' + detail.operation + '</td></tr>' +
|
||||
'<tr><td>请求方法:</td><td>' + detail.request_method + '</td></tr>' +
|
||||
'<tr><td>请求地址:</td><td>' + detail.request_url + '</td></tr>' +
|
||||
'<tr><td>请求参数:</td><td><pre>' + JSON.stringify(detail.request_params, null, 2) + '</pre></td></tr>' +
|
||||
'<tr><td>IP地址:</td><td>' + detail.ip_address + '</td></tr>' +
|
||||
'<tr><td>状态:</td><td>' + (detail.status == 1 ? '成功' : '失败') + '</td></tr>' +
|
||||
'<tr><td>错误信息:</td><td>' + (detail.error_message || '无') + '</td></tr>' +
|
||||
'<tr><td>操作时间:</td><td>' + detail.operation_time + '</td></tr>' +
|
||||
'<tr><td>执行时间:</td><td>' + detail.execution_time + 'ms</td></tr>' +
|
||||
'</tbody></table></div></div>';
|
||||
|
||||
layer.open({
|
||||
type: 1,
|
||||
title: '操作日志详情',
|
||||
area: ['800px', '600px'],
|
||||
content: content
|
||||
});
|
||||
} else {
|
||||
layer.msg(res.msg);
|
||||
}
|
||||
});
|
||||
layer.close(index);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// 监听头工具栏事件
|
||||
table.on('toolbar(operationLogTable)', function(obj){
|
||||
if(obj.event === 'clearAll'){
|
||||
layer.confirm('确定要清空所有操作日志吗?', function(index){
|
||||
$.post('{:url("log/clearOperation")}', function(res){
|
||||
if(res.code === 0){
|
||||
layer.msg(res.msg, {icon: 1});
|
||||
table.reload('operationLogTable');
|
||||
}else{
|
||||
layer.msg(res.msg, {icon: 2});
|
||||
}
|
||||
});
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- 表格工具栏模板 -->
|
||||
<script type="text/html" id="operationBar">
|
||||
<a class="layui-btn layui-btn-xs" lay-event="detail">详情</a>
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user