user.js 2.1 KB
Newer Older
Mr.奇淼('s avatar
Mr.奇淼( 已提交
1
import { login } from '@/api/user'
Mr.奇淼('s avatar
Mr.奇淼( 已提交
2 3
import router from '@/router/index'
import { Message } from 'element-ui'
Mr.奇淼('s avatar
Mr.奇淼( 已提交
4
export const user = {
Mr.奇淼('s avatar
Mr.奇淼( 已提交
5
    namespaced: true,
Mr.奇淼('s avatar
Mr.奇淼( 已提交
6 7 8
    state: {
        userInfo: {
            uuid: "",
Mr.奇淼('s avatar
Mr.奇淼( 已提交
9 10 11
            nickName: "",
            headerImg: "",
            authority: "",
Mr.奇淼('s avatar
Mr.奇淼( 已提交
12
        },
Mr.奇淼('s avatar
Mr.奇淼( 已提交
13 14
        token: "",
        expiresAt: ""
Mr.奇淼('s avatar
Mr.奇淼( 已提交
15
    },
Mr.奇淼('s avatar
Mr.奇淼( 已提交
16
    mutations: {
Mr.奇淼('s avatar
Mr.奇淼( 已提交
17 18 19 20 21
        setUserInfo(state, userInfo) {
            // 这里的 `state` 对象是模块的局部状态
            state.userInfo = userInfo
        },
        setToken(state, token) {
Mr.奇淼('s avatar
Mr.奇淼( 已提交
22
            // 这里的 `state` 对象是模块的局部状态
Mr.奇淼('s avatar
Mr.奇淼( 已提交
23
            state.token = token
Mr.奇淼('s avatar
Mr.奇淼( 已提交
24 25 26 27
        },
        setExpiresAt(state, expiresAt) {
            // 这里的 `state` 对象是模块的局部状态
            state.expiresAt = expiresAt
28
        },
29
        LoginOut(state) {
30 31 32
            state.userInfo = {}
            state.token = ""
            state.expiresAt = ""
33
            router.push({ name: 'login', replace: true })
Mr.奇淼('s avatar
Mr.奇淼( 已提交
34
        }
35

Mr.奇淼('s avatar
Mr.奇淼( 已提交
36 37
    },
    actions: {
Mr.奇淼('s avatar
Mr.奇淼( 已提交
38 39 40
        async LoginIn({ commit }, loginInfo) {
            try {
                const res = await login(loginInfo)
Mr.奇淼('s avatar
Mr.奇淼( 已提交
41 42
                commit('setUserInfo', res.data.user)
                commit('setToken', res.data.token)
Mr.奇淼('s avatar
Mr.奇淼( 已提交
43 44 45 46
                commit('setExpiresAt', res.data.expiresAt)
                if (res.success) {
                    const redirect = router.history.current.query.redirect
                    if (redirect) {
47
                        router.push({ path: redirect, replace: true })
Mr.奇淼('s avatar
Mr.奇淼( 已提交
48
                    } else {
49
                        router.push({ path: '/layout/dashbord', replace: true })
Mr.奇淼('s avatar
Mr.奇淼( 已提交
50 51 52 53 54 55 56 57
                    }
                }
            } catch (err) {
                Message({
                    type: 'error',
                    message: err,
                    showClose: true
                })
Mr.奇淼('s avatar
Mr.奇淼( 已提交
58
                return Promise.reject(err)
Mr.奇淼('s avatar
Mr.奇淼( 已提交
59
            }
Mr.奇淼('s avatar
Mr.奇淼( 已提交
60
        }
Mr.奇淼('s avatar
Mr.奇淼( 已提交
61 62
    },
    getters: {
Mr.奇淼('s avatar
Mr.奇淼( 已提交
63 64
        userInfo(state) {
            return state.userInfo
Mr.奇淼('s avatar
Mr.奇淼( 已提交
65 66 67
        },
        token(state) {
            return state.token
68 69 70
        },
        expiresAt(state) {
            return state.expiresAt
Mr.奇淼('s avatar
Mr.奇淼( 已提交
71 72 73
        }
    }
}