259 lines
6.9 KiB
JavaScript
259 lines
6.9 KiB
JavaScript
|
|
let table;
|
|||
|
|
var logTable;
|
|||
|
|
let form;
|
|||
|
|
var per;
|
|||
|
|
let page = 1, limit = 10;
|
|||
|
|
layui.use(['layer', 'form', 'laydate', 'element'], function () {
|
|||
|
|
var layer = layui.layer; //弹层
|
|||
|
|
var laypage = layui.laypage; //分页
|
|||
|
|
table = layui.table; //表格
|
|||
|
|
form = layui.form;
|
|||
|
|
laydate = layui.laydate;
|
|||
|
|
laydate.render({
|
|||
|
|
elem: '#workDay', //指定元素 元素选择器
|
|||
|
|
type: 'date', //选择时间类型 可选值:year(年) month(年月) date(年月日) time(时分秒) datetime(年月日时分秒)
|
|||
|
|
trigger: 'click',
|
|||
|
|
range: true,
|
|||
|
|
format: 'yyyy-MM-dd', //时间格式 常用时间格式:yyyy-MM-dd HH:mm:ss
|
|||
|
|
max: Date.parse(new Date()),
|
|||
|
|
btns: ['now', 'confirm'], //选择框右下角显示的按钮 清除-现在-确定
|
|||
|
|
});
|
|||
|
|
//注册权限
|
|||
|
|
// per = getPer();
|
|||
|
|
// console.log(per);
|
|||
|
|
//初始化下拉选
|
|||
|
|
pages(1,10,1);
|
|||
|
|
// initTable();
|
|||
|
|
// 查询按钮
|
|||
|
|
$("#query").off().click(function () {
|
|||
|
|
// 筛选校验
|
|||
|
|
// inputTest1('roleName', 20, '用户身份')
|
|||
|
|
// inputTest2('detail', 200, '操作内容')
|
|||
|
|
// ipTest()
|
|||
|
|
pages(1,10)
|
|||
|
|
return;
|
|||
|
|
})
|
|||
|
|
// 重置
|
|||
|
|
$("#reset").off().click(function () {
|
|||
|
|
pages(1,10,1)
|
|||
|
|
})
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
// 输入框校验
|
|||
|
|
function inputTest1 (field, length, fieldName) {
|
|||
|
|
let query = $("#"+field).val()
|
|||
|
|
console.log(query);
|
|||
|
|
if (query.trim() === '') return
|
|||
|
|
if (query && query.length > length) {
|
|||
|
|
layer.alert(`${fieldName}长度大于${length}个字符!`, {icon: 2});
|
|||
|
|
}
|
|||
|
|
// 禁止输入表情
|
|||
|
|
const reg = /[^0-9a-zA-Z\u4E00-\u9FA5]/g
|
|||
|
|
if (!reg.test(query)) {
|
|||
|
|
return
|
|||
|
|
} else {
|
|||
|
|
layer.alert(`${fieldName}内容包含特殊字符!`, {icon: 2});
|
|||
|
|
// $("#"+field).val("")
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
function inputTest2 (field, length, fieldName) {
|
|||
|
|
let query = $("#"+field).val()
|
|||
|
|
if (query.trim() === '') return
|
|||
|
|
if (!query && query.length > length) {
|
|||
|
|
layer.alert(`${fieldName}长度大于${length}个字符!`, {icon: 2});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// IP地址校验
|
|||
|
|
function ipTest () {
|
|||
|
|
const operIp = $("#operIp").val()
|
|||
|
|
if (operIp.trim() === '') return
|
|||
|
|
const regStr = /^((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}$/
|
|||
|
|
if (regStr.test(operIp)) {
|
|||
|
|
return
|
|||
|
|
} else {
|
|||
|
|
layer.alert("IP地址格式不正确!",{icon: 2});
|
|||
|
|
// $("#operIp").val("")
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 备份
|
|||
|
|
function handleBackup() {
|
|||
|
|
let downUrl=dataUrl + 'system/sys/logs/downloadErrLogs' ;
|
|||
|
|
downLoadByUrl(downUrl);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function downLoadByUrl(url){
|
|||
|
|
var xhr = new XMLHttpRequest();
|
|||
|
|
//GET请求,请求路径url,async(是否异步)
|
|||
|
|
xhr.open('GET', url, true);
|
|||
|
|
xhr.setRequestHeader("authorization", token);
|
|||
|
|
xhr.setRequestHeader("encryption", 'encryption');
|
|||
|
|
//设置响应类型为 blob
|
|||
|
|
xhr.responseType = 'blob';
|
|||
|
|
//关键部分
|
|||
|
|
xhr.onload = function (e) {
|
|||
|
|
//如果请求执行成功
|
|||
|
|
if (this.status == 200) {
|
|||
|
|
var blob = this.response;
|
|||
|
|
var filename = "err_log_info_back.text";//如123.xls
|
|||
|
|
var a = document.createElement('a');
|
|||
|
|
blob.type = "application/octet-stream";
|
|||
|
|
var url = URL.createObjectURL(blob);
|
|||
|
|
a.href = url;
|
|||
|
|
a.download=filename;
|
|||
|
|
a.click();
|
|||
|
|
//释放之前创建的URL对象
|
|||
|
|
window.URL.revokeObjectURL(url);
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
//发送请求
|
|||
|
|
xhr.send();
|
|||
|
|
}
|
|||
|
|
// 恢复
|
|||
|
|
function handleRecover() {
|
|||
|
|
$.ajax({
|
|||
|
|
headers:{
|
|||
|
|
"encrypt":sm3(JSON.stringify({
|
|||
|
|
logType: '系统日志'
|
|||
|
|
}))
|
|||
|
|
},
|
|||
|
|
url: dataUrl + 'system/sys/logs/restoreLog' ,
|
|||
|
|
type: 'get',
|
|||
|
|
data: {
|
|||
|
|
logType: '系统日志'
|
|||
|
|
},
|
|||
|
|
success: function (res) {
|
|||
|
|
console.log(res);
|
|||
|
|
if (res.code === 200) {
|
|||
|
|
layer.alert("恢复成功",{icon: 1});
|
|||
|
|
} else {
|
|||
|
|
layer.alert("恢复失败",{icon: 2});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
function pages(page, limit,type) {
|
|||
|
|
let params = getReqParamss(page,limit,type);
|
|||
|
|
$.ajax({
|
|||
|
|
headers:{
|
|||
|
|
"encrypt":sm3(JSON.stringify(params))
|
|||
|
|
},
|
|||
|
|
url: dataUrl + 'system/sys/logs/getErrLogs', //数据接口(此处为静态数据,仅作演示)
|
|||
|
|
data: params,
|
|||
|
|
type: 'POST',
|
|||
|
|
async: false,
|
|||
|
|
success: function (result) {
|
|||
|
|
if(result.code === 500){
|
|||
|
|
layer.alert(result.msg,{icon:2})
|
|||
|
|
}
|
|||
|
|
if (result.data) {
|
|||
|
|
initTable(result.data,result.limit,result.curr)
|
|||
|
|
laypages(result.count, result.curr, result.limit)
|
|||
|
|
}
|
|||
|
|
}, error: function () {
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
function laypages(total, page, limit) {
|
|||
|
|
layui.use(['laypage'], function () {
|
|||
|
|
let laypage = layui.laypage;
|
|||
|
|
laypage.render({
|
|||
|
|
elem: 'voi-page',
|
|||
|
|
count: total,
|
|||
|
|
curr: page,
|
|||
|
|
limit: limit,
|
|||
|
|
layout: ['prev', 'page', 'next', 'skip', 'count', 'limit'],
|
|||
|
|
groups: 5,
|
|||
|
|
jump: function (obj, first) {
|
|||
|
|
if (!first) {
|
|||
|
|
page = obj.curr, limit = obj.limit;
|
|||
|
|
pages(obj.curr, obj.limit,null);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
// 获取参数
|
|||
|
|
function getReqParamss(page,limit,type) {
|
|||
|
|
let obj = {};
|
|||
|
|
let startTime='';
|
|||
|
|
let endTime='';
|
|||
|
|
|
|||
|
|
|
|||
|
|
if(!type){
|
|||
|
|
console.log($("#workDay").val())
|
|||
|
|
if($("#workDay").val()){
|
|||
|
|
startTime=$("#workDay").val().split(' - ')[0]
|
|||
|
|
endTime=$("#workDay").val().split(' - ')[1]
|
|||
|
|
}
|
|||
|
|
obj = {
|
|||
|
|
page: page + "",
|
|||
|
|
limit: limit + "",
|
|||
|
|
userName: $("#userName").val(),
|
|||
|
|
operIp: $("#operIp").val(),
|
|||
|
|
startTime:startTime,
|
|||
|
|
endTime:endTime,
|
|||
|
|
errGrade: $("#errGrade").val(),
|
|||
|
|
eventType: $("#eventType").val(),
|
|||
|
|
operResult: $("#operResult").val(),
|
|||
|
|
errReason: $("#errReason").val(),
|
|||
|
|
sortName: $("#sortName").val(),
|
|||
|
|
sortType: $("#sortType").val()
|
|||
|
|
};
|
|||
|
|
}else{
|
|||
|
|
obj = {
|
|||
|
|
page: '1',
|
|||
|
|
limit: '10',
|
|||
|
|
userName: '',
|
|||
|
|
operIp: '',
|
|||
|
|
startTime:'',
|
|||
|
|
endTime:'',
|
|||
|
|
errGrade: '',
|
|||
|
|
eventType: '',
|
|||
|
|
operResult: '',
|
|||
|
|
errReason:'',
|
|||
|
|
sortName: '',
|
|||
|
|
sortType: ''
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
return obj;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function initTable(dataList,limit,page) {
|
|||
|
|
// 执行一个 table 实例
|
|||
|
|
logTable = table.render({
|
|||
|
|
id: 'logTable',
|
|||
|
|
elem: '#log-table',
|
|||
|
|
height: $(window).height() - ($(window).height() * 0.25),
|
|||
|
|
title: '日志表',
|
|||
|
|
data:dataList,
|
|||
|
|
cols: [[ //表头
|
|||
|
|
{ field: "number", type: "numbers", title: "序号", width: 100, unresize: true, align: "center", },
|
|||
|
|
{ field: 'userName', title: '操作人', align: 'center', unresize: true, },
|
|||
|
|
{ field: 'operDetails', title: '操作详情', align: 'center', unresize: true, },
|
|||
|
|
{ field: 'operIp', title: '操作ip', align: 'center',unresize: true},
|
|||
|
|
{ field: 'operTime', title: '操作时间', align: 'center', width:220,unresize: true },
|
|||
|
|
{ field: 'operModel', title: '操作模块', align: 'center', unresize: true, },
|
|||
|
|
{ field: 'errReason', title: '异常类型', align: 'center', unresize: true, },
|
|||
|
|
{ field: 'errGrade', title: '异常等级', align: 'center', unresize: true, },
|
|||
|
|
{ field: 'eventType', title: '事件类型', align: 'center', unresize: true, },
|
|||
|
|
{ field: 'operMeth', title: '操作路径', align: 'center', unresize: true, },
|
|||
|
|
{
|
|||
|
|
field: 'operResult', title: '事件结果', align: 'center', unresize: true, templet: function (d) {
|
|||
|
|
if (d.operResult == '0') {
|
|||
|
|
return '失败'
|
|||
|
|
} else if(d.operResult == '1') {
|
|||
|
|
return '成功'
|
|||
|
|
} else {
|
|||
|
|
return ''
|
|||
|
|
}
|
|||
|
|
} },
|
|||
|
|
]],
|
|||
|
|
limit:limit
|
|||
|
|
});
|
|||
|
|
}
|