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 = '删除';
+ }
}
}