(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 () {}); } } }); })();