user.js 1.9 KB
Newer Older
Mr.奇淼('s avatar
Mr.奇淼( 已提交
1
import { login } from '@/api/user'
Mr.奇淼('s avatar
Mr.奇淼( 已提交
2
import router from '@/router/index'
Mr.奇淼('s avatar
Mr.奇淼( 已提交
3
export const user = {
Mr.奇淼('s avatar
Mr.奇淼( 已提交
4
    namespaced: true,
Mr.奇淼('s avatar
Mr.奇淼( 已提交
5 6 7
    state: {
        userInfo: {
            uuid: "",
Mr.奇淼('s avatar
Mr.奇淼( 已提交
8 9 10
            nickName: "",
            headerImg: "",
            authority: "",
Mr.奇淼('s avatar
Mr.奇淼( 已提交
11
        },
Mr.奇淼('s avatar
Mr.奇淼( 已提交
12 13
        token: "",
        expiresAt: ""
Mr.奇淼('s avatar
Mr.奇淼( 已提交
14
    },
Mr.奇淼('s avatar
Mr.奇淼( 已提交
15
    mutations: {
Mr.奇淼('s avatar
Mr.奇淼( 已提交
16 17 18 19 20
        setUserInfo(state, userInfo) {
            // 这里的 `state` 对象是模块的局部状态
            state.userInfo = userInfo
        },
        setToken(state, token) {
Mr.奇淼('s avatar
Mr.奇淼( 已提交
21
            // 这里的 `state` 对象是模块的局部状态
Mr.奇淼('s avatar
Mr.奇淼( 已提交
22
            state.token = token
Mr.奇淼('s avatar
Mr.奇淼( 已提交
23 24 25 26
        },
        setExpiresAt(state, expiresAt) {
            // 这里的 `state` 对象是模块的局部状态
            state.expiresAt = expiresAt
27
        },
28
        LoginOut(state) {
29 30 31
            state.userInfo = {}
            state.token = ""
            state.expiresAt = ""
32
            router.push({ name: 'login', replace: true })
33
            window.location.reload()
Mr.奇淼('s avatar
Mr.奇淼( 已提交
34 35 36 37 38
        },
        ResetUserInfo(state, userInfo = {}) {
            state.userInfo = {...state.userInfo,
                ...userInfo
            }
Mr.奇淼('s avatar
Mr.奇淼( 已提交
39 40 41
        }
    },
    actions: {
42
        async LoginIn({ commit }, loginInfo) {
Mr.奇淼('s avatar
Mr.奇淼( 已提交
43 44 45 46 47 48 49
            const res = await login(loginInfo)
            commit('setUserInfo', res.data.user)
            commit('setToken', res.data.token)
            commit('setExpiresAt', res.data.expiresAt)
            if (res.success) {
                const redirect = router.history.current.query.redirect
                if (redirect) {
50
                    router.push({ path: redirect })
Mr.奇淼('s avatar
Mr.奇淼( 已提交
51
                } else {
52
                    router.push({ path: '/layout/dashbord' })
Mr.奇淼('s avatar
Mr.奇淼( 已提交
53 54
                }
            }
Mr.奇淼('s avatar
Mr.奇淼( 已提交
55
        }
Mr.奇淼('s avatar
Mr.奇淼( 已提交
56 57
    },
    getters: {
Mr.奇淼('s avatar
Mr.奇淼( 已提交
58 59
        userInfo(state) {
            return state.userInfo
Mr.奇淼('s avatar
Mr.奇淼( 已提交
60 61 62
        },
        token(state) {
            return state.token
63 64 65
        },
        expiresAt(state) {
            return state.expiresAt
Mr.奇淼('s avatar
Mr.奇淼( 已提交
66 67 68
        }
    }
}