index.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import { createStore } from 'vuex'
  2. import { login, wxLogin, loginByOpenId, logout } from '../services/common'
  3. const store = createStore({
  4. state: {
  5. userInfo: uni.getStorageSync('userInfo'),
  6. token: uni.getStorageSync('token')
  7. },
  8. mutations: {
  9. setUserInfo(state, userInfo) {
  10. state.userInfo = userInfo
  11. uni.setStorageSync('userInfo', userInfo)
  12. },
  13. setToken(state, token) {
  14. state.token = token
  15. uni.setStorageSync('token', token)
  16. }
  17. },
  18. actions: {
  19. login({ commit }, data) {
  20. return login(data).then(res => {
  21. commit('setToken', res.token)
  22. commit('setUserInfo', res.userInfo)
  23. })
  24. },
  25. wxLogin({ commit }, data) {
  26. return wxLogin(data).then(res => {
  27. commit('setToken', res.token)
  28. commit('setUserInfo', res.userInfo)
  29. })
  30. },
  31. loginByOpenId({ commit }) {
  32. return loginByOpenId().then(res => {
  33. commit('setToken', res.token)
  34. commit('setUserInfo', res.userInfo)
  35. })
  36. },
  37. logout({ commit }) {
  38. // return http.post('auth/user/logout').then(res => {
  39. // commit('setToken', '')
  40. // commit('setUserInfo', {})
  41. // })
  42. return new Promise(resolve => {
  43. commit('setToken', '')
  44. commit('setUserInfo', null)
  45. resolve()
  46. })
  47. }
  48. }
  49. })
  50. export default store