309 lines
12 KiB
HTML
309 lines
12 KiB
HTML
<include src="./header.html"></include>
|
|
<include src="./lefter.html"></include>
|
|
<div class="f-r content">
|
|
<div class="content-auto" data-id="5" data-two="4">
|
|
<div class="con-tit font-20 phone-bg-w record-tit">
|
|
<span class="pc-block">设置</span>
|
|
<span class="phone-inline">操作记录</span>
|
|
<div class="toolbox">
|
|
<ul class="con-list-mero filter-icon" style="display:none">
|
|
<li role="presentation">
|
|
<a href="javascript:void(0);" id="toggle-filter"> </a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<!---->
|
|
<div class="con-search bg-w top20 con-seclevel phone-top-0">
|
|
<span class="font-18">操作记录</span>
|
|
<form class="layui-form top20">
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">查询范围:</label>
|
|
<div class="layui-input-block">
|
|
<select name="fileType">
|
|
<option value="">全部范围</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">操作类型:</label>
|
|
<div class="layui-input-block">
|
|
<select name="type">
|
|
<option value="">全部类型</option>
|
|
<option value="1">文件上传</option>
|
|
<option value="2">文件下载</option>
|
|
<option value="3">文件更新</option>
|
|
<option value="4">文件隐藏</option>
|
|
<option value="5">文件显示</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label">时间段:</label>
|
|
<div class="layui-input-block">
|
|
<input type="text" name="times" class="layui-input layui-time-time" placeholder="请选择时间段">
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<button class="layui-btn" lay-submit lay-filter="formDemo">搜索</button>
|
|
<button class="layui-btn" layui-btn-primary lay-submit lay-filter="formDemo1">导出</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<!--内容-->
|
|
<div class="con-list bg-w top20 pc-block">
|
|
<div class="list-content">
|
|
<table class="table">
|
|
<thead>
|
|
<tr>
|
|
<th>账号</th>
|
|
<th>操作类型</th>
|
|
<th>文件名称</th>
|
|
<th>操作时间</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
</tbody>
|
|
</table>
|
|
<div class="page t-r" id="page"></div>
|
|
</div>
|
|
</div>
|
|
<!--手机端-->
|
|
<div class="con-list phone-block record-list"></div>
|
|
</div>
|
|
</div>
|
|
<script type="text/html" id="list-item-tpl">
|
|
|
|
{{# layui.each(d.items, function(idx, item) { }}
|
|
<div class="list">
|
|
<div class="name">
|
|
<img src="image/img_01.png"/>
|
|
<span>{{item.username}}</span>
|
|
</div>
|
|
<div class="types">{{item.type}}</div>
|
|
<div class="text">
|
|
<span>{{item.fileName}}</span>
|
|
<span>{{item.createTime}}</span>
|
|
</div>
|
|
</div>
|
|
{{# }); }}
|
|
</script>
|
|
<script type="text/javascript">
|
|
var logsData = {
|
|
current: '',
|
|
size: '',
|
|
startTime: '',
|
|
endTime: '',
|
|
type: ''
|
|
}
|
|
|
|
layui.use(['form', 'upload', 'element', 'layer', 'laypage', 'laytpl'], function () {
|
|
var laypage = layui.laypage;
|
|
var form = layui.form;
|
|
var upload = layui.upload;
|
|
var element = layui.element;
|
|
var layer = layui.layer;
|
|
|
|
var logIntervalScript = setInterval(function () {
|
|
var tmpHaveLogin = localStorage['haveLogin'] || false;
|
|
if (tmpHaveLogin) {
|
|
clearInterval(logIntervalScript);
|
|
getLogs();
|
|
getScope();
|
|
}
|
|
}, 500);
|
|
|
|
//查询范围
|
|
function getScope() {
|
|
$.ajax({
|
|
url: host + '/ding/log/getScoptList' + '?timetmp=' + Date.parse(new Date()).toString().substr(0, 10),
|
|
headers: {
|
|
'Blade-Auth': 'bearer ' + accessToken,
|
|
},
|
|
data: {},
|
|
type: "get",
|
|
dataType: "json",
|
|
success: function (data) {
|
|
if (data.code == 200) {
|
|
if (data.data.length > 0) {
|
|
data.data.forEach(function (item, key) {
|
|
$('select[name=fileType]').append(
|
|
'<option value="' + item + '">' + item +
|
|
'</option>')
|
|
})
|
|
form.render()
|
|
} else {
|
|
layer.msg('暂无记录')
|
|
}
|
|
} else {
|
|
layer.msg(data.msg)
|
|
}
|
|
},
|
|
error: function (data) {
|
|
console.log(data);
|
|
}
|
|
});
|
|
}
|
|
|
|
//搜索
|
|
form.on('submit(formDemo)', function (data) {
|
|
logsData.type = data.field.type
|
|
logsData.scope = data.field.fileType
|
|
logsData.startTime = data.field.times.split(' - ')[0] || ''
|
|
logsData.endTime = data.field.times.split(' - ')[1] || ''
|
|
console.log(logsData);
|
|
getLogs()
|
|
return false;
|
|
});
|
|
|
|
//搜索
|
|
form.on('submit(formDemo1)', function (data) {
|
|
logsData.type = data.field.type
|
|
logsData.scope = data.field.fileType
|
|
logsData.startTime = data.field.times.split(' - ')[0] || ''
|
|
logsData.endTime = data.field.times.split(' - ')[1] || ''
|
|
logExport()
|
|
return false;
|
|
});
|
|
|
|
var itemTpl = $('#list-item-tpl').html(), $items = $('.record-list');
|
|
|
|
MobileLib.isMobile(function () {
|
|
$('#toggle-filter').on('click', function () {
|
|
MobileLib.modal({
|
|
title: '操作记录',
|
|
body: $('.con-search'),
|
|
success: function ($el, idx) {
|
|
$el.find('.layui-form').css({ padding: '20px' })
|
|
$el.find('.font-18').hide()
|
|
$el.find('button[lay-submit]').on('click', function () {
|
|
layer.close(idx)
|
|
})
|
|
}
|
|
})
|
|
})
|
|
})
|
|
|
|
function getLogs(current = 1, size = 10) {
|
|
logsData.current = current;
|
|
logsData.size = size;
|
|
$.ajax({
|
|
url: host + '/ding/log/getLogs' + '?timetmp=' + Date.parse(new Date()).toString().substr(0, 10),
|
|
headers: {
|
|
'Blade-Auth': 'bearer ' + accessToken,
|
|
},
|
|
data: logsData,
|
|
type: "get",
|
|
dataType: "json",
|
|
contentType: "application/json",
|
|
success: function (data) {
|
|
if (data.code == 200) {
|
|
if (MobileLib.isMobile()) {
|
|
var items = (data.data.records || []).map(function (item) {
|
|
switch (String(item.type)) {
|
|
case '1':
|
|
item.type = '文件上传';
|
|
break;
|
|
case '2':
|
|
item.type = '文件下载';
|
|
break;
|
|
case '3':
|
|
item.type = '文件更新';
|
|
break;
|
|
case '4':
|
|
item.type = '文件隐藏';
|
|
break;
|
|
case '5':
|
|
item.type = '文件显示';
|
|
break;
|
|
default:
|
|
item.type = '未知类型';
|
|
break;
|
|
}
|
|
return item
|
|
})
|
|
$items.html(layui.laytpl(itemTpl).render({ items: items }))
|
|
return
|
|
}
|
|
|
|
$('.list-content .table tbody').empty()
|
|
if (data.data.records.length > 0) {
|
|
var html = '';
|
|
data.data.records.forEach(function (item, i) {
|
|
|
|
html += '<tr>';
|
|
html += '<td><div class="list-img"><img src="image/img_01.png"><span>' + item.username + '</span></div></td>';
|
|
html += '<td>';
|
|
if (item.type == 1) {
|
|
html += '文件上传';
|
|
} else if (item.type == 2) {
|
|
html += '文件下载';
|
|
} else if (item.type == 3) {
|
|
html += '文件更新';
|
|
} else if (item.type == 4) {
|
|
html += '文件隐藏';
|
|
} else if (item.type == 5) {
|
|
html += '文件显示';
|
|
}
|
|
html += '</td>';
|
|
html += '<td>' + item.fileName + '</td>';
|
|
html += '<td>' + item.createTime + '</td>';
|
|
html += '</tr>';
|
|
});
|
|
$('.list-content .table tbody').html(html);
|
|
laypage.render({
|
|
elem: 'page',
|
|
curr: current,
|
|
limit: data.data.size,
|
|
count: data.data.total,
|
|
layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'],
|
|
jump: function (obj, first) {
|
|
if (!first) {
|
|
getLogs(obj.curr, obj.limit);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
} else {
|
|
layer.msg(data.msg)
|
|
}
|
|
},
|
|
error: function (data) {
|
|
console.log(data);
|
|
}
|
|
});
|
|
}
|
|
|
|
function logExport(current = 1, size = 10) {
|
|
logsData.current = current;
|
|
logsData.size = size;
|
|
$.ajax({
|
|
url: host + '/ding/log/export' + '?timetmp=' + Date.parse(new Date()).toString().substr(0, 10),
|
|
headers: {
|
|
'Blade-Auth': 'bearer ' + accessToken,
|
|
},
|
|
data: logsData,
|
|
type: "get",
|
|
dataType: "json",
|
|
contentType: "application/json",
|
|
success: function (data) {
|
|
if (data.code == 200) {
|
|
console.log("导出成功,执行下载请求 =====>")
|
|
download(data.data)
|
|
} else {
|
|
layer.msg(data.msg)
|
|
}
|
|
},
|
|
error: function (data) {
|
|
console.log(data);
|
|
}
|
|
});
|
|
}
|
|
|
|
function download(fileName) {
|
|
window.open(host + '/ding/log/download' + '?timetmp=' + Date.parse(new Date()).toString().substr(0, 10) + '&delete=true&fileName=' + fileName);
|
|
}
|
|
});
|
|
|
|
</script>
|
|
<include src="./footer.html"></include> |