feat 搜索框记忆

This commit is contained in:
jxxghp
2024-04-29 14:51:00 +08:00
parent 7c22c60190
commit 56692eb6cb
2 changed files with 11 additions and 6 deletions
+9 -3
View File
@@ -14,10 +14,13 @@ const searchWordInput = ref<HTMLElement | null>(null)
// 当前的搜索类型 media/person // 当前的搜索类型 media/person
const searchType = ref('media') const searchType = ref('media')
// 搜索提示词列表
const searchHintList = ref<string[]>([])
// Search // Search
function search() { function search() {
if (!searchWord.value) return if (!searchWord.value) return
if (!searchHintList.value.includes(searchWord.value)) searchHintList.value.push(searchWord.value)
searchDialog.value = false searchDialog.value = false
router.push({ router.push({
path: '/browse/media/search', path: '/browse/media/search',
@@ -51,13 +54,15 @@ function openSearchDialog() {
<VCardText> <VCardText>
<VRow> <VRow>
<VCol cols="12"> <VCol cols="12">
<VTextField <VCombobox
ref="searchWordInput" ref="searchWordInput"
v-model="searchWord" v-model="searchWord"
:items="searchHintList"
:prepend-inner-icon="searchType == 'person' ? 'mdi-account' : 'mdi-movie'" :prepend-inner-icon="searchType == 'person' ? 'mdi-account' : 'mdi-movie'"
:label="searchType == 'person' ? '搜索演员' : '搜索电影、电视剧'" :label="searchType == 'person' ? '搜索演员' : '搜索电影、电视剧'"
@keydown.enter="search" @keydown.enter="search"
@click:prepend-inner="switchSearchType" @click:prepend-inner="switchSearchType"
clearable
/> />
</VCol> </VCol>
</VRow> </VRow>
@@ -76,9 +81,10 @@ function openSearchDialog() {
</IconBtn> </IconBtn>
<!-- 👉 Search Textfield --> <!-- 👉 Search Textfield -->
<span class="w-1/5"> <span class="w-1/5">
<VTextField <VCombobox
key="search_navbar" key="search_navbar"
v-model="searchWord" v-model="searchWord"
:items="searchHintList"
class="d-none d-lg-block text-disabled search-box" class="d-none d-lg-block text-disabled search-box"
density="compact" density="compact"
variant="solo" variant="solo"
+2 -3
View File
@@ -35,11 +35,10 @@ const tabs = [
] ]
// 当前排序字段 // 当前排序字段
const activeSort = ref('') const activeSort = ref(null)
// 排序选项 // 排序选项
const sortOptions = [ const sortOptions = [
{ title: '默认', value: '' },
{ title: '热门', value: 'count' }, { title: '热门', value: 'count' },
{ title: '插件名称', value: 'plugin_name' }, { title: '插件名称', value: 'plugin_name' },
{ title: '作者', value: 'plugin_author' }, { title: '作者', value: 'plugin_author' },
@@ -299,7 +298,7 @@ const sortedUninstalledList = computed(() => {
}) })
} else if (activeSort.value) { } else if (activeSort.value) {
return ret_list.sort((a: any, b: any) => { return ret_list.sort((a: any, b: any) => {
return a[activeSort.value] > b[activeSort.value] ? 1 : -1 return a[activeSort.value ?? ''] > b[activeSort.value ?? ''] ? 1 : -1
}) })
} }
}) })