diff --git a/src/components/dialog/SiteResourceDialog.vue b/src/components/dialog/SiteResourceDialog.vue
index 5df54c08..e543af50 100644
--- a/src/components/dialog/SiteResourceDialog.vue
+++ b/src/components/dialog/SiteResourceDialog.vue
@@ -4,6 +4,7 @@ import type { Site, TorrentInfo, SiteCategory } from '@/api/types'
import { formatFileSize } from '@core/utils/formatters'
import { useDisplay } from 'vuetify'
import AddDownloadDialog from '../dialog/AddDownloadDialog.vue'
+import ProgressiveCardGrid from '@/components/misc/ProgressiveCardGrid.vue'
import { useI18n } from 'vue-i18n'
// 国际化
@@ -94,6 +95,10 @@ const isMobileLayout = computed(() => display.smAndDown.value)
// 移动端分页数据
const mobileResourceList = computed(() => resourceDataList.value)
+function getResourceItemKey(item: TorrentInfo, index: number) {
+ return item.page_url || item.enclosure || `${item.title}-${item.pubdate || ''}-${index}`
+}
+
// 打开种子详情页面
function openTorrentDetail(page_url: string) {
if (!page_url) return
@@ -465,98 +470,115 @@ onMounted(() => {
-
-
+
-
-
+
+
+
+
-
-
- H&R
-
-
- {{ item.freedate_diff }}
-
-
- {{ label }}
-
-
- {{ item.volume_factor }}
-
-
+
+
+ H&R
+
+
+ {{ item.freedate_diff }}
+
+
+ {{ label }}
+
+
+ {{ item.volume_factor }}
+
+
-
-
-
-
- {{ t('actionStep.addDownload') }}
-
-
-
- {{ t('common.viewDetails') }}
-
-
- {{ t('dialog.siteResource.downloadTorrent') }}
-
-
-
-
-
+
+
+
+ {{ t('actionStep.addDownload') }}
+
+
+
+ {{ t('common.viewDetails') }}
+
+
+ {{ t('dialog.siteResource.downloadTorrent') }}
+
+
+
+
+
+
+
@@ -669,6 +691,15 @@ onMounted(() => {
flex: 0 0 auto;
}
+.site-resource-mobile {
+ overflow-y: auto;
+ block-size: 100%;
+}
+
+.site-resource-mobile__list {
+ min-block-size: 100%;
+}
+
.v-table th {
white-space: nowrap;
}
diff --git a/src/components/misc/ProgressiveCardGrid.vue b/src/components/misc/ProgressiveCardGrid.vue
index 45d3b477..4a7e2004 100644
--- a/src/components/misc/ProgressiveCardGrid.vue
+++ b/src/components/misc/ProgressiveCardGrid.vue
@@ -1,5 +1,8 @@