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() })