From 0c6e76dbbd4fb42e03cb49bb7dd3921e253d1860 Mon Sep 17 00:00:00 2001 From: wangys <3401275564@qq.com> Date: Thu, 18 Dec 2025 13:24:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/SensitiveWordInitializer.java | 8 +++-- .../study/controller/CourseController.java | 2 +- .../manage/resource/ArticleManagementView.vue | 31 ++++++++++++++++--- 3 files changed, 33 insertions(+), 8 deletions(-) diff --git a/schoolNewsServ/sensitive/src/main/java/org/xyzh/sensitive/config/SensitiveWordInitializer.java b/schoolNewsServ/sensitive/src/main/java/org/xyzh/sensitive/config/SensitiveWordInitializer.java index 24b51b0..add5fb0 100644 --- a/schoolNewsServ/sensitive/src/main/java/org/xyzh/sensitive/config/SensitiveWordInitializer.java +++ b/schoolNewsServ/sensitive/src/main/java/org/xyzh/sensitive/config/SensitiveWordInitializer.java @@ -39,7 +39,11 @@ public class SensitiveWordInitializer implements CommandLineRunner{ denySet.add(item.getWord()); } }); - redisService.sAdd(SensitiveRedisContants.SENSITIVE_WORD_ALLOW, allowSet); - redisService.sAdd(SensitiveRedisContants.SENSITIVE_WORD_DENY, denySet); + if (!allowSet.isEmpty()) { + redisService.sAdd(SensitiveRedisContants.SENSITIVE_WORD_ALLOW, allowSet.toArray()); + } + if (!denySet.isEmpty()) { + redisService.sAdd(SensitiveRedisContants.SENSITIVE_WORD_DENY, denySet.toArray()); + } } } diff --git a/schoolNewsServ/study/src/main/java/org/xyzh/study/controller/CourseController.java b/schoolNewsServ/study/src/main/java/org/xyzh/study/controller/CourseController.java index 5c65d02..df9dcfb 100644 --- a/schoolNewsServ/study/src/main/java/org/xyzh/study/controller/CourseController.java +++ b/schoolNewsServ/study/src/main/java/org/xyzh/study/controller/CourseController.java @@ -81,7 +81,7 @@ public class CourseController { /** * 删除课程 */ - @DeleteMapping("/course") + @DeleteMapping("/{courseID}") public ResultDomain deleteCourse(@PathVariable("courseID") String courseID) { return courseService.deleteCourse(courseID); } diff --git a/schoolNewsWeb/src/views/admin/manage/resource/ArticleManagementView.vue b/schoolNewsWeb/src/views/admin/manage/resource/ArticleManagementView.vue index 8a01673..c5496e7 100644 --- a/schoolNewsWeb/src/views/admin/manage/resource/ArticleManagementView.vue +++ b/schoolNewsWeb/src/views/admin/manage/resource/ArticleManagementView.vue @@ -39,7 +39,7 @@ {{ getActionButtonText(row.status) }} 编辑 - 删除 + 删除 @@ -77,7 +77,7 @@ defineOptions({ name: 'ArticleManagementView' }); import { ref, onMounted } from 'vue'; -import { ElButton, ElInput, ElTable, ElTableColumn, ElTag, ElPagination, ElMessage } from 'element-plus'; +import { ElButton, ElInput, ElTable, ElTableColumn, ElTag, ElPagination, ElMessage, ElMessageBox } from 'element-plus'; import { useRouter } from 'vue-router'; import { resourceApi, resourceTagApi } from '@/apis/resource' import type { PageParam, ResourceSearchParams, Resource, Tag } from '@/types'; @@ -200,9 +200,30 @@ function handleEditFromView() { } } -function deleteArticle() { - // TODO: 删除文章 - ElMessage.info('删除功能开发中'); +async function deleteArticle(row: Resource) { + try { + await ElMessageBox.confirm( + `确定要删除文章「${row.title}」吗?`, + '删除确认', + { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + } + ); + const res = await resourceApi.deleteResource(row.resourceID!); + if (res.success) { + ElMessage.success('删除成功'); + loadArticles(); + } else { + ElMessage.error(res.message || '删除失败'); + } + } catch (error) { + if (error !== 'cancel') { + console.error('删除失败:', error); + ElMessage.error('删除失败'); + } + } } function getStatusType(status: number) {