From 3e0fd4a5fe280d251735a7453a683855693a74c3 Mon Sep 17 00:00:00 2001 From: Linxb <448923515@qq.com> Date: Tue, 24 Sep 2019 20:59:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=9B=9E=E6=94=B6=E7=AB=99?= =?UTF-8?q?=E6=96=87=E7=AB=A0=E8=BF=98=E5=8E=9F=E5=88=B0=E8=BF=9C=E5=A4=84?= =?UTF-8?q?=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sang/controller/ArticleController.java | 8 +++++ .../java/org/sang/mapper/ArticleMapper.java | 2 ++ .../java/org/sang/mapper/ArticleMapper.xml | 4 ++- .../java/org/sang/service/ArticleService.java | 4 +++ vueblog/src/components/ArticleList.vue | 10 +++--- vueblog/src/components/BlogTable.vue | 33 ++++++++++++++++++- 6 files changed, 54 insertions(+), 7 deletions(-) diff --git a/blogserver/src/main/java/org/sang/controller/ArticleController.java b/blogserver/src/main/java/org/sang/controller/ArticleController.java index 77a489f..ffc767b 100644 --- a/blogserver/src/main/java/org/sang/controller/ArticleController.java +++ b/blogserver/src/main/java/org/sang/controller/ArticleController.java @@ -93,6 +93,14 @@ public class ArticleController { return new RespBean("error", "删除失败!"); } + @RequestMapping(value = "/restore", method = RequestMethod.PUT) + public RespBean restoreArticle(Integer articleId) { + if (articleService.restoreArticle(articleId) == 1) { + return new RespBean("success", "还原成功!"); + } + return new RespBean("error", "还原失败!"); + } + @RequestMapping("/dataStatistics") public Map dataStatistics() { Map map = new HashMap<>(); diff --git a/blogserver/src/main/java/org/sang/mapper/ArticleMapper.java b/blogserver/src/main/java/org/sang/mapper/ArticleMapper.java index 7fd00bb..2f89302 100644 --- a/blogserver/src/main/java/org/sang/mapper/ArticleMapper.java +++ b/blogserver/src/main/java/org/sang/mapper/ArticleMapper.java @@ -23,6 +23,8 @@ public interface ArticleMapper { int updateArticleState(@Param("aids") Long aids[], @Param("state") Integer state); + int updateArticleStateById(@Param("articleId") Integer articleId, @Param("state") Integer state); + int deleteArticleById(@Param("aids") Long[] aids); Article getArticleById(Long aid); diff --git a/blogserver/src/main/java/org/sang/mapper/ArticleMapper.xml b/blogserver/src/main/java/org/sang/mapper/ArticleMapper.xml index d304dd2..9d59427 100644 --- a/blogserver/src/main/java/org/sang/mapper/ArticleMapper.xml +++ b/blogserver/src/main/java/org/sang/mapper/ArticleMapper.xml @@ -65,7 +65,9 @@ #{aid} - + + UPDATE article SET state=#{state} WHERE id = #{articleId} + DELETE FROM article WHERE id IN diff --git a/blogserver/src/main/java/org/sang/service/ArticleService.java b/blogserver/src/main/java/org/sang/service/ArticleService.java index 7842abd..f4809e5 100644 --- a/blogserver/src/main/java/org/sang/service/ArticleService.java +++ b/blogserver/src/main/java/org/sang/service/ArticleService.java @@ -113,6 +113,10 @@ public class ArticleService { } } + public int restoreArticle(Integer articleId) { + return articleMapper.updateArticleStateById(articleId, 1); // 从回收站还原在原处 + } + public Article getArticleById(Long aid) { Article article = articleMapper.getArticleById(aid); articleMapper.pvIncrement(aid); diff --git a/vueblog/src/components/ArticleList.vue b/vueblog/src/components/ArticleList.vue index 304133e..ddf90d3 100644 --- a/vueblog/src/components/ArticleList.vue +++ b/vueblog/src/components/ArticleList.vue @@ -3,19 +3,19 @@ - + - + - + - + - + diff --git a/vueblog/src/components/BlogTable.vue b/vueblog/src/components/BlogTable.vue index 6f42744..c91d2f9 100644 --- a/vueblog/src/components/BlogTable.vue +++ b/vueblog/src/components/BlogTable.vue @@ -57,6 +57,10 @@ size="mini" @click="handleEdit(scope.$index, scope.row)" v-if="showEdit">编辑 + 还原 + { + _this.loading = true; + putRequest('/article/restore', {articleId: row.id}).then(resp=> { + if (resp.status == 200) { + var data = resp.data; + _this.$message({type: data.status, message: data.msg}); + if (data.status == 'success') { + window.bus.$emit('blogTableReload')//通过选项卡都重新加载数据 + } + } else { + _this.$message({type: 'error', message: '还原失败!'}); + } + _this.loading = false; + }); + }).catch(() => { + _this.$message({ + type: 'info', + message: '已取消还原' + }); + }); + }, deleteToDustBin(state){ var _this = this; this.$confirm(state != 2 ? '将该文件放入回收站,是否继续?' : '永久删除该文件, 是否继续?', '提示', { @@ -208,6 +239,6 @@ }); } }, - props: ['state', 'showEdit', 'showDelete', 'activeName'] + props: ['state', 'showEdit', 'showDelete', 'activeName', 'showRestore'] } -- GitLab