|
|
layui.define(['table', 'admin', 'form', 'laydate', 'common', 'sessions', 'view', 'element'], function (exports) {
|
|
|
var $ = layui.$;
|
|
|
var form = layui.form;
|
|
|
var table = layui.table;
|
|
|
var element = layui.element;
|
|
|
var laydate = layui.laydate;
|
|
|
var common = layui.common;
|
|
|
var view = layui.view;
|
|
|
var admin = layui.admin;
|
|
|
//对外暴露的接口
|
|
|
exports('backupmain', function () {
|
|
|
var accessToken = localStorage.getItem("accessToken");
|
|
|
var today = new Date()
|
|
|
today = today.getFullYear() + "-" + (today.getMonth() >= 9 ? (today.getMonth() + 1) : "0" + (today.getMonth() + 1)) + "-" + (today.getDate() > 9 ? (today.getDate()) : "0" + (today.getDate()));
|
|
|
var backTime = today;
|
|
|
var inspIsLoad = false;
|
|
|
var businessIsLoad = false;
|
|
|
var currSelect = 0;
|
|
|
var period = 'today';
|
|
|
var tip_index;
|
|
|
$("#probutton").mouseover(function () {
|
|
|
tips_index = layer.tips('查询昨天8时到今天8时的备份', this, {time: 0});
|
|
|
});
|
|
|
$("#probutton").mouseout(function () {
|
|
|
layer.close(tips_index); //关闭弹出层索引
|
|
|
});
|
|
|
form.render();
|
|
|
var inspectioncountListTable = '';
|
|
|
searchEvent();//检索条件事件
|
|
|
//加载文档表格数据
|
|
|
renderinspectioncountListTable();
|
|
|
|
|
|
//检索事件
|
|
|
function searchEvent() {
|
|
|
//发送状态
|
|
|
form.on('select(inspectioncount_date)', function (data) {
|
|
|
renderinspectioncountListTable();
|
|
|
});
|
|
|
}
|
|
|
|
|
|
//日期范围选择
|
|
|
laydate.render({
|
|
|
elem: '#backTime',
|
|
|
min: -365,
|
|
|
max: 0,
|
|
|
value: new Date(),
|
|
|
done: function (value) {
|
|
|
backTime = value
|
|
|
$.each($("button.date"), function (i, e) {
|
|
|
var $dom = $(e);
|
|
|
if ($dom.hasClass("active")) {
|
|
|
$dom.removeClass("active")
|
|
|
}
|
|
|
})
|
|
|
refreshPage()
|
|
|
}
|
|
|
});
|
|
|
|
|
|
// 日期方式选择
|
|
|
$('#btns-insp-time button').click(function () {
|
|
|
$.each($("button.date"), function (i, e) {
|
|
|
var $dom = $(e);
|
|
|
if ($dom.hasClass("active")) {
|
|
|
$dom.removeClass("active")
|
|
|
}
|
|
|
})
|
|
|
$("#backTime").val('')
|
|
|
backTime = ''
|
|
|
$("#btns-insp-time button").removeClass("active");
|
|
|
$(this).addClass("active");
|
|
|
period = ($(this).data("period"))
|
|
|
// if (period == 'today') {
|
|
|
var today = new Date()
|
|
|
today = today.getFullYear() + "-" + (today.getMonth() >= 9 ? (today.getMonth() + 1) : "0" + (today.getMonth() + 1)) + "-" + (today.getDate() > 9 ? (today.getDate()) : "0" + (today.getDate()));
|
|
|
backTime = today
|
|
|
// } else if (period == 'yestoday') {
|
|
|
// var time = (new Date).getTime() - 24 * 60 * 60 * 1000;
|
|
|
// var yesday = new Date(time); // 获取的是前一天日期
|
|
|
// yesday = yesday.getFullYear() + "-" + (yesday.getMonth() > 9 ? (yesday.getMonth() + 1) : "0" + (yesday.getMonth() + 1)) + "-" + (yesday.getDate() > 9 ? (yesday.getDate()) : "0" + (yesday.getDate()));
|
|
|
// backTime = yesday
|
|
|
// }
|
|
|
refreshPage()
|
|
|
});
|
|
|
|
|
|
//根据tab页刷新页面数据
|
|
|
function refreshPage() {
|
|
|
if (currSelect == 0) {
|
|
|
renderinspectioncountListTable();
|
|
|
} else if (currSelect == 1) {
|
|
|
renderinspectionBusTable();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// tab页切换事件
|
|
|
element.on('tab(insp-tab)', function (data) {
|
|
|
if (data.index == 0) {
|
|
|
if (!inspIsLoad) {
|
|
|
renderinspectioncountListTable();
|
|
|
inspIsLoad = true;
|
|
|
}
|
|
|
} else if (data.index == 1) {
|
|
|
if (!businessIsLoad) {
|
|
|
renderinspectionBusTable();
|
|
|
businessIsLoad = true;
|
|
|
}
|
|
|
}
|
|
|
currSelect = data.index;
|
|
|
});
|
|
|
|
|
|
$("#btn-inspStatistics-export-excel").on('click', function () {
|
|
|
if (currSelect == 0) {
|
|
|
var href = common.domainName + '/api-web/backupview/export?accessToken=' + accessToken + "&backTime=" + backTime;
|
|
|
} else if (currSelect == 1) {
|
|
|
var href = common.domainName + '/inspection-report/report/record/inspectionBusListExport?access_token=' + accessToken + "&createTime=" + createTime + '&dateLimit=' + dateLimit + '&limit=-1';
|
|
|
}
|
|
|
window.open(href)
|
|
|
})
|
|
|
|
|
|
//表格数据
|
|
|
function renderinspectioncountListTable() {
|
|
|
var loading = layer.load(2)
|
|
|
var url = common.domainName + '/api-web/backupview/list'
|
|
|
$.ajax({
|
|
|
url: url,
|
|
|
type: 'get',
|
|
|
data: {accessToken: accessToken, backTime: backTime},
|
|
|
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){
|
|
|
$(".layui-tab-item").append(tr);
|
|
|
}else {
|
|
|
$("#inspectioncount_table_id").find("tbody").empty();
|
|
|
}
|
|
|
$.each(data, function (i, e) {
|
|
|
var tr = '';
|
|
|
var str = '';
|
|
|
if (e.rowspan == 0) {
|
|
|
str = '<td rowspan=1>' + e.businfo.busTypeName + '</td><td rowspan=1>' + e.businfo.evaluationLevel + '</td>'
|
|
|
tr += '<tr data-id="' + e.businfo.busId + '">' +
|
|
|
'<td>' + (i + 1) + '</td>' +
|
|
|
str +
|
|
|
'<td></td>' +
|
|
|
'<td></td>' +
|
|
|
'<td></td>' +
|
|
|
'<td></td>' +
|
|
|
'<td></td>' +
|
|
|
'<td></td>' +
|
|
|
'<td></td>' +
|
|
|
'<td></td>' +
|
|
|
'<td></td>' +
|
|
|
'<td></td>' +
|
|
|
'<td></td>' +
|
|
|
'<td></td>' +
|
|
|
'<td></td>' +
|
|
|
'</tr>'
|
|
|
} else {
|
|
|
str = '<td rowspan="' + e.rowspan + '">' + (i + 1) + '</td><td rowspan="' + e.rowspan + '">' + e.businfo.busTypeName + '</td><td rowspan="' + e.rowspan + '">' + e.businfo.evaluationLevel + '</td>'
|
|
|
tr += '<tr data-id="' + e.businfo.busId + '">' + str
|
|
|
$.each(e.backlist, function (j, f) {
|
|
|
var platform = '';
|
|
|
if (f.platform != null) {
|
|
|
platform = f.platform
|
|
|
}
|
|
|
var backLevel = '';
|
|
|
if (f.backLevel != null) {
|
|
|
backLevel = f.backLevel
|
|
|
}
|
|
|
var backStatus = '';
|
|
|
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>';
|
|
|
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>';
|
|
|
}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>';
|
|
|
}
|
|
|
}
|
|
|
var backBytes = '';
|
|
|
if (f.backBytes != null) {
|
|
|
backBytes = f.backBytes
|
|
|
}
|
|
|
var backSpeed = '';
|
|
|
if (f.backSpeed != null) {
|
|
|
backSpeed = f.backSpeed
|
|
|
}
|
|
|
var useTime = '';
|
|
|
if (f.useTime != null) {
|
|
|
useTime = f.useTime
|
|
|
}
|
|
|
var startTime = '';
|
|
|
if (f.startTime != null) {
|
|
|
startTime = dateForm(f.startTime)
|
|
|
}
|
|
|
var endTime = '';
|
|
|
if (f.endTime != null) {
|
|
|
endTime = dateForm(f.endTime)
|
|
|
}
|
|
|
var remark = '';
|
|
|
if (f.remark != null) {
|
|
|
remark = f.remark
|
|
|
}
|
|
|
var lastTime = '';
|
|
|
|
|
|
if (f.lastTime != null) {
|
|
|
if (f.startTime == null || f.lastTime != f.startTime) {
|
|
|
lastTime = '<span style="font-size: 14px;color: red">' + dateForm(f.lastTime) + '</span>'
|
|
|
} else {
|
|
|
lastTime = dateForm(f.lastTime)
|
|
|
}
|
|
|
}
|
|
|
var id = 0
|
|
|
if (f.id != null) {
|
|
|
id = f.id
|
|
|
}
|
|
|
if (f.backLevel != null) {
|
|
|
tr += '<td style="display: none" class="bizid" data-bizId = "'+e.businfo.busId+'" data-bizName = "'+ e.businfo.busTypeName+'">' + id + '</td>' +
|
|
|
'<td style="display: none">' + f.resId + '</td>' +
|
|
|
'<td>' + f.resName + '</td>' +
|
|
|
'<td>' + f.ip + '</td>' +
|
|
|
'<td>' + platform + '</td>' +
|
|
|
'<td>' + backLevel + '</td>' +
|
|
|
'<td>' + backStatushtml + '</td>' +
|
|
|
'<td>' + backBytes + '</td>' +
|
|
|
'<td>' + backSpeed + '</td>' +
|
|
|
'<td>' + useTime + '</td>' +
|
|
|
'<td>' + startTime + '</td>' +
|
|
|
'<td>' + endTime + '</td>' +
|
|
|
'<td>' + remark + '</td>' +
|
|
|
'<td>' + lastTime + '</td>' +
|
|
|
'<td><input type="button" value="编辑" class="edit" style="background-color: #1E9FFF;"/></td>' +
|
|
|
'</tr>'
|
|
|
} else {
|
|
|
tr += '<td style="display: none" class="bizid" data-bizId = "'+e.businfo.busId+'" data-bizName = "'+ e.businfo.busTypeName+'">' + id + '</td>' +
|
|
|
'<td style="display: none">' + f.resId + '</td>' +
|
|
|
'<td>' + f.resName + '</td>' +
|
|
|
'<td>' + f.ip + '</td>' +
|
|
|
'<td>' + platform + '</td>' +
|
|
|
'<td>' + backLevel + '</td>' +
|
|
|
'<td>' + backStatushtml + '</td>' +
|
|
|
'<td>' + backBytes + '</td>' +
|
|
|
'<td>' + backSpeed + '</td>' +
|
|
|
'<td>' + useTime + '</td>' +
|
|
|
'<td>' + startTime + '</td>' +
|
|
|
'<td>' + endTime + '</td>' +
|
|
|
'<td>' + remark + '</td>' +
|
|
|
'<td>' + lastTime + '</td>' +
|
|
|
'<td style="display:grid"><input type="button" value="编辑" class="edit" style="background-color: #1E9FFF;"/><input type="button" class="import" value="引用上次" style="background-color: #c0c4cc;margin-top: 5px"/></td>' +
|
|
|
'</tr>'
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
$("#inspectioncount_table_id").find("tbody").append(tr);
|
|
|
})
|
|
|
$('.view-backstatus-collectValue').on('click', function () {
|
|
|
var startTime = dateForm($(this).data("date"));
|
|
|
var resId = $(this).data("resid");
|
|
|
var ip = $(this).data("ip");
|
|
|
console.log(startTime);
|
|
|
var title = '多通道备份列表'
|
|
|
common.openWin('backup/backDetailList', title, {
|
|
|
startTime: startTime,
|
|
|
resId: resId,
|
|
|
resIp: ip
|
|
|
}, ['确定', '取消'])
|
|
|
});
|
|
|
$('#inspectioncount_table_id :button.edit').click(function () {
|
|
|
var toEdit = this.value == '编辑';
|
|
|
this.value = toEdit ? '确定' : '编辑';
|
|
|
var tdArr = []
|
|
|
var busId = $(this).closest('tr').find('td.bizid').attr("data-bizId");
|
|
|
var busName = $(this).closest('tr').find('td.bizid').attr("data-bizName");
|
|
|
var list = $(this).closest('tr').find('td').not('[rowspan]').not(':last');
|
|
|
$(this).closest('tr').find('td').not('[rowspan]').not(':last').each(function (t, index) {
|
|
|
if (toEdit) {
|
|
|
if (t != list.length - 1) {
|
|
|
this.innerHTML = '<input type="text" value="' + this.innerHTML.replace(/"/g, '"').replace(/<\/?.+?>/g, '').replace(/ /g, '') + '"/>';
|
|
|
} else {
|
|
|
return;
|
|
|
}
|
|
|
} else {
|
|
|
if (t != list.length - 1) {
|
|
|
if (this.firstChild != null) {
|
|
|
if (this.firstChild.value != undefined) {
|
|
|
this.innerHTML = this.firstChild.value.replace(/</g, '<').replace(/>/g, '>');
|
|
|
} else {
|
|
|
this.innerHTML = this.firstChild.data.replace(/</g, '<').replace(/>/g, '>');
|
|
|
}
|
|
|
} else {
|
|
|
this.innerHTML = this.value.replace(/</g, '<').replace(/>/g, '>');
|
|
|
}
|
|
|
tdArr.push(this.innerHTML)
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
if (!toEdit) {
|
|
|
var param = {
|
|
|
'busId': busId,
|
|
|
'busName': busName,
|
|
|
'id': tdArr[0],
|
|
|
'resId': tdArr[1],
|
|
|
'resName': tdArr[2],
|
|
|
'ip': tdArr[3],
|
|
|
'platform': tdArr[4],
|
|
|
'backLevel': tdArr[5],
|
|
|
'backStatus': tdArr[6],
|
|
|
'backBytes': tdArr[7],
|
|
|
'backSpeed': tdArr[8],
|
|
|
'useTime': tdArr[9],
|
|
|
'startTime': tdArr[10],
|
|
|
'endTime': tdArr[11],
|
|
|
'remark': tdArr[12]
|
|
|
};
|
|
|
if (param.resName == '') {
|
|
|
layer.msg('数据库名称不能为空!', {icon: 1});
|
|
|
return;
|
|
|
}
|
|
|
else if (param.startTime == '') {
|
|
|
layer.msg('开始时间不能为空!', {icon: 1});
|
|
|
return;
|
|
|
}
|
|
|
else if (param.endTime == '') {
|
|
|
layer.msg('结束时间不能为空!', {icon: 1});
|
|
|
return;
|
|
|
} else {
|
|
|
param.startTime = new Date(param.startTime);
|
|
|
param.endTime = new Date(param.endTime);
|
|
|
var url = common.domainName + '/api-web/backupview/save?accessToken=' + accessToken
|
|
|
layer.load(2);
|
|
|
admin.req({
|
|
|
url: url,
|
|
|
type: 'POST',
|
|
|
contentType: 'application/json',
|
|
|
data: JSON.stringify(param),
|
|
|
success: function (response) {
|
|
|
layer.closeAll('loading');
|
|
|
if (response.success) {
|
|
|
layer.msg('保存成功!', {icon: 1});
|
|
|
renderinspectioncountListTable()
|
|
|
return true;
|
|
|
} else {
|
|
|
layer.msg('保存失败!', {icon: 2});
|
|
|
}
|
|
|
},
|
|
|
error: function () {
|
|
|
layer.closeAll('loading');
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
}
|
|
|
});
|
|
|
$('#inspectioncount_table_id :button.import').click(function () {
|
|
|
var toEdit = this.value == '引用上次';
|
|
|
this.value = toEdit ? '保存' : '引用上次';
|
|
|
var tdArr = []
|
|
|
var resId = $(this).closest('tr').find('td').not('[rowspan]')[1].innerHTML;
|
|
|
var tdlist = $(this).closest('tr').find('td').not('[rowspan]').not(':last');
|
|
|
var url = common.domainName + '/api-web/backupview/findLastBackup';
|
|
|
$.ajax({
|
|
|
url: url,
|
|
|
type: 'get',
|
|
|
data: {accessToken: accessToken, resId: resId},
|
|
|
success: function (res) {
|
|
|
var obj = res.object;
|
|
|
if (obj) {
|
|
|
if (toEdit) {
|
|
|
tdlist[0].innerHTML = '0';
|
|
|
tdlist[1].innerHTML = resId
|
|
|
tdlist[2].innerHTML = '<input class="text" type="text" value="' + obj.resName + '"/>';
|
|
|
tdlist[3].innerHTML = '<input class="text" type="text" value="' + obj.ip + '"/>';
|
|
|
tdlist[4].innerHTML = '<input class="text" type="text" value="' + obj.platform + '"/>';
|
|
|
tdlist[5].innerHTML = '<input class="text" type="text" value="' + obj.backLevel + '"/>';
|
|
|
tdlist[6].innerHTML = '<input class="text" type="text" value="' + obj.backStatus + '"/>';
|
|
|
tdlist[7].innerHTML = '<input class="text" type="text" value="' + obj.backBytes + '"/>';
|
|
|
tdlist[8].innerHTML = '<input class="text" type="text" value="' + obj.backSpeed + '"/>';
|
|
|
tdlist[9].innerHTML = '<input class="text" type="text" value="' + obj.useTime + '"/>';
|
|
|
tdlist[10].innerHTML = '<input class="text" type="text" value="' + dateForm(obj.startTime) + '"/>';
|
|
|
tdlist[11].innerHTML = '<input class="text" type="text" value="' + dateForm(obj.endTime) + '"/>';
|
|
|
tdlist[12].innerHTML = '<input class="text" type="text" value="' + obj.remark + '"/>';
|
|
|
// tdlist[13].innerHTML = '<input class="text" type="text" value="' + dateForm(obj.lastTime) + '"/>';
|
|
|
} else {
|
|
|
$.each(tdlist, function (i, e) {
|
|
|
|
|
|
if (i > 1 && i < 13) {
|
|
|
if (this.firstChild) {
|
|
|
if (this.firstChild.value != undefined) {
|
|
|
this.innerHTML = this.firstChild.value.replace(/</g, '<').replace(/>/g, '>');
|
|
|
} else {
|
|
|
this.innerHTML = this.firstChild.data.replace(/</g, '<').replace(/>/g, '>');
|
|
|
}
|
|
|
} else {
|
|
|
this.innerHTML = this.value.replace(/</g, '<').replace(/>/g, '>');
|
|
|
}
|
|
|
} else {
|
|
|
this.innerHTML = this.innerHTML;
|
|
|
}
|
|
|
tdArr.push(this.innerHTML)
|
|
|
})
|
|
|
var param = {
|
|
|
'id': tdArr[0],
|
|
|
'resId': tdArr[1],
|
|
|
'resName': tdArr[2],
|
|
|
'ip': tdArr[3],
|
|
|
'platform': tdArr[4],
|
|
|
'backLevel': tdArr[5],
|
|
|
'backStatus': tdArr[6],
|
|
|
'backBytes': tdArr[7],
|
|
|
'backSpeed': tdArr[8],
|
|
|
'useTime': tdArr[9],
|
|
|
'startTime': tdArr[10],
|
|
|
'endTime': tdArr[11],
|
|
|
'remark': tdArr[12]
|
|
|
};
|
|
|
if (param.resName == '') {
|
|
|
layer.msg('数据库名称不能为空!', {icon: 2});
|
|
|
return;
|
|
|
}
|
|
|
else if (param.startTime == '') {
|
|
|
layer.msg('开始时间不能为空!', {icon: 2});
|
|
|
return;
|
|
|
}
|
|
|
else if (param.endTime == '') {
|
|
|
layer.msg('结束时间不能为空!', {icon: 2});
|
|
|
return;
|
|
|
|
|
|
} else if (dateForm(obj.startTime) == param.startTime || dateForm(obj.endTime) == param.endTime) {
|
|
|
layer.msg('开始时间和结束时间不能跟上次相同!', {icon: 2});
|
|
|
return;
|
|
|
} else {
|
|
|
param.startTime = new Date(param.startTime);
|
|
|
param.endTime = new Date(param.endTime);
|
|
|
console.log(param)
|
|
|
var url = common.domainName + '/api-web/backupview/save?accessToken=' + accessToken
|
|
|
layer.load(2);
|
|
|
admin.req({
|
|
|
url: url,
|
|
|
type: 'POST',
|
|
|
contentType: 'application/json',
|
|
|
data: JSON.stringify(param),
|
|
|
success: function (response) {
|
|
|
layer.closeAll('loading');
|
|
|
if (response.success) {
|
|
|
layer.msg('保存成功!', {icon: 1});
|
|
|
renderinspectioncountListTable()
|
|
|
return true;
|
|
|
} else {
|
|
|
layer.msg('保存失败!', {icon: 2});
|
|
|
}
|
|
|
},
|
|
|
error: function () {
|
|
|
layer.closeAll('loading');
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
layer.msg('没有查到备份记录!', {icon: 2});
|
|
|
}
|
|
|
},
|
|
|
error: function () {
|
|
|
layer.msg('导入失败!', {icon: 2});
|
|
|
}
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
|
|
|
function dateForm(time) {
|
|
|
var unixTimestamp = new Date(time);
|
|
|
var commonTime = unixTimestamp.toLocaleString();
|
|
|
return commonTime
|
|
|
}
|
|
|
|
|
|
Date.prototype.toLocaleString = function () {
|
|
|
return this.getFullYear() + "-" + (this.getMonth() >= 9 ? (this.getMonth() + 1) : "0" + (this.getMonth() + 1)) + "-" + (this.getDate() > 9 ? (this.getDate()) : "0" + (this.getDate())) + " " + (this.getHours() > 9 ? this.getHours() : "0" + this.getHours()) + ":" + (this.getMinutes() > 9 ? this.getMinutes() : "0" + this.getMinutes()) + ":" + (this.getSeconds() > 9 ? this.getSeconds() : "0" + this.getSeconds());
|
|
|
};
|
|
|
|
|
|
//业务报表统计数据列表
|
|
|
function renderinspectionBusTable() {
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}); |
|
|
\ No newline at end of file |
...
|
...
|
|