From 52b5fdf3830eb7338213f7de6e9ea64f50261fda Mon Sep 17 00:00:00 2001 From: jxxghp Date: Thu, 29 May 2025 22:37:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B8=85=E7=A9=BA=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E7=A1=AE=E8=AE=A4=E6=8F=90=E7=A4=BA=EF=BC=8C=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E7=BC=93=E5=AD=98=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E7=9A=84=E7=94=A8=E6=88=B7=E4=BD=93=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/locales/en-US.ts | 1 + src/locales/zh-CN.ts | 1 + src/locales/zh-TW.ts | 1 + src/views/reorganize/TransferHistoryView.vue | 1 - src/views/setting/AccountSettingCache.vue | 144 +++++++++++-------- 5 files changed, 89 insertions(+), 59 deletions(-) diff --git a/src/locales/en-US.ts b/src/locales/en-US.ts index fcc38f31..46a2a158 100644 --- a/src/locales/en-US.ts +++ b/src/locales/en-US.ts @@ -1439,6 +1439,7 @@ export default { movie: 'Movie', tv: 'TV Show', }, + clearConfirm: 'Are you sure you want to clear all cache?', }, }, dialog: { diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index a58832c6..550e7238 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -1419,6 +1419,7 @@ export default { movie: '电影', tv: '电视剧', }, + clearConfirm: '确认清空所有缓存吗?', }, }, dialog: { diff --git a/src/locales/zh-TW.ts b/src/locales/zh-TW.ts index d043cd45..34738a3b 100644 --- a/src/locales/zh-TW.ts +++ b/src/locales/zh-TW.ts @@ -1420,6 +1420,7 @@ export default { movie: '電影', tv: '電視劇', }, + clearConfirm: '確認清空所有緩存嗎?', }, }, dialog: { diff --git a/src/views/reorganize/TransferHistoryView.vue b/src/views/reorganize/TransferHistoryView.vue index fd5ef5fc..a9496da9 100644 --- a/src/views/reorganize/TransferHistoryView.vue +++ b/src/views/reorganize/TransferHistoryView.vue @@ -11,7 +11,6 @@ import router from '@/router' import { useDisplay } from 'vuetify' import { formatFileSize } from '@/@core/utils/formatters' import { useI18n } from 'vue-i18n' -import { storageAttributes } from '@/api/constants' // i18n const { t } = useI18n() diff --git a/src/views/setting/AccountSettingCache.vue b/src/views/setting/AccountSettingCache.vue index dc3050bb..ea572518 100644 --- a/src/views/setting/AccountSettingCache.vue +++ b/src/views/setting/AccountSettingCache.vue @@ -4,11 +4,20 @@ import api from '@/api' import type { TorrentCacheData, TorrentCacheItem } from '@/api/types' import { useI18n } from 'vue-i18n' import { useDisplay } from 'vuetify' +import { formatFileSize, formatDateDifference } from '@core/utils/formatters' +import { useConfirm } from '@/composables/useConfirm' // 国际化 const { t } = useI18n() const display = useDisplay() +const appMode = inject('pwaMode') && display.mdAndDown.value + +// 从 provide 中获取全局设置 +const globalSettings: any = inject('globalSettings') + +// 确认框 +const createConfirm = useConfirm() // 提示框 const $toast = useToast() @@ -32,6 +41,12 @@ const currentReidentifyItem = ref(null) const tmdbId = ref() 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)' +}) + // 调用API加载缓存数据 async function loadCacheData() { try { @@ -48,6 +63,13 @@ async function loadCacheData() { // 清空所有缓存 async function clearAllCache() { + const isConfirmed = await createConfirm({ + type: 'warn', + title: t('common.confirm'), + content: t('setting.cache.clearConfirm'), + }) + + if (!isConfirmed) return try { loading.value = true await api.delete('torrent/cache') @@ -163,21 +185,6 @@ async function performReidentify() { } } -// 格式化文件大小 -function formatFileSize(bytes: number): string { - if (bytes === 0) return '0 B' - const k = 1024 - const sizes = ['B', 'KB', 'MB', 'GB', 'TB'] - const i = Math.floor(Math.log(bytes) / Math.log(k)) - return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i] -} - -// 格式化日期 -function formatDate(dateStr: string): string { - if (!dateStr) return '' - return new Date(dateStr).toLocaleString() -} - // 获取媒体类型颜色 function getMediaTypeColor(type: string): string { switch (type) { @@ -246,10 +253,11 @@ onMounted(() => { :loading="loading" item-value="hash" show-select - class="text-no-wrap" + hover :items-per-page-text="t('common.itemsPerPage')" :no-data-text="t('common.noDataText')" :loading-text="t('common.loadingText')" + :style="tableStyle" >