增加定时清理回收站文件

This commit is contained in:
2026-04-03 22:27:43 +08:00
parent d47c60a5e0
commit 97f1482497
18 changed files with 220 additions and 59 deletions

View File

@@ -1,5 +1,6 @@
import { defineStore } from 'pinia'
import { ref, computed } from 'vue'
import { getSystemConfig } from '@/api/user'
export const useUserStore = defineStore('user', () => {
const token = ref(localStorage.getItem('token') || '')
@@ -11,7 +12,7 @@ export const useUserStore = defineStore('user', () => {
const phone = ref(localStorage.getItem('phone') || '')
const email = ref(localStorage.getItem('email') || '')
const storageUsed = ref(Number(localStorage.getItem('storageUsed')) || 0)
const storageLimit = ref(Number(localStorage.getItem('storageLimit')) || 20 * 1024 * 1024 * 1024)
const storageLimit = ref(Number(localStorage.getItem('storageLimit')) || 0)
const isLoggedIn = computed(() => !!token.value)
@@ -54,11 +55,23 @@ export const useUserStore = defineStore('user', () => {
localStorage.setItem('storageUsed', storageUsed.value)
}
if (user.storageLimit !== undefined) {
storageLimit.value = Number(user.storageLimit) || 20 * 1024 * 1024 * 1024
storageLimit.value = Number(user.storageLimit) || 0
localStorage.setItem('storageLimit', storageLimit.value)
}
}
const fetchStorageLimit = async () => {
try {
const res = await getSystemConfig()
if (res.data?.storageLimitBytes) {
storageLimit.value = res.data.storageLimitBytes
localStorage.setItem('storageLimit', storageLimit.value)
}
} catch (e) {
console.error('获取存储配额失败', e)
}
}
const logout = () => {
token.value = ''
username.value = ''
@@ -69,7 +82,7 @@ export const useUserStore = defineStore('user', () => {
phone.value = ''
email.value = ''
storageUsed.value = 0
storageLimit.value = 20 * 1024 * 1024 * 1024
storageLimit.value = 0
localStorage.removeItem('token')
localStorage.removeItem('username')
localStorage.removeItem('userId')
@@ -82,5 +95,5 @@ export const useUserStore = defineStore('user', () => {
localStorage.removeItem('storageLimit')
}
return { token, username, userId, nickname, signature, avatar, phone, email, storageUsed, storageLimit, isLoggedIn, setToken, setUser, logout }
return { token, username, userId, nickname, signature, avatar, phone, email, storageUsed, storageLimit, isLoggedIn, setToken, setUser, fetchStorageLimit, logout }
})