mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-05-10 17:42:50 +08:00
79 lines
1.7 KiB
TypeScript
79 lines
1.7 KiB
TypeScript
import type { Module } from 'vuex'
|
|
|
|
// 定义状态类型
|
|
interface AuthState {
|
|
token: string | null
|
|
remember: boolean
|
|
superUser: boolean
|
|
userName: string
|
|
avatar: string
|
|
originalPath: string | null
|
|
}
|
|
|
|
// 定义根状态类型
|
|
interface RootState {
|
|
auth: AuthState
|
|
}
|
|
|
|
// 导出模块
|
|
const authModule: Module<AuthState, RootState> = {
|
|
namespaced: true,
|
|
state: {
|
|
token: null,
|
|
remember: false,
|
|
superUser: false,
|
|
userName: '',
|
|
avatar: '',
|
|
originalPath: null,
|
|
},
|
|
mutations: {
|
|
setToken(state, token: string) {
|
|
state.token = token
|
|
},
|
|
clearToken(state) {
|
|
state.token = null
|
|
},
|
|
setRemember(state, remember: boolean) {
|
|
state.remember = remember
|
|
},
|
|
setSuperUser(state, superUser: boolean) {
|
|
state.superUser = superUser
|
|
},
|
|
setUserName(state, userName: string) {
|
|
state.userName = userName
|
|
},
|
|
setAvatar(state, avatar: string) {
|
|
state.avatar = avatar
|
|
},
|
|
},
|
|
actions: {
|
|
updateToken({ commit }, token: string) {
|
|
commit('setToken', token)
|
|
},
|
|
clearToken({ commit }) {
|
|
commit('clearToken')
|
|
},
|
|
updateRemember({ commit }, remember: boolean) {
|
|
commit('setRemember', remember)
|
|
},
|
|
updateSuperUser({ commit }, superUser: boolean) {
|
|
commit('setSuperUser', superUser)
|
|
},
|
|
updateUserName({ commit }, userName: string) {
|
|
commit('setUserName', userName)
|
|
},
|
|
updateAvatar({ commit }, avatar: string) {
|
|
commit('setAvatar', avatar)
|
|
},
|
|
},
|
|
getters: {
|
|
getToken: state => state.token,
|
|
getRemember: state => state.remember,
|
|
getSuperUser: state => state.superUser,
|
|
getUserName: state => state.userName,
|
|
getAvatar: state => state.avatar,
|
|
},
|
|
}
|
|
|
|
export default authModule
|