mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-09-06 08:06:43 +08:00
feat(settings): AccountSettingDirectory
- 增加防抖。
This commit is contained in:
@@ -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() {
|
||||||
|
|||||||
Reference in New Issue
Block a user