feat(settings): AccountSettingDirectory

- 增加防抖。
This commit is contained in:
Aqr-K
2024-10-31 18:22:59 +08:00
parent caf211c34e
commit b5a01a7a42
+13 -9
View File
@@ -7,6 +7,10 @@ import api from '@/api'
import { TransferDirectoryConf, StorageConf } from '@/api/types' import { TransferDirectoryConf, StorageConf } from '@/api/types'
import DirectoryCard from '@/components/cards/DirectoryCard.vue' import DirectoryCard from '@/components/cards/DirectoryCard.vue'
import StorageCard from '@/components/cards/StorageCard.vue' import StorageCard from '@/components/cards/StorageCard.vue'
import debounce from 'lodash/debounce'
// 防抖时间
const debounceTime = 500
// 所有下载目录 // 所有下载目录
const directories = ref<TransferDirectoryConf[]>([]) const directories = ref<TransferDirectoryConf[]>([])
@@ -51,7 +55,7 @@ async function loadStorages() {
} }
// 保存存储 // 保存存储
async function saveStorages() { const saveStorages = debounce(async () => {
try { try {
const result: { [key: string]: any } = await api.post('system/setting/Storages', storages.value) const result: { [key: string]: any } = await api.post('system/setting/Storages', storages.value)
if (result.success) $toast.success('存储设置保存成功') if (result.success) $toast.success('存储设置保存成功')
@@ -59,11 +63,11 @@ async function saveStorages() {
} catch (error) { } catch (error) {
console.log(error) console.log(error)
} }
} }, debounceTime)
// 修改后生效 // 修改后生效
async function updatedStorage() { async function updatedStorage() {
loadStorages() await loadStorages()
} }
// 查询目录 // 查询目录
@@ -77,7 +81,7 @@ async function loadDirectories() {
} }
// 保存目录 // 保存目录
async function saveDirectories() { const saveDirectories = debounce(async () => {
orderDirectoryCards() orderDirectoryCards()
try { try {
const names = directories.value.map(item => item.name) const names = directories.value.map(item => item.name)
@@ -93,10 +97,10 @@ async function saveDirectories() {
} catch (error) { } catch (error) {
console.log(error) console.log(error)
} }
} }, debounceTime)
// 添加媒体库目录 // 添加媒体库目录
function addDirectory() { const addDirectory = debounce(() => {
let name = `目录${directories.value.length + 1}` let name = `目录${directories.value.length + 1}`
while (directories.value.some(item => item.name === name)) { while (directories.value.some(item => item.name === name)) {
name = `目录${parseInt(name.split('目录')[1]) + 1}` name = `目录${parseInt(name.split('目录')[1]) + 1}`
@@ -111,15 +115,15 @@ function addDirectory() {
media_category: '', media_category: '',
}) })
orderDirectoryCards() orderDirectoryCards()
} }, debounceTime)
// 移除媒体库目录 // 移除媒体库目录
function removeDirectory(directory: TransferDirectoryConf) { const removeDirectory = debounce((directory: TransferDirectoryConf) => {
const index = directories.value.indexOf(directory) const index = directories.value.indexOf(directory)
if (index > -1) { if (index > -1) {
directories.value.splice(index, 1) directories.value.splice(index, 1)
} }
} }, debounceTime)
// 调用API查询自动分类配置 // 调用API查询自动分类配置
async function loadMediaCategories() { async function loadMediaCategories() {