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 }); }