From 572293bb4d1a47e5401cc73fe8391e5dd8acbe17 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Thu, 1 May 2025 19:56:06 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E5=AD=98=E5=82=A8=E9=80=89?= =?UTF-8?q?=E9=A1=B9=EF=BC=8C=E6=9B=B4=E6=96=B0=E4=B8=BA=E5=AD=98=E5=82=A8?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=EF=BC=8C=E4=BC=98=E5=8C=96=E5=AD=98=E5=82=A8?= =?UTF-8?q?=E5=AD=97=E5=85=B8=E5=92=8C=E5=9B=BE=E6=A0=87=E5=AD=97=E5=85=B8?= =?UTF-8?q?=E7=9A=84=E7=94=9F=E6=88=90=E9=80=BB=E8=BE=91=EF=BC=8C=E6=8F=90?= =?UTF-8?q?=E5=8D=87=E7=BB=84=E4=BB=B6=E5=AF=B9=E5=AD=98=E5=82=A8=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E7=9A=84=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/constants.ts | 31 +++++++++---------- src/components/FileBrowser.vue | 13 ++++---- src/components/cards/DirectoryCard.vue | 25 ++++++++++++--- src/components/dialog/ReorganizeDialog.vue | 27 ++++++++++++++-- src/components/workflow/ScanFileAction.vue | 24 +++++++++++++- src/views/reorganize/TransferHistoryView.vue | 31 +++++++++++++++++-- src/views/setting/AccountSettingDirectory.vue | 1 + 7 files changed, 119 insertions(+), 33 deletions(-) diff --git a/src/api/constants.ts b/src/api/constants.ts index 8c458832..a30696ee 100644 --- a/src/api/constants.ts +++ b/src/api/constants.ts @@ -1,49 +1,48 @@ import i18n from '@/plugins/i18n' -export const storageOptions = [ +export const storageAttributes = [ { - title: i18n.global.t('storage.local'), - value: 'local', + type: 'local', icon: 'mdi-folder-multiple-outline', remote: false, }, { - title: i18n.global.t('storage.alipan'), - value: 'alipan', + type: 'alipan', icon: 'mdi-cloud-outline', remote: true, }, { - title: i18n.global.t('storage.u115'), - value: 'u115', + type: 'u115', icon: 'mdi-cloud-outline', remote: true, }, { - title: i18n.global.t('storage.rclone'), - value: 'rclone', + type: 'rclone', icon: 'mdi-server-network-outline', remote: true, }, { - title: i18n.global.t('storage.alist'), - value: 'alist', + type: 'alist', icon: 'mdi-server-network-outline', remote: true, }, { - title: i18n.global.t('storage.custom'), - value: 'custom', - icon: 'mdi-cog-outline', + type: 'custom', + icon: 'mdi-database', remote: true, }, ] -export const storageDict = storageOptions.reduce((dict, item) => { - dict[item.value] = item.title +export const storageIconDict = storageAttributes.reduce((dict, item) => { + dict[item.type] = item.icon return dict }, {} as Record) +export const storageRemoteDict = storageAttributes.reduce((dict, item) => { + dict[item.type] = item.remote + return dict +}, {} as Record) + export const innerFilterRules = [ { title: i18n.global.t('filterRules.specSub'), value: ' SPECSUB ' }, { title: i18n.global.t('filterRules.cnSub'), value: ' CNSUB ' }, diff --git a/src/components/FileBrowser.vue b/src/components/FileBrowser.vue index 33d08810..92f010ea 100644 --- a/src/components/FileBrowser.vue +++ b/src/components/FileBrowser.vue @@ -3,12 +3,8 @@ import FileList from './filebrowser/FileList.vue' import FileToolbar from './filebrowser/FileToolbar.vue' import FileNavigator from './filebrowser/FileNavigator.vue' import type { EndPoints, FileItem, StorageConf } from '@/api/types' -import { storageOptions } from '@/api/constants' import { useDisplay } from 'vuetify' -import { useI18n } from 'vue-i18n' - -// 国际化 -const { t } = useI18n() +import { storageIconDict } from '@/api/constants' // 输入参数 const props = defineProps({ @@ -142,8 +138,11 @@ const showDirTree = ref(false) // 计算属性 const storagesArray = computed(() => { - const storageCodes = props.storages?.map(item => item.type) - return storageOptions.filter(item => storageCodes?.includes(item.value)) + return props.storages?.map(item => ({ + title: item.name, + value: item.type, + icon: storageIconDict[item.type], + })) }) // 方法 diff --git a/src/components/cards/DirectoryCard.vue b/src/components/cards/DirectoryCard.vue index 4ab79967..82829f70 100644 --- a/src/components/cards/DirectoryCard.vue +++ b/src/components/cards/DirectoryCard.vue @@ -1,9 +1,9 @@