行为日志页面

develop
就眠仪式 2020-09-13 19:41:50 +08:00
parent 89bef12ab2
commit 70b345bffe
5 changed files with 951 additions and 428 deletions

211
admin/data/loginLog.json Normal file
View File

@ -0,0 +1,211 @@
{
"createTime": null,
"createBy": null,
"updateTime": null,
"updateBy": null,
"remark": null,
"code": 0,
"msg": null,
"count": 167,
"data": [{
"id": "1305106851892822016",
"title": "登录",
"description": "登录成功",
"businessType": "OTHER",
"requestMethod": "POST",
"method": "/login",
"operateUrl": "/login",
"operateAddress": "127.0.0.1",
"requestParam": null,
"requestBody": "",
"responseBody": null,
"success": true,
"loggingType": "LOGIN",
"errorMsg": null,
"systemOs": "Windows",
"createTime": "2020-09-13T11:31:36.000+0000",
"operateName": "admin",
"map": {},
"browser": "谷歌浏览器"
}, {
"id": "1305101593019940864",
"title": "登录",
"description": "登录成功",
"businessType": "OTHER",
"requestMethod": "POST",
"method": "/login",
"operateUrl": "/login",
"operateAddress": "127.0.0.1",
"requestParam": null,
"requestBody": "",
"responseBody": null,
"success": true,
"loggingType": "LOGIN",
"errorMsg": null,
"systemOs": "Windows",
"createTime": "2020-09-13T11:10:42.000+0000",
"operateName": "admin",
"map": {},
"browser": "谷歌浏览器"
}, {
"id": "1305101247900024832",
"title": "登录",
"description": "登录成功",
"businessType": "OTHER",
"requestMethod": "POST",
"method": "/login",
"operateUrl": "/login",
"operateAddress": "127.0.0.1",
"requestParam": null,
"requestBody": "",
"responseBody": null,
"success": true,
"loggingType": "LOGIN",
"errorMsg": null,
"systemOs": "Windows",
"createTime": "2020-09-13T11:09:20.000+0000",
"operateName": "admin",
"map": {},
"browser": "谷歌浏览器"
}, {
"id": "1305099674977304576",
"title": "登录",
"description": "登录成功",
"businessType": "OTHER",
"requestMethod": "POST",
"method": "/login",
"operateUrl": "/login",
"operateAddress": "127.0.0.1",
"requestParam": null,
"requestBody": "",
"responseBody": null,
"success": true,
"loggingType": "LOGIN",
"errorMsg": null,
"systemOs": "Windows",
"createTime": "2020-09-13T11:03:05.000+0000",
"operateName": "admin",
"map": {},
"browser": "谷歌浏览器"
}, {
"id": "1305095186061197312",
"title": "登录",
"description": "登录成功",
"businessType": "OTHER",
"requestMethod": "POST",
"method": "/login",
"operateUrl": "/login",
"operateAddress": "127.0.0.1",
"requestParam": null,
"requestBody": "",
"responseBody": null,
"success": true,
"loggingType": "LOGIN",
"errorMsg": null,
"systemOs": "Windows",
"createTime": "2020-09-13T10:45:15.000+0000",
"operateName": "admin",
"map": {},
"browser": "谷歌浏览器"
}, {
"id": "1305092027951611904",
"title": "登录",
"description": "登录成功",
"businessType": "OTHER",
"requestMethod": "POST",
"method": "/login",
"operateUrl": "/login",
"operateAddress": "127.0.0.1",
"requestParam": null,
"requestBody": "",
"responseBody": null,
"success": true,
"loggingType": "LOGIN",
"errorMsg": null,
"systemOs": "Windows",
"createTime": "2020-09-13T10:32:42.000+0000",
"operateName": "admin",
"map": {},
"browser": "谷歌浏览器"
}, {
"id": "1305082862634008576",
"title": "登录",
"description": "登录成功",
"businessType": "OTHER",
"requestMethod": "POST",
"method": "/login",
"operateUrl": "/login",
"operateAddress": "127.0.0.1",
"requestParam": null,
"requestBody": "",
"responseBody": null,
"success": true,
"loggingType": "LOGIN",
"errorMsg": null,
"systemOs": "Windows",
"createTime": "2020-09-13T09:56:16.000+0000",
"operateName": "admin",
"map": {},
"browser": "谷歌浏览器"
}, {
"id": "1305071134877679616",
"title": "登录",
"description": "登录成功",
"businessType": "OTHER",
"requestMethod": "POST",
"method": "/login",
"operateUrl": "/login",
"operateAddress": "127.0.0.1",
"requestParam": null,
"requestBody": "",
"responseBody": null,
"success": true,
"loggingType": "LOGIN",
"errorMsg": null,
"systemOs": "Windows",
"createTime": "2020-09-13T09:09:40.000+0000",
"operateName": "admin",
"map": {},
"browser": "谷歌浏览器"
}, {
"id": "1305070481803575296",
"title": "登录",
"description": "登录成功",
"businessType": "OTHER",
"requestMethod": "POST",
"method": "/login",
"operateUrl": "/login",
"operateAddress": "127.0.0.1",
"requestParam": null,
"requestBody": "",
"responseBody": null,
"success": true,
"loggingType": "LOGIN",
"errorMsg": null,
"systemOs": "Windows",
"createTime": "2020-09-13T09:07:05.000+0000",
"operateName": "admin",
"map": {},
"browser": "谷歌浏览器"
}, {
"id": "1305064691009060864",
"title": "登录",
"description": "登录成功",
"businessType": "OTHER",
"requestMethod": "POST",
"method": "/login",
"operateUrl": "/login",
"operateAddress": "127.0.0.1",
"requestParam": null,
"requestBody": "",
"responseBody": null,
"success": true,
"loggingType": "LOGIN",
"errorMsg": null,
"systemOs": "Windows",
"createTime": "2020-09-13T08:44:04.000+0000",
"operateName": "admin",
"map": {},
"browser": "谷歌浏览器"
}]
}

