diff --git a/src/assets/images/misc/alipan.webp b/src/assets/images/misc/alipan.webp new file mode 100644 index 00000000..d320df21 Binary files /dev/null and b/src/assets/images/misc/alipan.webp differ diff --git a/src/assets/images/misc/u115.png b/src/assets/images/misc/u115.png new file mode 100644 index 00000000..682ac17d Binary files /dev/null and b/src/assets/images/misc/u115.png differ diff --git a/src/components/cards/StorageCard.vue b/src/components/cards/StorageCard.vue index f58e603e..d8bd47d3 100644 --- a/src/components/cards/StorageCard.vue +++ b/src/components/cards/StorageCard.vue @@ -2,9 +2,11 @@ import { StorageConf } from '@/api/types' import { formatBytes } from '@core/utils/formatters' import storage_png from '@images/misc/storage.png' +import alipan_png from '@images/misc/alipan.webp' +import u115_png from '@images/misc/u115.png' // 定义输入 -defineProps({ +const props = defineProps({ storage: { type: Object as PropType, required: true, @@ -17,30 +19,36 @@ const total = ref(0) // 存储可用空间 const available = ref(0) +// 根据存储类型选择图标 +const getIcon = computed(() => { + switch (props.storage.type) { + case 'local': + return storage_png + case 'alipan': + return alipan_png + case 'u115': + return u115_png + default: + return storage_png + } +}) + // 计算存储使用率 const usage = computed(() => { return Math.round((available.value / (total.value || 1)) * 1000) / 10 }) diff --git a/src/views/setting/AccountSettingDirectory.vue b/src/views/setting/AccountSettingDirectory.vue index 8d205e4d..4ae22797 100644 --- a/src/views/setting/AccountSettingDirectory.vue +++ b/src/views/setting/AccountSettingDirectory.vue @@ -6,6 +6,7 @@ import { VRow } from 'vuetify/lib/components/index.mjs' import api from '@/api' import { TransferDirectoryConf, StorageConf } from '@/api/types' import DirectoryCard from '@/components/cards/DirectoryCard.vue' +import StorageCard from '@/components/cards/StorageCard.vue' // 所有下载目录 const directories = ref([]) @@ -28,12 +29,26 @@ function orderDirectoryCards() { } // 查询存储 -async function loadStorages() {} +async function loadStorages() { + try { + const result: { [key: string]: any } = await api.get('system/setting/Storages') + + storages.value = result.data?.value ?? [] + } catch (error) { + console.log(error) + } +} // 保存存储 -async function saveStorages() {} -// 添加存储 -function addStorage() {} +async function saveStorages() { + try { + const result: { [key: string]: any } = await api.post('system/setting/Storages', storages.value) + if (result.success) $toast.success('存储设置保存成功') + else $toast.error('存储设置保存失败!') + } catch (error) { + console.log(error) + } +} // 查询目录 async function loadDirectories() {} @@ -69,7 +84,7 @@ onMounted(() => { 存储 - 设置本地或网盘存储参数。 + 设置本地或网盘存储。 { :component-data="{ 'class': 'grid gap-3 grid-app-card' }" > 保存 - - -