diff --git a/glc/gweb/http_server.go b/glc/gweb/http_server.go index 83a9622..dfd55d2 100644 --- a/glc/gweb/http_server.go +++ b/glc/gweb/http_server.go @@ -34,7 +34,7 @@ func Run() { for _, fnFilter := range filters { rs := fnFilter(req) if rs != nil { - c.JSON(rs.Code, rs) // 过滤器返回有内容时直接返回处理结果,结束 + c.JSON(200, rs) // 过滤器返回有内容时直接返回处理结果,结束 return } } @@ -63,7 +63,7 @@ func Run() { rs := handle.Controller(req) if rs != nil { - c.JSON(rs.Code, rs) + c.JSON(200, rs) } }) diff --git a/glc/ldb/sysmnt/storage_data.go b/glc/ldb/sysmnt/storage_data.go index bf801bc..0679aa0 100644 --- a/glc/ldb/sysmnt/storage_data.go +++ b/glc/ldb/sysmnt/storage_data.go @@ -59,5 +59,12 @@ func GetStorageList() *StorageResult { // 删除指定日志仓目录 func DeleteStorage(name string) error { - return os.RemoveAll(conf.GetStorageRoot() + cmn.PathSeparator() + name) + // 先尝试目录改名,改成功后再删除 + oldPath := conf.GetStorageRoot() + cmn.PathSeparator() + name + newPath := conf.GetStorageRoot() + cmn.PathSeparator() + "_x_" + name + err := os.Rename(oldPath, newPath) + if err != nil { + return err + } + return os.RemoveAll(newPath) } diff --git a/glc/www/controller/storage_mnt_controller.go b/glc/www/controller/storage_mnt_controller.go index e577728..121c532 100644 --- a/glc/www/controller/storage_mnt_controller.go +++ b/glc/www/controller/storage_mnt_controller.go @@ -14,11 +14,12 @@ func StorageListController(req *gweb.HttpRequest) *gweb.HttpResult { // 删除指定日志仓 func StorageDeleteController(req *gweb.HttpRequest) *gweb.HttpResult { - name := req.GetFormParameter("name") + name := req.GetFormParameter("storeName") err := sysmnt.DeleteStorage(name) if err != nil { - log.Println("日志仓", name, "删除失败", err) - return gweb.Error500("删除失败") + msg := err.Error() + log.Println("日志仓", name, "删除失败", msg) + return gweb.Error500("日志仓 " + name + " 正在使用中,无法删除") } return gweb.Ok() } diff --git a/glc/www/web/src/api.js b/glc/www/web/src/api.js index 959979c..cb58dc9 100644 --- a/glc/www/web/src/api.js +++ b/glc/www/web/src/api.js @@ -36,6 +36,11 @@ export default { } return post(`${BASE_URL}/glc/v1/store/list`, formData) }, + deleteStorage(name) { + let formData = new FormData(); + formData.append("storeName", name); + return post(`${BASE_URL}/glc/v1/store/delete`, formData) + }, // remove(db, id) { // return request(`/remove?database=${db}`, 'post', { id }) // }, diff --git a/glc/www/web/src/views/storages.vue b/glc/www/web/src/views/storages.vue index 1f91cbf..f3768f8 100644 --- a/glc/www/web/src/views/storages.vue +++ b/glc/www/web/src/views/storages.vue @@ -25,11 +25,11 @@ - + @@ -79,13 +79,36 @@ export default { }, methods: { + remove(row) { + + this.$confirm('确定删除吗?', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + }).then(() => { + this.loading = true + api.deleteStorage(row.name).then(rs => { + let res = rs.data + if (res.success) { + this.$message({type: 'info', message: "已删除 " + row.name}); + this.search(); + }else{ + this.$message({type: 'error', message: res.message}); + } + }).finally(() => { + this.loading = false + }) + }).catch(() => { + // ignore + }) + + }, search() { this.loading = true api.searchStorages(this.params).then(rs => { let res = rs.data if (res.success) { - console.error(res) this.data = res.result.data || []; // document.querySelector('.el-scrollbar__wrap').scrollTop = 0; // 滚动到顶部 }