Blame view

src/store/modules/user.js 2.34 KB
80a28914e   吉鹏   init
1
2
3
4
5
6
7
8
  import { login, logout, getInfo } from '@/api/user'
  import { getToken, setToken, removeToken } from '@/utils/auth'
  import { resetRouter } from '@/router'
  
  const getDefaultState = () => {
    return {
      token: getToken(),
      name: '',
cf56a6c30   吉鹏   init role permission
9
10
      avatar: '',
      roles: []
80a28914e   吉鹏   init
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    }
  }
  
  const state = getDefaultState()
  
  const mutations = {
    RESET_STATE: (state) => {
      Object.assign(state, getDefaultState())
    },
    SET_TOKEN: (state, token) => {
      state.token = token
    },
    SET_NAME: (state, name) => {
      state.name = name
    },
    SET_AVATAR: (state, avatar) => {
      state.avatar = avatar
cf56a6c30   吉鹏   init role permission
28
29
30
    },
    SET_ROLES: (state, roles) => {
      state.roles = roles
80a28914e   吉鹏   init
31
32
33
34
35
36
37
38
39
40
    }
  }
  
  const actions = {
    // user login
    login({ commit }, userInfo) {
      const { username, password } = userInfo
      return new Promise((resolve, reject) => {
        login({ username: username.trim(), password: password }).then(response => {
          const { data } = response
60fa0be9d   Adam   auto commit the c...
41
          console.log('action------->login------->处理', data);
80a28914e   吉鹏   init
42
43
44
45
46
47
48
49
50
51
52
53
54
55
          commit('SET_TOKEN', data.token)
          setToken(data.token)
          resolve()
        }).catch(error => {
          reject(error)
        })
      })
    },
  
    // get user info
    getInfo({ commit, state }) {
      return new Promise((resolve, reject) => {
        getInfo(state.token).then(response => {
          const { data } = response
80a28914e   吉鹏   init
56
57
58
          if (!data) {
            reject('Verification failed, please Login again.')
          }
cf56a6c30   吉鹏   init role permission
59
          const { roles, name, avatar } = data
cf56a6c30   吉鹏   init role permission
60
61
62
63
          // roles must be a non-empty array
          if (!roles || roles.length <= 0) {
            reject('getInfo: roles must be a non-null array!')
          }
cf56a6c30   吉鹏   init role permission
64
          commit('SET_ROLES', roles)
80a28914e   吉鹏   init
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
          commit('SET_NAME', name)
          commit('SET_AVATAR', avatar)
          resolve(data)
        }).catch(error => {
          reject(error)
        })
      })
    },
  
    // user logout
    logout({ commit, state }) {
      return new Promise((resolve, reject) => {
        logout(state.token).then(() => {
          removeToken() // must remove  token  first
          resetRouter()
          commit('RESET_STATE')
          resolve()
        }).catch(error => {
          reject(error)
        })
      })
    },
  
    // remove token
    resetToken({ commit }) {
      return new Promise(resolve => {
        removeToken() // must remove  token  first
        commit('RESET_STATE')
        resolve()
      })
    }
  }
  
  export default {
    namespaced: true,
    state,
    mutations,
    actions
  }