dd/src/pages/record.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">&nbsp;</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>