diff --git a/src/locales/en-US.ts b/src/locales/en-US.ts index 46a2a158..e39b707a 100644 --- a/src/locales/en-US.ts +++ b/src/locales/en-US.ts @@ -1395,9 +1395,11 @@ export default { settingsSaveFailed: 'Failed to save subscription basic settings!', }, cache: { - title: 'Cache', - description: 'Site cache and media recognition data cache management', - subtitle: 'Manage cached site resources', + title: 'Cache Management', + subtitle: 'Manage torrent cache data', + filterByTitle: 'Filter by Title', + filterBySite: 'Filter by Site', + selectSite: 'Select Site', refresh: 'Refresh Cache', deleteSelected: 'Delete Selected', clearAll: 'Clear All Cache', diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index 550e7238..ce82d0ef 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -1375,9 +1375,11 @@ export default { settingsSaveFailed: '订阅基础设置保存失败!', }, cache: { - title: '缓存', - description: '种子缓存、图片文件缓存管理', + title: '缓存管理', subtitle: '管理缓存的站点资源', + filterByTitle: '按标题筛选', + filterBySite: '按站点筛选', + selectSite: '选择站点', refresh: '刷新缓存', deleteSelected: '删除选中', clearAll: '清空缓存', diff --git a/src/locales/zh-TW.ts b/src/locales/zh-TW.ts index 34738a3b..07eb3542 100644 --- a/src/locales/zh-TW.ts +++ b/src/locales/zh-TW.ts @@ -1379,6 +1379,9 @@ export default { title: '緩存', description: '種子緩存、圖片文件緩存管理', subtitle: '管理緩存的站點資源', + filterByTitle: '按標題篩選', + filterBySite: '按站點篩選', + selectSite: '選擇站點', refresh: '刷新緩存', deleteSelected: '刪除選中', clearAll: '清空緩存', diff --git a/src/views/setting/AccountSettingCache.vue b/src/views/setting/AccountSettingCache.vue index ea572518..afa47fb6 100644 --- a/src/views/setting/AccountSettingCache.vue +++ b/src/views/setting/AccountSettingCache.vue @@ -29,6 +29,30 @@ const cacheData = ref({ data: [], }) +// 筛选条件 +const titleFilter = ref('') +const siteFilter = ref('') + +// 获取所有站点选项 +const siteOptions = computed(() => { + const sites = new Set() + cacheData.value.data.forEach(item => { + if (item.site_name) { + sites.add(item.site_name) + } + }) + return Array.from(sites).sort() +}) + +// 筛选后的数据 +const filteredData = computed(() => { + return cacheData.value.data.filter(item => { + const titleMatch = item.title.toLowerCase().includes(titleFilter.value.toLowerCase()) + const siteMatch = !siteFilter.value || item.site_name === siteFilter.value + return titleMatch && siteMatch + }) +}) + // 选中的缓存项 const selectedItems = ref([]) @@ -43,8 +67,8 @@ const doubanId = ref() const tableStyle = computed(() => { return appMode - ? 'height: calc(100vh - 17rem - env(safe-area-inset-bottom) - 6.5rem)' - : 'height: calc(100vh - 17rem - env(safe-area-inset-bottom)' + ? 'height: calc(100vh - 20rem - env(safe-area-inset-bottom) - 6.5rem)' + : 'height: calc(100vh - 20rem - env(safe-area-inset-bottom)' }) // 调用API加载缓存数据 @@ -197,6 +221,11 @@ function getMediaTypeColor(type: string): string { } } +// 打开详情页面 +function openPageUrl(url: string) { + window.open(url, '_blank') +} + onMounted(() => { loadCacheData() }) @@ -236,6 +265,32 @@ onMounted(() => { + + + + + + + + + + + + { { title: t('setting.cache.recognitionResult'), key: 'media_info', sortable: false, width: '200px' }, { title: t('setting.cache.actions'), key: 'actions', sortable: false, width: '150px' }, ]" - :items="cacheData.data" + :items="filteredData" :loading="loading" item-value="hash" show-select @@ -345,7 +400,7 @@ onMounted(() => { size="small" color="info" variant="text" - :href="item.page_url" + @click="openPageUrl(item.page_url || '')" target="_blank" > mdi-open-in-new