Blame view

admin-web-master/src/store/modules/user.js 2.87 KB
3f535f30   杨鑫   '初始'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
  import { login, logout, resetPassword } from '@/api/user'
  import { getToken, setToken, removeToken, setName, setUserId, setUserAvatar } from '@/utils/auth'
  import { resetRouter } from '@/router'
  
  const getDefaultState = () => {
    return {
      token: getToken(),
      name: '',
      avatar: ''
    }
  }
  
  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
    }
  }
  
  const actions = {
    // user login
    login({ commit }, userInfo) {
      const { username, password, code, rememberMe } = userInfo
      return new Promise((resolve, reject) => {
        login({ username: username.trim(), password: password, code: code, rememberMe: rememberMe }).then(response => {
          const { data } = response
          // debugger;
          setName(data.name)
          setUserId(data.platformUserId)
          setUserAvatar(data.avatar)
          commit('SET_TOKEN', data.token)
          setToken(data.token)
          // 第一次加载菜单时用到, 具体见 src 目录下的 permission.js
          commit('SET_LOAD', true)
          resolve()
          // 切换账号,刷新路由
          location.reload()
        }).catch(error => {
          reject(error)
        })
      })
    },
  
    // get user info
    // getInfo({ commit, state }) {
    //   return new Promise((resolve, reject) => {
    //     getInfo(state.token).then(response => {
    //       const { data } = response
  
    //       if (!data) {
    //         return reject('Verification failed, please Login again.')
    //       }
  
    //       const { name, avatar } = data
  
    //       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('SET_LOAD', false)
          // -
          commit('RESET_STATE')
          resolve()
        }).catch(error => {
          reject(error)
        })
      })
    },
  
    resetPassword({ commit }, authForm) {
      const { phone, password, newPassword, code } = authForm
      return new Promise((resolve, reject) => {
        resetPassword({ username: phone.trim(), password: password, newPassword: newPassword, code: code }).then(response => {
          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
  }