2025-03-21 11:05:42 +08:00

158 lines
6.5 KiB
Cheetah

{{template "header"}}
<div class="layui-row layui-col-space15">
<div class="layui-collapse">
<div class="layui-colla-item">
<div class="layui-colla-title">查询</div>
<div class="layui-colla-content layui-show">
<div class="layui-card">
<div class="layui-card-body layui-bzw-table">
<form class="layui-form" action="">
{{.CsrfTokenField}}
<div class="layui-form-item">
<div class="layui-form-item layui-inline">
<input type="text" class="layui-input" id="searchTimeBegin" placeholder="yyyy-MM-dd"
readonly value="{{ monthBegin }}" />
</div>
<div class="layui-form-item layui-inline">
<input type="text" class="layui-input " id="searchTimeEnd" placeholder="yyyy-MM-dd"
readonly value="{{ monthEnd }}" />
</div>
<div class="layui-form-item layui-inline">
<select id="searchName">
<option value="email">邮箱</option>
<option value="username">名称</option>
</select>
</div>
<div class="layui-form-item layui-inline">
<input type="text" id="searchKey" placeholder=""
class="layui-input layui-form-group-input">
</div>
<div class="layui-form-item layui-inline">
<button type="button" class="pear-btn pear-btn-md pear-btn-primary" lay-submit
lay-filter="user-query">
<i class="layui-icon layui-icon-search"></i>
查询
</button>
<button type="reset" class="pear-btn pear-btn-md" lay-submit
lay-filter="user-reset">
<i class="layui-icon layui-icon-refresh"></i>
重置
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="layui-card" style="margin-top: 15px;">
<div class="layui-card-body">
<table id="tablelist" lay-filter="tablelist"></table>
</div>
</div>
{{define "js"}}
<script>
layui.use(['table', 'form', 'jquery', 'laydate', 'util'], function () {
let table = layui.table;
let form = layui.form;
let $ = layui.jquery;
let laydate = layui.laydate;
let util = layui.util;
/**开始时间 */
laydate.render({
elem: '#searchTimeBegin',
type: 'datetime',
value: '{{ monthBegin }}',
ready: function (date) {
this.dateTime.hours = 0;
this.dateTime.minutes = 0;
this.dateTime.seconds = 0;
}
});
/**截止时间 */
laydate.render({
elem: '#searchTimeEnd',
type: 'datetime',
value: '{{ monthEnd }}',
ready: function (date) {
this.dateTime.hours = 23;
this.dateTime.minutes = 59;
this.dateTime.seconds = 59;
}
});
// 加载列表
table.render({
elem: '#tablelist',
url: "/system/audit_log/list",
method: "POST",
headers: { 'X-CSRF-Token': $('#csrf_token').val() },
where: getQueryParams(),
height: 'full',
page: true,
cols: [[
{ field: 'created_at', title: '创建时间', align: 'left', width: 160, templet: function (d) { return !d.created_at ? '' : util.toDateString(d.created_at) } },
{ field: 'email', title: '邮箱', align: 'left', width: 180 },
{ field: 'username', title: '用户名', align: 'left', width: 100 },
{ field: 'method', title: '请求方法', align: 'left', width: 90 },
{ field: 'parameters', title: '请求参数', align: 'left', width: 120 },
{ field: 'url', title: 'URL', align: 'left', width: 300 },
{ field: 'start_at', title: '开始时间', align: 'left', width: 160, templet: function (d) { return !d.start_at ? '' : util.toDateString(d.start_at) } },
{ field: 'end_at', title: '结束时间', align: 'left', width: 160, templet: function (d) { return !d.end_at ? '' : util.toDateString(d.end_at) } },
{ field: 'duration', title: '时间(毫秒)', align: 'left', width: 90 },
{ field: 'ip', title: 'ip', align: 'left', width: 150 },
{ field: 'browser', title: '浏览器', align: 'left', width: 150 },
{ field: 'os', title: '系统', align: 'left', width: 150 },
{ field: 'referer_url', title: 'Referer', align: 'left', width: 300 },
{ field: 'remark', title: '备注', align: 'left', width: 200 },
]],
skin: 'line',
toolbar: '#toolbar',
defaultToolbar: [{
title: '刷新',
layEvent: 'refresh',
icon: 'layui-icon-refresh',
}, 'filter', 'exports'],
request: {
pageName: 'page',
limitName: 'rows'
}
});
// 搜索条件
function getQueryParams() {
return {
SearchTimeBegin: $('#searchTimeBegin').val(),
SearchTimeEnd: $('#searchTimeEnd').val(),
SearchName: $('#searchName').val(),
SearchKey: $('#searchKey').val()
};
}
// 搜索
form.on('submit(user-query)', function (data) {
table.reload('tablelist', {
where: getQueryParams(),
page: {
curr: 1
}
})
return false;
});
});
</script>
{{end}}
{{template "footer" .}}