View File

@ -287,6 +287,14 @@
"type": 1,
"openType": "_iframe",
"href": "view/system/deptment.html"
},
{
"id": 605,
"title": "行为日志",
"icon": "layui-icon layui-icon-face-cry",
"type": 1,
"openType": "_iframe",
"href": "view/system/logging.html"
}
]

211
admin/data/operateLog.json Normal file
View File

@ -0,0 +1,211 @@
{
"createTime": null,
"createBy": null,
"updateTime": null,
"updateBy": null,
"remark": null,
"code": 0,
"msg": null,
"count": 178,
"data": [{
"id": "1305106857240559616",
"title": "主页",
"description": "返回 Index 主页视图",
"businessType": "ADD",
"requestMethod": "GET",
"method": "/index",
"operateUrl": "/index",
"operateAddress": "127.0.0.1",
"requestParam": null,
"requestBody": "",
"responseBody": null,
"success": true,
"loggingType": "OPERATE",
"errorMsg": null,
"systemOs": "Windows",
"createTime": "2020-09-13T11:31:37.000+0000",
"operateName": "admin",
"map": {},
"browser": "谷歌浏览器"
}, {
"id": "1305101599714050048",
"title": "主页",
"description": "返回 Index 主页视图",
"businessType": "ADD",
"requestMethod": "GET",
"method": "/index",
"operateUrl": "/index",
"operateAddress": "127.0.0.1",
"requestParam": null,
"requestBody": "",
"responseBody": null,
"success": true,
"loggingType": "OPERATE",
"errorMsg": null,
"systemOs": "Windows",
"createTime": "2020-09-13T11:10:44.000+0000",
"operateName": "admin",
"map": {},
"browser": "谷歌浏览器"
}, {
"id": "1305101253352620032",
"title": "主页",
"description": "返回 Index 主页视图",
"businessType": "ADD",
"requestMethod": "GET",
"method": "/index",
"operateUrl": "/index",
"operateAddress": "127.0.0.1",
"requestParam": null,
"requestBody": "",
"responseBody": null,
"success": true,
"loggingType": "OPERATE",
"errorMsg": null,
"systemOs": "Windows",
"createTime": "2020-09-13T11:09:21.000+0000",
"operateName": "admin",
"map": {},
"browser": "谷歌浏览器"
}, {
"id": "1305099681512030208",
"title": "主页",
"description": "返回 Index 主页视图",
"businessType": "ADD",
"requestMethod": "GET",
"method": "/index",
"operateUrl": "/index",
"operateAddress": "127.0.0.1",
"requestParam": null,
"requestBody": "",
"responseBody": null,
"success": true,
"loggingType": "OPERATE",
"errorMsg": null,
"systemOs": "Windows",
"createTime": "2020-09-13T11:03:06.000+0000",
"operateName": "admin",
"map": {},
"browser": "谷歌浏览器"
}, {
"id": "1305095191291494400",
"title": "主页",
"description": "返回 Index 主页视图",
"businessType": "ADD",
"requestMethod": "GET",
"method": "/index",
"operateUrl": "/index",
"operateAddress": "127.0.0.1",
"requestParam": null,
"requestBody": "",
"responseBody": null,
"success": true,
"loggingType": "OPERATE",
"errorMsg": null,
"systemOs": "Windows",
"createTime": "2020-09-13T10:45:16.000+0000",
"operateName": "admin",
"map": {},
"browser": "谷歌浏览器"
}, {
"id": "1305092034448588800",
"title": "主页",
"description": "返回 Index 主页视图",
"businessType": "ADD",
"requestMethod": "GET",
"method": "/index",
"operateUrl": "/index",
"operateAddress": "127.0.0.1",
"requestParam": null,
"requestBody": "",
"responseBody": null,
"success": true,
"loggingType": "OPERATE",
"errorMsg": null,
"systemOs": "Windows",
"createTime": "2020-09-13T10:32:43.000+0000",
"operateName": "admin",
"map": {},
"browser": "谷歌浏览器"
}, {
"id": "1305082868002717696",
"title": "主页",
"description": "返回 Index 主页视图",
"businessType": "ADD",
"requestMethod": "GET",
"method": "/index",
"operateUrl": "/index",
"operateAddress": "127.0.0.1",
"requestParam": null,
"requestBody": "",
"responseBody": null,
"success": true,
"loggingType": "OPERATE",
"errorMsg": null,
"systemOs": "Windows",
"createTime": "2020-09-13T09:56:18.000+0000",
"operateName": "admin",
"map": {},
"browser": "谷歌浏览器"
}, {
"id": "1305071141362073600",
"title": "主页",
"description": "返回 Index 主页视图",
"businessType": "ADD",
"requestMethod": "GET",
"method": "/index",
"operateUrl": "/index",
"operateAddress": "127.0.0.1",
"requestParam": null,
"requestBody": "",
"responseBody": null,
"success": true,
"loggingType": "OPERATE",
"errorMsg": null,
"systemOs": "Windows",
"createTime": "2020-09-13T09:09:42.000+0000",
"operateName": "admin",
"map": {},
"browser": "谷歌浏览器"
}, {
"id": "1305070488145362944",
"title": "主页",
"description": "返回 Index 主页视图",
"businessType": "ADD",
"requestMethod": "GET",
"method": "/index",
"operateUrl": "/index",
"operateAddress": "127.0.0.1",
"requestParam": null,
"requestBody": "",
"responseBody": null,
"success": true,
"loggingType": "OPERATE",
"errorMsg": null,
"systemOs": "Windows",
"createTime": "2020-09-13T09:07:06.000+0000",
"operateName": "admin",
"map": {},
"browser": "谷歌浏览器"
}, {
"id": "1305064697174687744",
"title": "主页",
"description": "返回 Index 主页视图",
"businessType": "ADD",
"requestMethod": "GET",
"method": "/index",
"operateUrl": "/index",
"operateAddress": "127.0.0.1",
"requestParam": null,
"requestBody": "",
"responseBody": null,
"success": true,
"loggingType": "OPERATE",
"errorMsg": null,
"systemOs": "Windows",
"createTime": "2020-09-13T08:44:05.000+0000",
"operateName": "admin",
"map": {},
"browser": "谷歌浏览器"
}]
}

