From 1e5366123c0456fedc2c7c2cf18e46d15db942ed Mon Sep 17 00:00:00 2001 From: jxxghp Date: Mon, 3 Jun 2024 16:35:32 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E8=BF=91=E6=9C=9F=E6=90=9C?= =?UTF-8?q?=E7=B4=A2=E8=AE=B0=E5=BF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- src/views/system/SearchBarView.vue | 72 ++++++++++++++++++++---------- 2 files changed, 50 insertions(+), 24 deletions(-) diff --git a/package.json b/package.json index a6299633..82e409ff 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "moviepilot", - "version": "1.9.3", + "version": "1.9.3-1", "private": true, "bin": "dist/service.js", "scripts": { diff --git a/src/views/system/SearchBarView.vue b/src/views/system/SearchBarView.vue index d8dbd666..78ce0eca 100644 --- a/src/views/system/SearchBarView.vue +++ b/src/views/system/SearchBarView.vue @@ -18,11 +18,34 @@ const router = useRouter() const emit = defineEmits(['close']) // 搜索词 -const searchWord = ref(null) +const searchWord = ref(null) // ref const searchWordInput = ref(null) +// 近期搜索词条 +const recentSearches = ref([]) + +// 保存近期搜索到本地 +function saveRecentSearches(keyword: string) { + if (!keyword) return + if (recentSearches.value.includes(keyword)) return + recentSearches.value.unshift(keyword) + localStorage.setItem('MP_RecentSearches', JSON.stringify(recentSearches.value)) +} + +// 从本地加载近期搜索 +function loadRecentSearches() { + const recentSearchesStr = localStorage.getItem('MP_RecentSearches') + if (recentSearchesStr) { + recentSearches.value = JSON.parse(recentSearchesStr) + // 只保留最近的 5 条 + if (recentSearches.value.length > 5) { + recentSearches.value = recentSearches.value.slice(0, 5) + } + } +} + // 所有菜单功能 function getMenus(): NavMenu[] { let menus: NavMenu[] = [] @@ -143,6 +166,7 @@ const matchedSubscribeItems = computed(() => { function searchMedia(searchType: string) { // 搜索类型 media/person if (!searchWord.value) return + saveRecentSearches(searchWord.value) router.push({ path: '/browse/media/search', query: { @@ -156,6 +180,7 @@ function searchMedia(searchType: string) { // 跳转到种子搜索页面 function searchTorrent() { if (!searchWord.value) return + saveRecentSearches(searchWord.value) router.push({ path: '/resource', query: { @@ -169,10 +194,11 @@ function searchTorrent() { // 跳转到历史记录页面 function searchHistory() { if (!searchWord.value) return + saveRecentSearches(searchWord.value) router.push({ path: '/history', query: { - search: searchWord.value + search: searchWord.value, }, }) emit('close') @@ -222,6 +248,7 @@ onMounted(() => { }, 500) fetchInstalledPlugins() fetchSubscribes() + loadRecentSearches() })