|
|
//备份失败列表
|
|
|
layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'soulTable'], function (exports) {
|
|
|
var $ = layui.$;
|
|
|
var form = layui.form;
|
|
|
var table = layui.table;
|
|
|
var common = layui.common;
|
|
|
var admin = layui.admin;
|
|
|
var session = layui.sessions
|
|
|
//对外暴露的接口
|
|
|
exports("backDingjiaList", function (d) {
|
|
|
var accessToken = localStorage.getItem("accessToken");
|
|
|
var busId = d.busId === null ? '' : d.busId;
|
|
|
var flag = d.flag === null ? '' : d.flag;
|
|
|
createFailTable();
|
|
|
$("#dingjia-detail-export-excel").on('click', function () {
|
|
|
var href = common.domainName + "/api-web/backupview/exportDingjiaBackDetails?accessToken=" + accessToken + "&busId=" + busId + "&flag=" + flag;
|
|
|
window.open(href)
|
|
|
})
|
|
|
|
|
|
//渲染附件表格
|
|
|
function createFailTable() {
|
|
|
var loading = layer.load(2)
|
|
|
var url = common.domainName + '/api-web/backupview/dingjiaBackDetails'
|
|
|
$.ajax({
|
|
|
url: url,
|
|
|
type: 'get',
|
|
|
data: {accessToken: accessToken, busId: busId, flag: flag},
|
|
|
success: function (res) {
|
|
|
layer.close(loading);
|
|
|
var data = res.data;
|
|
|
$("#backDingjiaListTable").find("tbody").empty();
|
|
|
$.each(data, function (i, e) {
|
|
|
var tr = '';
|
|
|
var rowspan = e.jobs != null && e.jobs.length > 1 ? e.jobs.length : 1;
|
|
|
var str = '<td rowspan="' + rowspan + '">' + (i + 1) + '</td><td rowspan="' + rowspan + '">' + e.resName + '</td><td rowspan="' + rowspan + '">' + e.ip + '</td>'
|
|
|
tr += '<tr data-id="' + e.resId + '">' + str
|
|
|
if (e.jobs != null && e.jobs.length > 0) {
|
|
|
$.each(e.jobs, function (j, f) {
|
|
|
var lastRunResult = f.lastRunResult === "" ? "未知" : f.lastRunResult;
|
|
|
var totalSize = (Number(f.totalSize) / 1024 / 1024 / 1024).toFixed(2);
|
|
|
var speed = (Number(f.speed) / 1024 / 1024).toFixed(2);
|
|
|
tr += '<td class="jobid" data-jobid ="' + f.id + '">' + f.subtype + '</td>' +
|
|
|
'<td>' + f.status + '</td>' +
|
|
|
'<td>' + f.resName + '</td>' +
|
|
|
'<td>' + totalSize + '</td>' +
|
|
|
'<td>' + speed + '</td>' +
|
|
|
'<td>' + f.lastRunTime + '</td>' +
|
|
|
'<td>' + f.lastCompletedTime + '</td>' +
|
|
|
'<td>' + lastRunResult + '</td>' +
|
|
|
'<td>' + f.nextRunTime + '</td>' +
|
|
|
'<td><input type="button" value="编辑" class="edit" style="background-color: #1E9FFF;"/></td>' +
|
|
|
'</tr>'
|
|
|
});
|
|
|
} else {
|
|
|
tr += '<td></td>' +
|
|
|
'<td></td>' +
|
|
|
'<td></td>' +
|
|
|
'<td></td>' +
|
|
|
'<td></td>' +
|
|
|
'<td></td>' +
|
|
|
'<td></td>' +
|
|
|
'<td></td>' +
|
|
|
'<td></td>' +
|
|
|
'<td><input type="button" value="移除资源" class="remove" style="background-color: #1E9FFF;"/></td>' +
|
|
|
'</tr>'
|
|
|
}
|
|
|
|
|
|
$("#backDingjiaListTable").find("tbody").append(tr);
|
|
|
});
|
|
|
$('#backDingjiaListTable :button.edit').click(function () {
|
|
|
var toEdit = this.value == '编辑';
|
|
|
this.value = toEdit ? '确定' : '编辑';
|
|
|
var tdArr = []
|
|
|
var jobId = $(this).closest('tr').find('td.jobid').attr("data-jobid");
|
|
|
$(this).closest('tr').find('td').not('[rowspan]').not(':last').each(function (t, index) {
|
|
|
if (toEdit) {
|
|
|
this.innerHTML = '<input type="text" value="' + this.innerHTML.replace(/"/g, '"').replace(/<\/?.+?>/g, '').replace(/ /g, '') + '"/>';
|
|
|
} else {
|
|
|
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 = {
|
|
|
'id': jobId,
|
|
|
'subtype': tdArr[0],
|
|
|
'status': tdArr[1],
|
|
|
'resName': tdArr[2],
|
|
|
'totalSize': (Number(tdArr[3]) * 1024 * 1024 * 1024),
|
|
|
'speed': (Number(tdArr[4]) * 1024 * 1024),
|
|
|
'lastRunTime': tdArr[5],
|
|
|
'lastCompletedTime': tdArr[6],
|
|
|
'lastRunResult': tdArr[7],
|
|
|
'nextRunTime': tdArr[8]
|
|
|
};
|
|
|
if (param.resName == '') {
|
|
|
layer.msg('备份类型不能为空!', {icon: 1});
|
|
|
return;
|
|
|
} else if (param.status == '') {
|
|
|
layer.msg('状态不能为空!', {icon: 1});
|
|
|
return;
|
|
|
} else if (param.lastRunTime == '') {
|
|
|
layer.msg('上次备份时间不能为空!', {icon: 1});
|
|
|
return;
|
|
|
} else {
|
|
|
var url = common.domainName + '/api-web/backupview/dingjiaJobEdit?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});
|
|
|
createFailTable()
|
|
|
return true;
|
|
|
} else {
|
|
|
layer.msg('修改失败!', {icon: 2});
|
|
|
}
|
|
|
},
|
|
|
error: function () {
|
|
|
layer.closeAll('loading');
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
}
|
|
|
});
|
|
|
|
|
|
$('#backDingjiaListTable :button.remove').click(function () {
|
|
|
var resId = $(this).closest('tr').attr("data-id");
|
|
|
layer.confirm('确定要将此资源移除备份嘛?', {
|
|
|
btn: ['确定', '取消'] //按钮
|
|
|
}, function () {
|
|
|
$.ajax({
|
|
|
url: common.domainName + `/api-web/backupview/removeDingjiaRes?accessToken=` + accessToken + `&busId=` + busId + `&resId=` + resId,
|
|
|
type: "get",
|
|
|
}).done(function (res) {
|
|
|
layer.msg('移除成功', {
|
|
|
offset: '15px'
|
|
|
, icon: 1
|
|
|
, time: 1000
|
|
|
});
|
|
|
}).error(function (error) {
|
|
|
console.log(error);
|
|
|
});
|
|
|
});
|
|
|
});
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
|
|
|
})
|
|
|
}) |
|
|
\ No newline at end of file |
...
|
...
|
|