1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/sangtian152-vue-ts-admin

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
user.ts 1.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
sangtian152 Отправлено 4 лет назад c68ae4b
import {VuexModule, Module, Mutation, Action, getModule} from 'vuex-module-decorators'
import store from '@/store'
import { setAccessToken, getAccessToken, removeToken } from '@/utils/locStr'
import { login, getUserInfo, logout } from '@/api/users'
import router, { resetRouter } from '@/router'
import { TagsModule } from './tagsbar'
export interface IUserState {
token: string
name: string
avatar: string
introduction: string
roles: string[]
email: string
}
@Module({name:"user", dynamic: true, namespaced: true, store})
class User extends VuexModule implements IUserState {
public token = getAccessToken() || ""
public name: string = ''
public avatar: string = ''
public introduction = ''
public roles: string[] = []
public email = ''
@Mutation
private SET_TOKEN(token: string) {
this.token = token
}
@Mutation
private SET_ROLES(roles: string[]){
this.roles = roles
}
@Action
public async Login(userInfo: {username: string, password: string}) {
const { username, password} = userInfo
const { data } = await login({username, password})
setAccessToken(data.accessToken)
this.SET_TOKEN(data.accessToken)
}
@Action
public async LogOut() {
if (this.token === '') {
throw Error('LogOut: token is undefined!')
}
await logout()
removeToken()
resetRouter()
// Reset visited views and cached views
TagsModule.delAllViews()
this.SET_TOKEN('')
this.SET_ROLES([])
}
@Action
public ResetToken() {
removeToken()
this.SET_TOKEN('')
this.SET_ROLES([])
}
@Action
public async GetUserInfo() {
/*if (this.token === '') {
throw Error('GetUserInfo: token is undefined!')
}*/
const { data } = await getUserInfo({});
if (!data) {
throw Error('Verification failed, please Login again.')
}
const { roles, name, avatar, introduction, email } = data.user
this.SET_ROLES(roles);
}
}
export const UserModule = getModule(User)

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/sangtian152-vue-ts-admin.git
git@gitlife.ru:oschina-mirror/sangtian152-vue-ts-admin.git
oschina-mirror
sangtian152-vue-ts-admin
sangtian152-vue-ts-admin
master