View File

@ -1,10 +1,9 @@
<!DOCTYPE html>
<html>
<head>
<head>
<meta charset="utf-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<title>高级详情</title>
<link href="../../component/pear/css/pear.css" rel="stylesheet">
<style type="text/css">
@ -20,9 +19,9 @@
padding-left: 10%;
}
</style>
</head>
</head>
<body class="pear-container">
<body class="pear-container">
<div class="layui-row layui-col-space10">
<div class="layui-col-xs12">
<div class="layui-card">
@ -37,8 +36,7 @@
<button class="pear-btn pear-btn-sm"> 操作 </button>
<button class="pear-btn pear-btn-primary pear-btn-sm"> 操作 </button>
<button class="pear-btn pear-btn-success pear-btn-sm"> 操作 </button>
<button class="pear-btn pear-btn-success pear-btn-sm"
lay-dropdown="{templateMenu: '#myMenus'}">更多操作 </button>
<button class="pear-btn pear-btn-success pear-btn-sm" lay-dropdown="{templateMenu: '#myMenus'}">更多操作 </button>
</div>
</div>
<div class="layui-col-xs4">
@ -159,7 +157,7 @@
<script src="../../component/layui/layui.js"></script>
<script src="../../component/pear/pear.js"></script>
<script>
layui.use(['jquery', 'form', 'element', 'table', 'step', 'dropdown', 'echarts', 'topBar'], function () {
layui.use(['jquery', 'form', 'element', 'table', 'step', 'dropdown', 'echarts', 'topBar'], function() {
var form = layui.form;
var element = layui.element;
var table = layui.table;
@ -167,7 +165,7 @@
var dropdown = layui.dropdown;
var echarts = layui.echarts;
dropdown.onFilter('test1', function (event) {
dropdown.onFilter('test1', function(event) {
})
@ -391,83 +389,77 @@
var echartsRecords = echarts.init(document.getElementById('echarts-records'), 'walden');
var option = {
tooltip: {
trigger: 'axis'
},
xAxis: [{
xAxis: {
type: 'category',
data: ['2019-01', '2019-02', '2019-03', '2019-04', '2019-05', '2019-06'],
axisLine: {
lineStyle: {
color: "#999"
}
}
}],
yAxis: [{
boundaryGap: false
},
yAxis: {
type: 'value',
splitNumber: 4,
splitLine: {
lineStyle: {
type: 'dashed',
color: '#DDD'
}
boundaryGap: [0, '30%']
},
axisLine: {
visualMap: {
type: 'piecewise',
show: false,
lineStyle: {
color: "#333"
},
},
nameTextStyle: {
color: "#999"
},
splitArea: {
show: false
}
}],
series: [{
name: '课时',
type: 'line',
data: [23, 60, 20, 36, 23, 85],
lineStyle: {
normal: {
width: 8,
color: {
type: 'linear',
colorStops: [{
offset: 0,
color: '#A9F387' // 0% 处的颜色
dimension: 0,
seriesIndex: 0,
pieces: [{
gt: 1,
lt: 3,
color: 'rgba(0, 180, 0, 0.5)'
}, {
offset: 1,
color: '#48D8BF' // 100% 处的颜色
}],
globalCoord: false // 缺省为 false
gt: 5,
lt: 7,
color: 'rgba(0, 180, 0, 0.5)'
}]
},
shadowColor: 'rgba(72,216,191, 0.3)',
shadowBlur: 10,
shadowOffsetY: 20
series: [{
type: 'line',
smooth: 0.6,
symbol: 'none',
lineStyle: {
color: 'green',
width: 5
},
markLine: {
symbol: ['none', 'none'],
label: {
show: false
},
data: [{
xAxis: 1
},
{
xAxis: 3
},
{
xAxis: 5
},
{
xAxis: 7
}
]
},
itemStyle: {
normal: {
color: '#fff',
borderWidth: 10,
/*shadowColor: 'rgba(72,216,191, 0.3)',
shadowBlur: 100,*/
borderColor: "#A9F387"
}
},
smooth: true
areaStyle: {},
data: [
['2019-10-10', 200],
['2019-10-11', 400],
['2019-10-12', 650],
['2019-10-13', 500],
['2019-10-14', 250],
['2019-10-15', 300],
['2019-10-16', 450],
['2019-10-17', 300],
['2019-10-18', 100]
]
}]
};
echartsRecords.setOption(option);
window.onresize = function () {
window.onresize = function() {
echartsRecords.resize();
}
});
</script>
</body>
</body>
</html>

101
view/system/logging.html Normal file
View File

@ -0,0 +1,101 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="../../component/pear/css/pear.css" />
</head>
<body class="pear-container">
<div class="layui-card">
<div class="layui-card-body">
<div class="layui-tab layui-tab-card">
<ul class="layui-tab-title">
<li class="layui-this">登录日志</li>
<li>操作日志</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
<table style="margin-top: 10px;" id="log-login-table" lay-filter="user-table"></table>
</div>
<div class="layui-tab-item">
<table style="margin-top: 10px;" id="log-operate-table" lay-filter="user-table"></table>
</div>
</div>
</div>
</div>
</div>
</body>
<script type="text/html" id="log-bar">
{{#if (d.success == true) { }}
<button class="pear-btn pear-btn-sm pear-btn-success" lay-event="edit"><i class="layui-icon layui-icon-ok"></i>
成功</button>
{{# }else if(d.success == false){ }}
<button class="pear-btn pear-btn-sm pear-btn-danger" lay-event="error"><i class="layui-icon layui-icon-help"></i>
异常</button>
{{# } }}
</script>
<script type="text/html" id="log-createTime">
{{layui.util.toDateString(d.createTime, "yyyy-MM-dd HH:mm:ss")}}
</script>
<script src="../../component/layui/layui.js"></script>
<script src="../../component/pear/pear.js"></script>
<script>
layui.use(['table','form','jquery','element'],function () {
let table = layui.table;
let form = layui.form;
let element = layui.element;
let MODULE_PATH = "/system/logging/";
let cols = [
[
{title: '模块', field: 'title', align:'center'},
{title: '请求方式', field: 'requestMethod', align:'center'},
{title: '接口', field: 'method', align:'center'},
{title: '浏览器', field: 'browser', align:'center'},
{title: '操作地址', field: 'operateAddress',align:'center'},
{title: '操作系统', field: 'systemOs', align:'center'},
{title: '访问时间', field: 'createTime',templet:'#log-createTime', align:'center'},
{title: '操作人', field: 'operateName', align:'center'},
{title: '访问状态', toolbar: '#log-bar', align:'center', width:150}
]
]
table.render({
elem: '#log-operate-table',
url: '../../admin/data/operateLog.json',
page: true ,
cols: cols ,
skin: 'line',
toolbar: false
});
table.render({
elem: '#log-login-table',
url: '../../admin/data/loginLog.json',
page: true ,
cols: cols ,
skin: 'line',
toolbar: false
});
form.on('submit(dict-type-query)', function(data){
table.reload('dict-type-table',{where:data.field})
return false;
});
window.error = function(obj){
layer.open({
type: 1,
title: '异常信息',
shade: 0,
area: ['450px', '350px'],
content: '<div class="pear-container"><div class="layui-card"><div class="layui-card-body">'+obj.data['error']+'</div></div></div>'
});
}
})
</script>
</html>