(function () {
|
new Vue({
|
el: "#app",
|
data: function () {
|
return {
|
loading: false,
|
saving: false,
|
running: false,
|
tableOptions: [],
|
result: null,
|
form: {
|
expireDays: 180,
|
mode: "all",
|
tables: []
|
}
|
};
|
},
|
computed: {
|
resultDetails: function () {
|
var vm = this;
|
if (!vm.result || !vm.result.detail) {
|
return [];
|
}
|
return Object.keys(vm.result.detail).map(function (table) {
|
return {
|
table: table,
|
label: vm.resolveTableLabel(table),
|
count: vm.result.detail[table]
|
};
|
});
|
}
|
},
|
created: function () {
|
this.loadConfig();
|
},
|
methods: {
|
authHeaders: function () {
|
return { token: localStorage.getItem("token") };
|
},
|
handleForbidden: function (res) {
|
if (res && Number(res.code) === 403) {
|
top.location.href = baseUrl + "/";
|
return true;
|
}
|
return false;
|
},
|
resolveTableLabel: function (table) {
|
var index;
|
for (index = 0; index < this.tableOptions.length; index += 1) {
|
if (this.tableOptions[index].value === table) {
|
return this.tableOptions[index].label;
|
}
|
}
|
return table;
|
},
|
loadConfig: function () {
|
var vm = this;
|
vm.loading = true;
|
$.ajax({
|
url: baseUrl + "/logCleanup/config/auth",
|
method: "GET",
|
headers: vm.authHeaders(),
|
success: function (res) {
|
var tables;
|
vm.loading = false;
|
if (vm.handleForbidden(res)) {
|
return;
|
}
|
if (!res || res.code !== 200) {
|
vm.$message.error((res && res.msg) ? res.msg : "加载日志清理配置失败");
|
return;
|
}
|
vm.form.expireDays = Number((res.data && res.data.expireDays) || 180);
|
tables = (res.data && res.data.tables) || {};
|
vm.tableOptions = Object.keys(tables).map(function (key) {
|
return {
|
value: key,
|
label: tables[key]
|
};
|
});
|
},
|
error: function () {
|
vm.loading = false;
|
vm.$message.error("加载日志清理配置失败");
|
}
|
});
|
},
|
saveConfig: function () {
|
var vm = this;
|
if (!vm.form.expireDays || Number(vm.form.expireDays) <= 0) {
|
vm.$message.warning("日志保留天数必须大于0");
|
return;
|
}
|
vm.saving = true;
|
$.ajax({
|
url: baseUrl + "/logCleanup/config/save/auth",
|
method: "POST",
|
contentType: "application/json;charset=UTF-8",
|
headers: vm.authHeaders(),
|
data: JSON.stringify({
|
expireDays: Number(vm.form.expireDays)
|
}),
|
success: function (res) {
|
vm.saving = false;
|
if (vm.handleForbidden(res)) {
|
return;
|
}
|
if (!res || res.code !== 200) {
|
vm.$message.error((res && res.msg) ? res.msg : "保存日志清理配置失败");
|
return;
|
}
|
vm.$message.success("保存成功");
|
},
|
error: function () {
|
vm.saving = false;
|
vm.$message.error("保存日志清理配置失败");
|
}
|
});
|
},
|
runCleanup: function () {
|
var vm = this;
|
var requestBody;
|
if (vm.form.mode === "selected" && (!vm.form.tables || !vm.form.tables.length)) {
|
vm.$message.warning("请选择至少一张日志表");
|
return;
|
}
|
requestBody = {
|
mode: vm.form.mode,
|
tables: vm.form.mode === "selected" ? vm.form.tables : []
|
};
|
vm.$confirm("确定立即执行日志清理吗?", "提示", {
|
type: "warning",
|
confirmButtonText: "确定",
|
cancelButtonText: "取消"
|
}).then(function () {
|
vm.running = true;
|
$.ajax({
|
url: baseUrl + "/logCleanup/run/auth",
|
method: "POST",
|
contentType: "application/json;charset=UTF-8",
|
headers: vm.authHeaders(),
|
data: JSON.stringify(requestBody),
|
success: function (res) {
|
vm.running = false;
|
if (vm.handleForbidden(res)) {
|
return;
|
}
|
if (!res || res.code !== 200) {
|
vm.$message.error((res && res.msg) ? res.msg : "手动清理失败");
|
return;
|
}
|
vm.result = res.data || null;
|
vm.$message.success("手动清理执行完成");
|
},
|
error: function () {
|
vm.running = false;
|
vm.$message.error("手动清理失败");
|
}
|
});
|
}).catch(function () {});
|
}
|
}
|
});
|
})();
|