diff --git a/src/views/setting/AccountSettingDirectory.vue b/src/views/setting/AccountSettingDirectory.vue index 0e9c06c5..997e0414 100644 --- a/src/views/setting/AccountSettingDirectory.vue +++ b/src/views/setting/AccountSettingDirectory.vue @@ -7,6 +7,10 @@ import api from '@/api' import { TransferDirectoryConf, StorageConf } from '@/api/types' import DirectoryCard from '@/components/cards/DirectoryCard.vue' import StorageCard from '@/components/cards/StorageCard.vue' +import debounce from 'lodash/debounce' + +// 防抖时间 +const debounceTime = 500 // 所有下载目录 const directories = ref([]) @@ -51,7 +55,7 @@ async function loadStorages() { } // 保存存储 -async function saveStorages() { +const saveStorages = debounce(async () => { try { const result: { [key: string]: any } = await api.post('system/setting/Storages', storages.value) if (result.success) $toast.success('存储设置保存成功') @@ -59,11 +63,11 @@ async function saveStorages() { } catch (error) { console.log(error) } -} +}, debounceTime) // 修改后生效 async function updatedStorage() { - loadStorages() + await loadStorages() } // 查询目录 @@ -77,7 +81,7 @@ async function loadDirectories() { } // 保存目录 -async function saveDirectories() { +const saveDirectories = debounce(async () => { orderDirectoryCards() try { const names = directories.value.map(item => item.name) @@ -93,10 +97,10 @@ async function saveDirectories() { } catch (error) { console.log(error) } -} +}, debounceTime) // 添加媒体库目录 -function addDirectory() { +const addDirectory = debounce(() => { let name = `目录${directories.value.length + 1}` while (directories.value.some(item => item.name === name)) { name = `目录${parseInt(name.split('目录')[1]) + 1}` @@ -111,15 +115,15 @@ function addDirectory() { media_category: '', }) orderDirectoryCards() -} +}, debounceTime) // 移除媒体库目录 -function removeDirectory(directory: TransferDirectoryConf) { +const removeDirectory = debounce((directory: TransferDirectoryConf) => { const index = directories.value.indexOf(directory) if (index > -1) { directories.value.splice(index, 1) } -} +}, debounceTime) // 调用API查询自动分类配置 async function loadMediaCategories() {