diff --git a/src/locales/en-US.ts b/src/locales/en-US.ts
index 4fa9a292..b9abf5c9 100644
--- a/src/locales/en-US.ts
+++ b/src/locales/en-US.ts
@@ -998,6 +998,7 @@ export default {
aiRecommend: 'AI Recommendation',
reRecommend: 'Regenerate Recommendation',
aiRecommendError: 'AI Recommendation Failed',
+ refreshSearch: 'Re-search',
},
browse: {
actor: 'Actor',
diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts
index 68de3843..aa35c1c4 100644
--- a/src/locales/zh-CN.ts
+++ b/src/locales/zh-CN.ts
@@ -993,6 +993,7 @@ export default {
aiRecommend: '智能推荐',
reRecommend: '重新生成推荐',
aiRecommendError: '智能推荐失败',
+ refreshSearch: '重新搜索',
},
browse: {
actor: '演员',
diff --git a/src/locales/zh-TW.ts b/src/locales/zh-TW.ts
index 9e592a2e..c5a98532 100644
--- a/src/locales/zh-TW.ts
+++ b/src/locales/zh-TW.ts
@@ -994,6 +994,7 @@ export default {
aiRecommend: '智能推薦',
reRecommend: '重新生成推薦',
aiRecommendError: '智能推薦失敗',
+ refreshSearch: '重新搜尋',
},
browse: {
actor: '演員',
diff --git a/src/pages/resource.vue b/src/pages/resource.vue
index 31c32b18..5f29a21e 100644
--- a/src/pages/resource.vue
+++ b/src/pages/resource.vue
@@ -95,6 +95,9 @@ const cardScroll = useInfiniteScroll(filteredCardDataList)
// 是否刷新过
const isRefreshed = ref(false)
+// 是否正在重新搜索
+const isRefreshing = ref(false)
+
// 加载进度文本
const progressText = ref(t('common.pleaseWait'))
@@ -464,6 +467,23 @@ async function fetchData() {
}
}
+// 重新搜索(使用相同参数重新触发搜索)
+async function refreshSearch() {
+ if (isRefreshing.value || progressActive.value) return
+ isRefreshing.value = true
+ try {
+ // 如正在显示AI推荐结果,先切回原始结果,确保状态干净
+ if (showingAiResults.value) {
+ await switchToOriginalResults()
+ }
+ await fetchData()
+ } catch (error) {
+ console.error('重新搜索失败:', error)
+ } finally {
+ isRefreshing.value = false
+ }
+}
+
// 切换到智能推荐结果(自动保存筛选条件)
async function switchToAiResults() {
if (showingAiResults.value) {
@@ -833,6 +853,22 @@ onUnmounted(() => {