Blame view

wenjuan/src/store/modules/user.js 2.88 KB
e5b57447   杨鑫   '分包问卷'
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
  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
b12ba7ef   杨鑫   '最新'
32
    login ({ commit }, userInfo) {
e5b57447   杨鑫   '分包问卷'
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
      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
b12ba7ef   杨鑫   '最新'
76
    logout ({ commit, state }) {
e5b57447   杨鑫   '分包问卷'
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
      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)
        })
      })
    },
  
b12ba7ef   杨鑫   '最新'
92
    resetPassword ({ commit }, authForm) {
e5b57447   杨鑫   '分包问卷'
93
94
95
96
97
98
99
100
101
102
103
      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
b12ba7ef   杨鑫   '最新'
104
    resetToken ({ commit }) {
e5b57447   杨鑫   '分包问卷'
105
106
107
108
109
110
111
112
113
114
115
116
117
118
      return new Promise(resolve => {
        removeToken() // must remove  token  first
        commit('RESET_STATE')
        resolve()
      })
    }
  }
  
  export default {
    namespaced: true,
    state,
    mutations,
    actions
  }