jjsp_web/bns/js/base/log/child/systemLog.js

262 lines
7.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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/downloadSystemLogs' ;
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 = "system_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/getByPage', //数据接口(此处为静态数据,仅作演示)
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,
operDetails: $("#operDetails").val(),
eventType: $("#eventType").val(),
operResult: $("#operResult").val(),
operType: $("#operType").val(),
sortName: $("#sortName").val(),
sortType: $("#sortType").val()
};
}else{
obj = {
page: '1',
limit: '10',
userName:'',
operIp:'',
startTime:'',
endTime:'',
operDetails: '',
eventType: '',
operResult: '',
operType: '',
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: 'operIp', title: '操作ip', align: 'center',unresize: true},
{ field: 'operTime', title: '操作时间', align: 'center', width:220,unresize: true },
{ field: 'operModel', title: '操作模块', align: 'center', unresize: true, },
{ field: 'operDetails', title: '操作详情', align: 'center', unresize: true, },
{ field: 'operType', title: '操作类型', align: 'center', unresize: true, },
{ field: 'operType', title: '操作类型', align: 'center', unresize: true, },
{ field: 'eventType', title: '事件类型', align: 'center', unresize: true, },
{ field: 'operParam', 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
});
}