mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-09-08 01:06:41 +08:00
fix 资源筛选
This commit is contained in:
@@ -79,6 +79,11 @@ const groupedDataList = ref<Map<string, Context[]>>()
|
|||||||
const filterMenuOpen = ref(false)
|
const filterMenuOpen = ref(false)
|
||||||
const currentFilter = ref('site')
|
const currentFilter = ref('site')
|
||||||
|
|
||||||
|
const currentFilterTitle = computed(() => filterTitles[currentFilter.value])
|
||||||
|
const currentFilterOptions = computed(() => {
|
||||||
|
return filterOptions[currentFilter.value]
|
||||||
|
})
|
||||||
|
|
||||||
// 添加全部筛选菜单相关
|
// 添加全部筛选菜单相关
|
||||||
const allFilterMenuOpen = ref(false)
|
const allFilterMenuOpen = ref(false)
|
||||||
|
|
||||||
@@ -522,7 +527,23 @@ function loadMore({ done }: { done: any }) {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 筛选图标按钮区域 -->
|
<!-- 筛选图标按钮区域 -->
|
||||||
<div class="filter-buttons-grid w-100">
|
<div class="filter-buttons-grid w-100 mt-2">
|
||||||
|
<!-- 全部筛选按钮 -->
|
||||||
|
<VBtn variant="text" color="primary" class="filter-btn-mobile" @click="toggleAllFilterMenu">
|
||||||
|
<VIcon icon="mdi-filter-variant" class="filter-icon me-1"></VIcon>
|
||||||
|
<span class="filter-label">
|
||||||
|
{{ t('torrent.allFilters') }}
|
||||||
|
</span>
|
||||||
|
<VBadge
|
||||||
|
v-if="getFilterCount > 0"
|
||||||
|
:content="getFilterCount"
|
||||||
|
color="primary"
|
||||||
|
location="top end"
|
||||||
|
offset-x="-10"
|
||||||
|
offset-y="-10"
|
||||||
|
></VBadge>
|
||||||
|
</VBtn>
|
||||||
|
|
||||||
<VBtn
|
<VBtn
|
||||||
v-for="(title, key) in filterTitles"
|
v-for="(title, key) in filterTitles"
|
||||||
v-show="filterOptions[key].length > 0"
|
v-show="filterOptions[key].length > 0"
|
||||||
@@ -550,7 +571,7 @@ function loadMore({ done }: { done: any }) {
|
|||||||
</VCard>
|
</VCard>
|
||||||
|
|
||||||
<!-- 全部筛选弹窗 -->
|
<!-- 全部筛选弹窗 -->
|
||||||
<VDialog v-model="allFilterMenuOpen" max-width="50rem" location="center" scrollable>
|
<VDialog v-model="allFilterMenuOpen" max-width="50rem" max-height="90%" location="center" scrollable>
|
||||||
<VCard>
|
<VCard>
|
||||||
<VDialogCloseBtn @click="allFilterMenuOpen = false" />
|
<VDialogCloseBtn @click="allFilterMenuOpen = false" />
|
||||||
<VCardTitle class="py-3 d-flex align-center">
|
<VCardTitle class="py-3 d-flex align-center">
|
||||||
@@ -619,6 +640,51 @@ function loadMore({ done }: { done: any }) {
|
|||||||
</VCard>
|
</VCard>
|
||||||
</VDialog>
|
</VDialog>
|
||||||
|
|
||||||
|
<!-- 筛选弹窗 -->
|
||||||
|
<VDialog v-model="filterMenuOpen" max-width="25rem" max-height="80%" location="center">
|
||||||
|
<VCard>
|
||||||
|
<VCardTitle class="py-3 d-flex align-center">
|
||||||
|
<VIcon :icon="getFilterIcon(currentFilter)" class="me-2"></VIcon>
|
||||||
|
<span>{{ currentFilterTitle }}</span>
|
||||||
|
<VSpacer />
|
||||||
|
<VBtn
|
||||||
|
v-if="filterForm[currentFilter].length > 0"
|
||||||
|
variant="text"
|
||||||
|
size="small"
|
||||||
|
color="error"
|
||||||
|
@click="clearFilter(currentFilter)"
|
||||||
|
>
|
||||||
|
{{ t('torrent.clear') }}
|
||||||
|
</VBtn>
|
||||||
|
<VBtn variant="text" size="small" color="primary" @click="selectAll(currentFilter)">
|
||||||
|
{{ t('torrent.selectAll') }}
|
||||||
|
</VBtn>
|
||||||
|
</VCardTitle>
|
||||||
|
<VDivider />
|
||||||
|
<VCardText>
|
||||||
|
<VChipGroup v-model="filterForm[currentFilter]" column multiple class="filter-options">
|
||||||
|
<VChip
|
||||||
|
v-for="option in currentFilterOptions"
|
||||||
|
:key="option"
|
||||||
|
:value="option"
|
||||||
|
filter
|
||||||
|
variant="elevated"
|
||||||
|
class="ma-1 filter-chip"
|
||||||
|
size="small"
|
||||||
|
>
|
||||||
|
{{ option }}
|
||||||
|
</VChip>
|
||||||
|
</VChipGroup>
|
||||||
|
</VCardText>
|
||||||
|
<VCardActions>
|
||||||
|
<VSpacer />
|
||||||
|
<VBtn variant="elevated" color="primary" @click="filterMenuOpen = false">
|
||||||
|
{{ t('torrent.confirm') }}
|
||||||
|
</VBtn>
|
||||||
|
</VCardActions>
|
||||||
|
</VCard>
|
||||||
|
</VDialog>
|
||||||
|
|
||||||
<!-- 资源列表 -->
|
<!-- 资源列表 -->
|
||||||
<VInfiniteScroll mode="intersect" side="end" :items="displayDataList" class="overflow-visible" @load="loadMore">
|
<VInfiniteScroll mode="intersect" side="end" :items="displayDataList" class="overflow-visible" @load="loadMore">
|
||||||
<template #loading />
|
<template #loading />
|
||||||
|
|||||||
@@ -549,7 +549,7 @@ onMounted(() => {
|
|||||||
</VCard>
|
</VCard>
|
||||||
|
|
||||||
<!-- 全部筛选弹窗 -->
|
<!-- 全部筛选弹窗 -->
|
||||||
<VDialog v-model="allFilterMenuOpen" max-width="50rem" location="center" scrollable>
|
<VDialog v-model="allFilterMenuOpen" max-width="50rem" max-height="90%" location="center" scrollable>
|
||||||
<VCard>
|
<VCard>
|
||||||
<VDialogCloseBtn @click="allFilterMenuOpen = false" />
|
<VDialogCloseBtn @click="allFilterMenuOpen = false" />
|
||||||
<VCardTitle class="py-3 d-flex align-center">
|
<VCardTitle class="py-3 d-flex align-center">
|
||||||
|
|||||||
Reference in New Issue
Block a user