From f56d1c68c7d5d9d06e0c4292a6633392b9bed0bd Mon Sep 17 00:00:00 2001 From: jxxghp Date: Thu, 1 May 2025 19:35:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=AD=98=E5=82=A8=E5=8D=A1?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=EF=BC=8C=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E5=AD=98=E5=82=A8=E9=85=8D=E7=BD=AE=E5=AF=B9=E8=AF=9D?= =?UTF-8?q?=E6=A1=86=EF=BC=8C=E4=BC=98=E5=8C=96=E5=AD=98=E5=82=A8=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E6=98=BE=E7=A4=BA=EF=BC=8C=E5=B9=B6=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E5=9B=BD=E9=99=85=E5=8C=96=E6=96=87=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/images/misc/database.png | Bin 0 -> 12245 bytes src/components/cards/DownloaderCard.vue | 5 +- src/components/cards/StorageCard.vue | 49 ++++++++++++++---- src/locales/en-US.ts | 1 + src/locales/zh-CN.ts | 1 + src/locales/zh-TW.ts | 1 + src/views/setting/AccountSettingDirectory.vue | 17 +++--- 7 files changed, 55 insertions(+), 19 deletions(-) create mode 100644 src/assets/images/misc/database.png diff --git a/src/assets/images/misc/database.png b/src/assets/images/misc/database.png new file mode 100644 index 0000000000000000000000000000000000000000..5d990c5ba1bcfe2c995a4dba5f72e6938b703eba GIT binary patch literal 12245 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 { - - + + @@ -329,7 +329,6 @@ onUnmounted(() => { v-model="downloaderInfo.name" :label="t('downloader.name')" :placeholder="t('downloader.nameRequired')" - :hint="t('downloader.name')" persistent-hint active /> diff --git a/src/components/cards/StorageCard.vue b/src/components/cards/StorageCard.vue index 67473d6f..db5048b4 100644 --- a/src/components/cards/StorageCard.vue +++ b/src/components/cards/StorageCard.vue @@ -6,6 +6,7 @@ import alipan_png from '@images/misc/alipan.webp' import u115_png from '@images/misc/u115.png' import rclone_png from '@images/misc/rclone.png' import alist_png from '@images/misc/alist.svg' +import custom_png from '@images/misc/database.png' import api from '@/api' import AliyunAuthDialog from '../dialog/AliyunAuthDialog.vue' import U115AuthDialog from '../dialog/U115AuthDialog.vue' @@ -14,7 +15,6 @@ import AlistConfigDialog from '../dialog/AlistConfigDialog.vue' import { useToast } from 'vue-toast-notification' import { isNullOrEmptyObject } from '@/@core/utils' import { useI18n } from 'vue-i18n' -import { storageOptions } from '@/api/constants' // 国际化 const { t } = useI18n() @@ -44,6 +44,12 @@ const used = computed(() => { return total.value - available.value }) +// 存储 +const storage_ref = ref(props.storage) + +// 自定义存储名称 +const customName = ref(props.storage.name) + // 阿里云盘认证对话框 const aliyunAuthDialog = ref(false) // 115网盘认证对话框 @@ -52,6 +58,8 @@ const u115AuthDialog = ref(false) const rcloneConfigDialog = ref(false) // AList配置对话框 const aListConfigDialog = ref(false) +// 自定义存储配置对话框 +const customConfigDialog = ref(false) // 打开存储对话框 function openStorageDialog() { @@ -68,6 +76,9 @@ function openStorageDialog() { case 'alist': aListConfigDialog.value = true break + case 'custom': + customConfigDialog.value = true + break default: $toast.info(t('storage.noConfigNeeded')) break @@ -87,6 +98,8 @@ const getIcon = computed(() => { return rclone_png case 'alist': return alist_png + case 'custom': + return custom_png default: return storage_png } @@ -125,12 +138,9 @@ function handleDone() { u115AuthDialog.value = false rcloneConfigDialog.value = false aListConfigDialog.value = false - emit('done') -} - -// 根据存储类型获取文本 -function getStorageTypeText(type: string) { - return storageOptions.find(option => option.value === type)?.title + customConfigDialog.value = false + storage_ref.value.name = customName.value + emit('done', storage_ref.value) } onMounted(() => { @@ -148,7 +158,7 @@ function onClose() {
-
{{ getStorageTypeText(storage.type) }}
+
{{ storage.name }}
- +
@@ -191,5 +201,26 @@ function onClose() { @close="aListConfigDialog = false" @done="handleDone" /> + + + + {{ t('storage.custom') }} + + + + + + + + + + + + + {{ t('common.save') }} + + + +
diff --git a/src/locales/en-US.ts b/src/locales/en-US.ts index b9cd3999..80780399 100644 --- a/src/locales/en-US.ts +++ b/src/locales/en-US.ts @@ -727,6 +727,7 @@ export default { episode: 'Episode {number}', }, storage: { + name: 'Name', usedPercent: '{percent}% Used', noConfigNeeded: 'This storage type does not require configuration, please configure the directory directly!', notConfigured: 'Not Configured', diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index 9741ce05..fbe49f7d 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -724,6 +724,7 @@ export default { episode: '第{number}集', }, storage: { + name: '名称', usedPercent: '已使用 {percent}%', noConfigNeeded: '此存储类型无需配置参数,请直接配置目录!', notConfigured: '未配置', diff --git a/src/locales/zh-TW.ts b/src/locales/zh-TW.ts index 8fa5808b..e1ca397e 100644 --- a/src/locales/zh-TW.ts +++ b/src/locales/zh-TW.ts @@ -725,6 +725,7 @@ export default { episode: '第{number}集', }, storage: { + name: '名稱', usedPercent: '已使用 {percent}%', noConfigNeeded: '此存儲類型無需配置參數,請直接配置目錄!', notConfigured: '未配置', diff --git a/src/views/setting/AccountSettingDirectory.vue b/src/views/setting/AccountSettingDirectory.vue index 74b8bb19..7c5837ed 100644 --- a/src/views/setting/AccountSettingDirectory.vue +++ b/src/views/setting/AccountSettingDirectory.vue @@ -102,11 +102,6 @@ async function saveStorages() { } } -// 修改后生效 -async function updatedStorage() { - await loadStorages() -} - // 查询目录 async function loadDirectories() { try { @@ -177,7 +172,7 @@ async function loadMediaCategories() { // 添加存储 function addStorage() { storages.value.push({ - name: '自定义存储', + name: `${t('storage.custom')} ${storages.value.length + 1}`, type: 'custom', config: {}, }) @@ -191,6 +186,14 @@ function removeStorage(storage: StorageConf) { } } +// 更新存储 +async function updatedStorage(storage: StorageConf) { + const index = storages.value.indexOf(storage) + if (index > -1) { + storages.value[index] = storage + } +} + // 保存设置 async function saveSystemSettings(value: any) { try { @@ -229,7 +232,7 @@ onMounted(() => { :component-data="{ 'class': 'grid gap-3 grid-app-card' }" >