From dc9fda8d865dfebb6b951d18dd2c4b3595f55efc Mon Sep 17 00:00:00 2001 From: jxxghp Date: Thu, 14 Nov 2024 12:56:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20AList=20=E5=AD=98?= =?UTF-8?q?=E5=82=A8=E9=80=89=E9=A1=B9=E5=8F=8A=E9=85=8D=E7=BD=AE=E5=AF=B9?= =?UTF-8?q?=E8=AF=9D=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/constants.ts | 4 ++ src/assets/images/misc/alist.svg | 10 ++++ src/components/cards/StorageCard.vue | 17 ++++++ src/components/dialog/AlistConfigDialog.vue | 60 +++++++++++++++++++++ 4 files changed, 91 insertions(+) create mode 100644 src/assets/images/misc/alist.svg create mode 100644 src/components/dialog/AlistConfigDialog.vue diff --git a/src/api/constants.ts b/src/api/constants.ts index 1b51bf7f..06d7fb1f 100644 --- a/src/api/constants.ts +++ b/src/api/constants.ts @@ -15,6 +15,10 @@ export const storageOptions = [ title: 'Rclone网盘', value: 'rclone', }, + { + title: 'AList', + value: 'alist', + }, ] export const innerFilterRules = [ diff --git a/src/assets/images/misc/alist.svg b/src/assets/images/misc/alist.svg new file mode 100644 index 00000000..37d5fdcd --- /dev/null +++ b/src/assets/images/misc/alist.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/components/cards/StorageCard.vue b/src/components/cards/StorageCard.vue index fefbe3df..7d060224 100644 --- a/src/components/cards/StorageCard.vue +++ b/src/components/cards/StorageCard.vue @@ -5,10 +5,12 @@ import storage_png from '@images/misc/storage.png' 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 api from '@/api' import AliyunAuthDialog from '../dialog/AliyunAuthDialog.vue' import U115AuthDialog from '../dialog/U115AuthDialog.vue' import RcloneConfigDialog from '../dialog/RcloneConfigDialog.vue' +import AlistConfigDialog from '../dialog/AlistConfigDialog.vue' import { useToast } from 'vue-toast-notification' // 定义输入 @@ -42,6 +44,8 @@ const aliyunAuthDialog = ref(false) const u115AuthDialog = ref(false) // Rclone配置对话框 const rcloneConfigDialog = ref(false) +// AList配置对话框 +const aListConfigDialog = ref(false) // 打开存储对话框 function openStorageDialog() { @@ -55,6 +59,9 @@ function openStorageDialog() { case 'rclone': rcloneConfigDialog.value = true break + case 'alist': + aListConfigDialog.value = true + break default: $toast.info('此存储类型无需配置参数,请直接配置目录!') break @@ -72,6 +79,8 @@ const getIcon = computed(() => { return u115_png case 'rclone': return rclone_png + case 'alist': + return alist_png default: return storage_png } @@ -109,6 +118,7 @@ function handleDone() { aliyunAuthDialog.value = false u115AuthDialog.value = false rcloneConfigDialog.value = false + aListConfigDialog.value = false emit('done') } @@ -144,4 +154,11 @@ onMounted(() => { @close="rcloneConfigDialog = false" @done="handleDone" /> + diff --git a/src/components/dialog/AlistConfigDialog.vue b/src/components/dialog/AlistConfigDialog.vue new file mode 100644 index 00000000..60890c08 --- /dev/null +++ b/src/components/dialog/AlistConfigDialog.vue @@ -0,0 +1,60 @@ + + +