Authored by 袁晋鹏

fix:备份统计、数据库恢复验证页面优化调整

... ... @@ -42,23 +42,34 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions'], function
cols: [[
{type: 'numbers', title: '序号'},
{
field: 'busName', title: '系统名称', align: 'center', minWith: 240,
field: 'busName', title: '系统名称', align: 'center'
}, {
field: 'evaluationLevel', title: '等保等级', align: 'center', minWith: 130,
field: 'evaluationLevel', title: '等保等级', align: 'center',
templet:function (d) {
var evaluationLevel = '';
if(d.evaluationLevel == 'one-level'){
evaluationLevel = '一级';
}else if(d.evaluationLevel == 'two-level'){
evaluationLevel = '二级';
}else if(d.evaluationLevel == 'three-level'){
evaluationLevel = '三级';
}
return evaluationLevel;
}
}, {
field: 'resName', title: '数据库名称', align: 'center', minWith: 240,
field: 'resName', title: '数据库名称', align: 'center'
},
{
field: 'ip', title: 'IP地址', align: 'center', minWith: 150,
field: 'ip', title: 'IP地址', align: 'center'
},
{
field: 'platform', title: '备份平台', align: 'center', minWith: 130,
field: 'platform', title: '备份平台', align: 'center'
},
{
field: 'backLevel', title: '备份级别', align: 'center', minWith: 180,
field: 'backLevel', title: '备份级别', align: 'center'
},
{
field: 'backStatus', title: '备份状态', align: 'center', minWith: 120,
field: 'backStatus', title: '备份状态', align: 'center',
templet:function (d) {
var backStatus = d.backStatus
var backStatushtml = '成功';
... ...
... ... @@ -45,11 +45,11 @@ layui.define(['common', 'admin', 'echarts', 'common', 'table', 'sessions', 'layd
field: 'shouldBack', title: '应备份数量', align: 'center', drag: false,
}, {
field: 'success', title: '备份成功数量', align: 'center', drag: false,
templet: '<div><span data-date="{{d.createDate}}" data-status="成功" class="layui-table-link view-failCount-collectValue" style="color: green;font-size: 14px">{{d.success}}</span></div>'
templet: '<div><span data-date="{{d.createDate}}" data-status="成功" class="layui-table-link view-failCount-collectValue" style="color: green!important;">{{d.success}}</span></div>'
}, {
field: 'fail', title: '备份失败数量', align: 'center', drag: false,
templet: '<div><span data-date="{{d.createDate}}" data-status="失败" class="layui-table-link view-failCount-collectValue" style="color: red;font-size: 14px">{{d.fail}}</span></div>'
templet: '<div><span data-date="{{d.createDate}}" data-status="失败" class="layui-table-link view-failCount-collectValue" style="color: red!important;">{{d.fail}}</span></div>'
}, {
field: 'inback', title: '备份中数量', align: 'center', drag: false,
... ... @@ -63,8 +63,8 @@ layui.define(['common', 'admin', 'echarts', 'common', 'table', 'sessions', 'layd
$('.view-failCount-collectValue').on('click', function () {
var createDate = $(this).data("date");
var status = $(this).data("status");
var title = '备份失败列表'
common.openWin('backup/failList', title, {createDate: createDate, status: status}, ['确定', '取消'])
var title = status=="失败"?'备份失败列表':'备份成功列表';
common.openWin('backup/failList', title, {createDate: createDate, status: status}, ['确定', '取消'],null,null,['95%', '90%'])
});
}
});
... ... @@ -72,7 +72,6 @@ layui.define(['common', 'admin', 'echarts', 'common', 'table', 'sessions', 'layd
function initStatusTable() {
var loading = layer.load(2)
var mycars = new Array();
var url = common.domainName + '/api-web/backupview/countLastHalfMonthBackStatus'
$.ajax({
url: url,
... ... @@ -81,23 +80,16 @@ layui.define(['common', 'admin', 'echarts', 'common', 'table', 'sessions', 'layd
success: function (res) {
layer.close(loading);
var data = res.data;
var tr = '<div style="line-height: 26px;padding: 15px;text-align:center;color: #999;">暂无数据</div>';
if(data.length==0){
/*
$(".backupCountStatus-table").append(tr);
*/
}else {
$("#status_table").find("thead").empty();
$("#status_table").find("tbody").empty();
var htr = "<tr><th style='color: #151b26;font-weight: bold!important;'>序号</th><th width='200' style='color: #151b26;font-weight: bold!important;'>系统名称</th><th style='color: #151b26;font-weight: bold!important;'>等保等级</th><th width='200' style='color: #151b26;font-weight: bold!important;'>数据库名称</th><th style='color: #151b26;font-weight: bold!important;'>IP地址</th>"
$.each(data[0].backlist[0], function (j, f) {
if (j != "resId" && j != "resName" && j != "ip") {
htr += "<th style='color: #151b26;font-weight: bold!important;'>" + j + "</th>"
}
var htr = "<tr><th style='color: #151b26;font-weight: bold!important;'>序号</th><th style='color: #151b26;font-weight: bold!important;'>系统名称</th><th style='color: #151b26;font-weight: bold!important;'>等保等级</th><th style='color: #151b26;font-weight: bold!important;'>数据库名称</th><th style='color: #151b26;font-weight: bold!important;'>IP地址</th>"
$.each(res.object, function (j, f) {
htr += "<th style='color: #151b26;font-weight: bold!important;'>" + f + "</th>"
});
htr += "</tr>"
htr += "</tr>";
$("#status_table").find("thead").append(htr);
$("#status_table").find("tbody").empty();
if(data.length==0){
}else {
$.each(data, function (i, e) {
var evaluationLevel = '';
var tr = '';
... ... @@ -140,19 +132,19 @@ layui.define(['common', 'admin', 'echarts', 'common', 'table', 'sessions', 'layd
$.each(e.backlist[j], function (h, n) {
if (h != "resId") {
if (/失败/.test(n)) {
tr += '<td style="text-align: center"><i class="layui-icon layui-icon-close" style="font-size: 20px; color: #ff252c;"></i></td>'
tr += '<td style="text-align: center"><i class="layui-icon layui-icon-close" style="font-size: 20px!important; color: #ff252c!important;"></i></td>'
} else if (/成功/.test(n)) {
tr += '<td><p style="text-align: center"><i class="layui-icon layui-icon-ok" style="font-size: 20px; color: #1dff1c;"></i></p><p style="margin-top: 8px;text-align: center">主楼+综改</p></td>'
tr += '<td><p style="text-align: center"><i class="layui-icon layui-icon-ok" style="font-size: 20px!important; color: #1dff1c!important;"></i></p><p style="margin-top: 8px;text-align: center">主楼+综改</p></td>'
} else if (/备份中/.test(n)) {
tr += '<td style="text-align: center"><span style="color:#ffe40e">' + n + '</span></td>'
tr += '<td style="text-align: center"><span style="color:#ffe40e!important;">' + n + '</span></td>'
} else if (/未备份/.test(n)) {
tr += '<td style="text-align: center"><span style="color:magenta">' + n + '</span></td>'
tr += '<td style="text-align: center"><span style="color:magenta!important;">' + n + '</span></td>'
} else if (/历史存放/.test(n)) {
tr += '<td><p style="text-align: center"><i class="layui-icon layui-icon-log" style="font-size: 20px; color: #1e9fff;"></i></p><p style="margin-top: 8px;text-align: center">综改</p></td>'
tr += '<td><p style="text-align: center"><i class="layui-icon layui-icon-log" style="font-size: 20px!important; color: #1e9fff!important;"></i></p><p style="margin-top: 8px;text-align: center">综改</p></td>'
} else if (/全备/.test(n)) {
tr += '<td style="text-align: center"><span style="color:#1DFF1C">' + n + '</span></td>'
tr += '<td style="text-align: center"><span style="color:#1DFF1C!important;">' + n + '</span></td>'
} else if (/已失效/.test(n)){
tr += '<td style="text-align: center"><span style="color:#FF252C">' + n + '</span></td>'
tr += '<td style="text-align: center"><span style="color:#FF252C!important;">' + n + '</span></td>'
}else {
tr += '<td style="text-align: center">' + n + '</td>'
... ...
... ... @@ -115,7 +115,7 @@ layui.define(['table', 'admin', 'form', 'laydate', 'common', 'sessions', 'view',
common.openWin('backup/backDingjiaList', title, {
busId: busId,
flag: flag
}, ['确定', '取消'],null,null,['90%', '90%'])
}, ['确定', '取消'],null,null,['95%', '90%'])
});
}
... ...
... ... @@ -181,11 +181,11 @@ layui.define(['table', 'admin', 'form', 'laydate', 'common', 'sessions', 'view',
var backStatushtml = '';
if (f.backStatus != null) {
backStatus = f.backStatus
backStatushtml = '<div><span data-date="' + f.startTime + '" data-resid="' + f.resId + '" data-ip= "' + f.ip + '" class="layui-table-link view-backstatus-collectValue" style="color: green;font-size: 14px">成功</span></div>';
backStatushtml = '<div><span data-date="' + f.startTime + '" data-resid="' + f.resId + '" data-ip= "' + f.ip + '" class="layui-table-link view-backstatus-collectValue" style="color: green!important;">成功</span></div>';
if (/失败/.test(backStatus)) {
backStatushtml = '<div><span data-date="' + f.startTime + '" data-resid="' + f.resId + '" data-ip= "' + f.ip + '" class="layui-table-link view-backstatus-collectValue" style="color: red;font-size: 14px">失败</span></div>';
backStatushtml = '<div><span data-date="' + f.startTime + '" data-resid="' + f.resId + '" data-ip= "' + f.ip + '" class="layui-table-link view-backstatus-collectValue" style="color: red!important;">失败</span></div>';
} else if (/备份中/.test(backStatus)) {
backStatushtml = '<div><span data-date="' + f.startTime + '" data-resid="' + f.resId + '" data-ip= "' + f.ip + '" style="color: #ffe40e;font-size: 14px">备份中</span></div>';
backStatushtml = '<div><span data-date="' + f.startTime + '" data-resid="' + f.resId + '" data-ip= "' + f.ip + '" style="color: #ffe40e!important;">备份中</span></div>';
}
}
var backBytes = '';
... ... @@ -216,7 +216,7 @@ layui.define(['table', 'admin', 'form', 'laydate', 'common', 'sessions', 'view',
if (f.lastTime != null) {
if (f.startTime == null || f.lastTime != f.startTime) {
lastTime = '<span style="font-size: 14px;color: red">' + dateForm(f.lastTime) + '</span>'
lastTime = '<span style="color: red!important;">' + dateForm(f.lastTime) + '</span>'
} else {
lastTime = dateForm(f.lastTime)
}
... ... @@ -274,7 +274,7 @@ layui.define(['table', 'admin', 'form', 'laydate', 'common', 'sessions', 'view',
startTime: startTime,
resId: resId,
resIp: ip
}, ['确定', '取消'],null,null,['90%', '90%'])
}, ['确定', '取消'],null,null,['95%', '90%'])
});
$('#inspectioncount_table_id :button.edit').click(function () {
var toEdit = this.value == '编辑';
... ...
/** 应急演练 */
layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydate', 'element'], function (exports) {
layui.define(['table', 'form','laytpl', 'sessions', 'admin', 'common', 'echarts', 'laydate', 'element'], function (exports) {
var $ = layui.$;
var form = layui.form;
var common = layui.common;
var laytpl = layui.laytpl;
exports('recoverycount', function () {
var sessions = layui.sessions;
var accessToken = localStorage.getItem("accessToken");
... ... @@ -42,20 +43,38 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
// 下拉框改变搜索
//form.on('select(slt-recoverycount-biz)', reloadAllChange);
function renderStyle(number){
function renderStyle(number,resId){
if(number>0){
return '<div><span style="color: #0BAC33" >'+number+'</span></div>';
return '<a class="view-recoveryverify-record" style="color: #1dff1c;cursor: pointer;text-decoration:underline;" data-resid="'+resId+'"><span >'+number+'</span></a>';
}else {
return '<div><span style="color: #aa2222">'+number+'</span></div>';
return '<div><span style="color: #aa2222">'+'-'+'</span></div>';
}
}
function openrecoveryverifyForm(id) {
var title = '数据库恢复验证记录';
layer.open({
title:title,
id:'recoveryverifyDetail',
type:1,
area: ['95%', '90%'],
btn:['确定','取消'],
scrollbar:true,
success: function(){
view(this.id).render('recoveryverify/index',{resId: id,period:createTime});
},
yes:function (index,layero) {
return true
}
})
}
function renderIsDiscovery(isRecovery) {
if(isRecovery=="1"){
return '<i class="layui-icon layui-icon-ok" style="font-size: 30px; color: #1dff1c;"></i>';
return '<i class="layui-icon layui-icon-ok" style="font-size: 20px!important; color: #1dff1c!important;"></i>';
}else {
return '<i class="layui-icon layui-icon-close" style="font-size: 30px; color: #ff252c;"></i>';
return '<i class="layui-icon layui-icon-close" style="font-size: 20px!important; color: #ff252c!important;"></i>';
}
}
$("#orgSearchBtn").on("click",function () {
... ... @@ -77,7 +96,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
data: conditions,
success: function (res) {
layer.close(loading);
var data = res.data;
var data = res.object.recoveryCountViews;
$("#recoverycount-table").find("tbody").empty();
$.each(data, function (i, e) {
var evaluationLevel = '';
... ... @@ -96,19 +115,19 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
$.each(e.children, function (j, f) {
tr += '<td >' + f.resName + '</td>' +
'<td>' + f.ip + '</td>' +
'<td>' + renderIsDiscovery(f.isRecovery)+ '</td>' +
'<td>' + renderStyle(f.dece)+ '</td>' +
'<td>' + renderStyle(f.nov) + '</td>' +
'<td>' + renderStyle(f.oct) + '</td>' +
'<td>' + renderStyle(f.sep) + '</td>' +
'<td>' + renderStyle(f.aug) + '</td>' +
'<td>' + renderStyle(f.jul) + '</td>' +
'<td>' + renderStyle(f.jun) + '</td>' +
'<td>' + renderStyle(f.may) + '</td>' +
'<td>' + renderStyle(f.apr) + '</td>' +
'<td>' + renderStyle(f.mar) + '</td>' +
'<td>' + renderStyle(f.feb) + '</td>' +
'<td>' + renderStyle(f.jan) + '</td>' +
'<td data-resid="'+f.resId+'" >' + renderIsDiscovery(f.isRecovery,f.resId)+ '</td>' +
'<td data-resid="'+f.resId+'" >' + renderStyle(f.dece,f.resId)+ '</td>' +
'<td data-resid="'+f.resId+'" >' + renderStyle(f.nov,f.resId) + '</td>' +
'<td data-resid="'+f.resId+'" >' + renderStyle(f.oct,f.resId) + '</td>' +
'<td data-resid="'+f.resId+'" >' + renderStyle(f.sep,f.resId) + '</td>' +
'<td data-resid="'+f.resId+'" >' + renderStyle(f.aug,f.resId) + '</td>' +
'<td data-resid="'+f.resId+'" >' + renderStyle(f.jul,f.resId) + '</td>' +
'<td data-resid="'+f.resId+'" >' + renderStyle(f.jun,f.resId) + '</td>' +
'<td data-resid="'+f.resId+'" >' + renderStyle(f.may,f.resId) + '</td>' +
'<td data-resid="'+f.resId+'" >' + renderStyle(f.apr,f.resId) + '</td>' +
'<td data-resid="'+f.resId+'" >' + renderStyle(f.mar,f.resId) + '</td>' +
'<td data-resid="'+f.resId+'" >' + renderStyle(f.feb,f.resId) + '</td>' +
'<td data-resid="'+f.resId+'" >' + renderStyle(f.jan,f.resId) + '</td>' +
'</tr>'
});
}else{
... ... @@ -129,9 +148,11 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
'</tr>'
}
$("#recoverycount-table").find("tbody").append(tr);
})
});
$('.view-recoveryverify-record').on('click', function () {
openrecoveryverifyForm($(this).data('resid'));
});
$('#recoverycount-top-head-info').html(laytpl($('#tpl-recoverycount-top-head-info').html()).render(res.object));
}
})
}
... ...
... ... @@ -31,6 +31,8 @@
</form>
</div>
<div class="layui-tab-item" style="display: block">
<div id="recoverycount-top-head-info" class="statistics-top-head"></div>
<table id="recoverycount-table" class="layui-table" lay-filter="recoverycount-table">
<thead>
<tr>
... ... @@ -57,11 +59,34 @@
<tbody>
</tbody>
</table>
</div>
</div></div>
</div>
</div>
</div>
</article>
<script type="text/html" id="tpl-recoverycount-top-head-info">
<div class="info-box-count">
<i></i>
<label>应恢复数</label>
<div class="num">
<span lay-tips="数据库恢复总数">{{d.totalSum}}</span>
</div>
</div>
<div class="info-box-count">
<i></i>
<label>已恢复数量</label>
<div class="num">
<span style="color: #1dff1c;" lay-tips="已恢复数量">{{d.recoveriedSum}}</span>
</div>
</div>
<div class="info-box-count">
<i></i>
<label>未恢复数量</label>
<div class="num">
<span style="color: #aa2222" lay-tips="未恢复数量">{{d.noRecoverySum}}</span>
</div>
</div>
</script>
<script>
layui.use('recoverycount', function (fn) {
fn();
... ...