feat(settings): AccountSettingDirectory

- 增加防抖。
This commit is contained in:
Aqr-K
2024-10-31 18:22:59 +08:00
parent caf211c34e
commit b5a01a7a42

View File

@@ -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<TransferDirectoryConf[]>([])
@@ -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() {