index.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. Vue.use(Vuex)
  4. const store = new Vuex.Store({
  5. state: {
  6. token: '',
  7. userId: null,
  8. memberId: null,
  9. nickname: '',
  10. familyId: null,
  11. openid: '',
  12. isLoggedIn: false
  13. },
  14. mutations: {
  15. setToken(state, token) {
  16. state.token = token
  17. uni.setStorageSync('token', token)
  18. },
  19. setUserInfo(state, info) {
  20. state.userId = info.userId
  21. state.memberId = info.memberId
  22. state.nickname = info.nickname
  23. state.familyId = info.familyId
  24. state.openid = info.openid
  25. state.isLoggedIn = !!info.userId
  26. },
  27. logout(state) {
  28. state.token = ''
  29. state.userId = null
  30. state.memberId = null
  31. state.nickname = ''
  32. state.familyId = null
  33. state.openid = ''
  34. state.isLoggedIn = false
  35. uni.removeStorageSync('token')
  36. uni.removeStorageSync('openid')
  37. uni.removeStorageSync('userId')
  38. }
  39. },
  40. actions: {
  41. initFromStorage({ commit }) {
  42. var token = uni.getStorageSync('token')
  43. var openid = uni.getStorageSync('openid')
  44. var userId = uni.getStorageSync('userId')
  45. if (token) commit('setToken', token)
  46. if (userId) {
  47. var userInfo = uni.getStorageSync('userInfo') || {}
  48. commit('setUserInfo', {
  49. userId: userId,
  50. memberId: userInfo.memberId,
  51. nickname: userInfo.nickname,
  52. familyId: userInfo.familyId,
  53. openid: openid
  54. })
  55. }
  56. }
  57. }
  58. })
  59. export default store