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
d64cd58f   wesley88   上传验收小程序
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
d64cd58f   wesley88   上传验收小程序
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)
        })
      })
    },
  
d64cd58f   wesley88   上传验收小程序
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
d64cd58f   wesley88   上传验收小程序
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
  }