From 874a400803385d35054f07a60ae2b088c6ffad97 Mon Sep 17 00:00:00 2001 From: heshunme Date: Fri, 5 Jul 2024 06:20:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/news-management/NewsList.vue | 35 +++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/src/views/news-management/NewsList.vue b/src/views/news-management/NewsList.vue index 8275f61..5a21d07 100644 --- a/src/views/news-management/NewsList.vue +++ b/src/views/news-management/NewsList.vue @@ -40,7 +40,13 @@ const selections = ref([]); const editNewsDialogVisible = ref(false); const editNewsDialogMode = ref('create'); const editId = ref(""); + +const searchMode = ref(false); const loadNews = async () => { + if (searchMode.value) { + newsData.value = allNewsData.value.slice((currentPage.value - 1) * pageSize.value, currentPage.value * pageSize.value); + return; + } if (firstTimeLoad.value || allNewsData.value.length < (currentPage.value * pageSize) && (currentPage.value * pageSize) <= newsCount) { // console.error(allNewsData.value.length, currentPage.value, pageSize.value, newsCount.value) let params = { @@ -69,16 +75,39 @@ onMounted(() => { }) -const handleSearch = () => { - // 搜索逻辑 +const handleSearch = async () => { + const params = { + token: token, + title: searchTitle.value, + author: searchAuthor.value, + summary: searchSummary.value, + imagePath: searchPath.value + } + + try { + const response = await axios.post('/api/news/search', params); + const data = response.data; + allNewsData.value = data.newsList; + newsCount.value = data.newsCount; + newsData.value = allNewsData.value.slice((currentPage.value - 1) * pageSize.value, currentPage.value * pageSize.value); + searchMode.value = true; + ElMessage.success('搜索成功'); + } catch (e) { + ElMessage.error('搜索失败'); + console.error(e); + } }; -const handleReset = () => { + +const handleReset = async () => { searchTitle.value = ''; searchPath.value = ''; searchAuthor.value = ''; searchSummary.value = ''; sortOrder.value = ''; + + searchMode.value = false; + await refreshNewsList(); }; const handleCreateButton = () => {