From 5b956e1365c5ffcfd5bba57c2727f7f9a5a9c5cf Mon Sep 17 00:00:00 2001 From: DSQ Date: Sat, 22 Nov 2025 13:05:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=AE=A1=E7=90=86=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E5=88=A0=E9=99=A4=E6=97=B6=E5=88=B7=E6=96=B0=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- elastic/templates/elastic/manage.html | 47 +++++++++++++++++++++------ 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/elastic/templates/elastic/manage.html b/elastic/templates/elastic/manage.html index 5dc0b0e..1c723de 100644 --- a/elastic/templates/elastic/manage.html +++ b/elastic/templates/elastic/manage.html @@ -167,6 +167,9 @@ let currentId = ''; let currentWriter = ''; let currentImage = ''; let allDataCache = []; // 缓存所有数据,避免重复请求 +let currentSearchQuery = ''; // 记录当前搜索查询 +let isFuzzySearch = false; // 记录当前是否为模糊搜索 +let isDeleting = false; // 标记是否正在删除 // 图片缩放相关变量 let currentScale = 1; @@ -186,6 +189,8 @@ async function performSearch(type) { return; } + currentSearchQuery = query; + isFuzzySearch = type === 'fuzzy'; showSearchLoading(); try { @@ -244,6 +249,7 @@ function showSearchMessage(message, type = '') { // 加载所有数据 async function loadAllData() { + currentSearchQuery = ''; showSearchLoading(); try { @@ -282,6 +288,7 @@ function displayAllData(data) { function clearSearch() { searchQueryInput.value = ''; searchResultDiv.style.display = 'none'; + currentSearchQuery = ''; // 如果有缓存数据,显示全部 if (allDataCache.length > 0) { @@ -488,15 +495,9 @@ async function saveEdit(){ alert('保存成功'); closeModal(); // 重新加载数据以显示更新 - if (searchResultDiv.style.display !== 'none') { + if (currentSearchQuery) { // 如果当前显示的是搜索结果,重新执行搜索 - const query = searchQueryInput.value.trim(); - if (query) { - const isFuzzy = document.querySelector('.search-result').textContent.includes('模糊'); - performSearch(isFuzzy ? 'fuzzy' : 'exact'); - } else { - loadAllData(); - } + performSearch(isFuzzySearch ? 'fuzzy' : 'exact'); } else { loadAllData(); } @@ -506,8 +507,20 @@ async function saveEdit(){ } async function doDelete(id){ + if (isDeleting) { + alert('正在处理删除操作,请稍候...'); + return; + } + if(!confirm('确认删除该记录?此操作不可撤销')) return; + isDeleting = true; + const deleteButton = document.querySelector(`button[onclick="doDelete('${id}')"]`); + if (deleteButton) { + deleteButton.disabled = true; + deleteButton.textContent = '删除中...'; + } + try { const response = await fetch(`/elastic/data/${id}/delete/`, { method:'DELETE', @@ -519,10 +532,24 @@ async function doDelete(id){ if(data.status!=='success') throw new Error(data.message || '删除失败'); alert('删除成功'); - // 立即刷新页面以显示最新数据 - location.reload(); + // 清空缓存,确保下次加载获取最新数据 + allDataCache = []; + + // 根据当前显示状态重新加载数据 + if (currentSearchQuery) { + // 如果当前显示的是搜索结果,重新执行搜索 + performSearch(isFuzzySearch ? 'fuzzy' : 'exact'); + } else { + loadAllData(); + } } catch (e) { alert(e.message||'删除失败'); + } finally { + isDeleting = false; + if (deleteButton) { + deleteButton.disabled = false; + deleteButton.textContent = '删除'; + } } }