云文件系统初始化
This commit is contained in:
1
web-vue/src/store/index.js
Normal file
1
web-vue/src/store/index.js
Normal file
@@ -0,0 +1 @@
|
||||
export { useUserStore } from './user'
|
||||
86
web-vue/src/store/user.js
Normal file
86
web-vue/src/store/user.js
Normal file
@@ -0,0 +1,86 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { ref, computed } from 'vue'
|
||||
|
||||
export const useUserStore = defineStore('user', () => {
|
||||
const token = ref(localStorage.getItem('token') || '')
|
||||
const username = ref(localStorage.getItem('username') || '')
|
||||
const userId = ref(localStorage.getItem('userId') || null)
|
||||
const nickname = ref(localStorage.getItem('nickname') || '')
|
||||
const signature = ref(localStorage.getItem('signature') || '')
|
||||
const avatar = ref(localStorage.getItem('avatar') || '')
|
||||
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 isLoggedIn = computed(() => !!token.value)
|
||||
|
||||
const setToken = (newToken) => {
|
||||
token.value = newToken
|
||||
localStorage.setItem('token', newToken)
|
||||
}
|
||||
|
||||
const setUser = (user) => {
|
||||
if (user.id) {
|
||||
userId.value = user.id
|
||||
localStorage.setItem('userId', user.id)
|
||||
}
|
||||
if (user.username) {
|
||||
username.value = user.username
|
||||
localStorage.setItem('username', user.username)
|
||||
}
|
||||
if (user.nickname) {
|
||||
nickname.value = user.nickname
|
||||
localStorage.setItem('nickname', user.nickname)
|
||||
}
|
||||
if (user.signature !== undefined) {
|
||||
signature.value = user.signature || ''
|
||||
localStorage.setItem('signature', user.signature || '')
|
||||
}
|
||||
if (user.avatar !== undefined) {
|
||||
avatar.value = user.avatar || ''
|
||||
localStorage.setItem('avatar', user.avatar || '')
|
||||
}
|
||||
if (user.phone !== undefined) {
|
||||
phone.value = user.phone || ''
|
||||
localStorage.setItem('phone', user.phone || '')
|
||||
}
|
||||
if (user.email !== undefined) {
|
||||
email.value = user.email || ''
|
||||
localStorage.setItem('email', user.email || '')
|
||||
}
|
||||
if (user.storageUsed !== undefined) {
|
||||
storageUsed.value = Number(user.storageUsed) || 0
|
||||
localStorage.setItem('storageUsed', storageUsed.value)
|
||||
}
|
||||
if (user.storageLimit !== undefined) {
|
||||
storageLimit.value = Number(user.storageLimit) || 20 * 1024 * 1024 * 1024
|
||||
localStorage.setItem('storageLimit', storageLimit.value)
|
||||
}
|
||||
}
|
||||
|
||||
const logout = () => {
|
||||
token.value = ''
|
||||
username.value = ''
|
||||
userId.value = null
|
||||
nickname.value = ''
|
||||
signature.value = ''
|
||||
avatar.value = ''
|
||||
phone.value = ''
|
||||
email.value = ''
|
||||
storageUsed.value = 0
|
||||
storageLimit.value = 20 * 1024 * 1024 * 1024
|
||||
localStorage.removeItem('token')
|
||||
localStorage.removeItem('username')
|
||||
localStorage.removeItem('userId')
|
||||
localStorage.removeItem('nickname')
|
||||
localStorage.removeItem('signature')
|
||||
localStorage.removeItem('avatar')
|
||||
localStorage.removeItem('phone')
|
||||
localStorage.removeItem('email')
|
||||
localStorage.removeItem('storageUsed')
|
||||
localStorage.removeItem('storageLimit')
|
||||
}
|
||||
|
||||
return { token, username, userId, nickname, signature, avatar, phone, email, storageUsed, storageLimit, isLoggedIn, setToken, setUser, logout }
|
||||
})
|
||||
Reference in New Issue
Block a user