index.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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: '',
  8. role: 'student',
  9. alumniVerify: 'pending',
  10. classId: '',
  11. name: '',
  12. phone: '',
  13. newUser: false
  14. },
  15. getters: {
  16. isLoggedIn: function(state) {
  17. return !!state.token
  18. },
  19. isVerified: function(state) {
  20. return state.alumniVerify === 'accepted'
  21. },
  22. hasClass: function(state) {
  23. return state.classId !== '' && state.classId !== null
  24. }
  25. },
  26. mutations: {
  27. setToken(state, token) {
  28. state.token = token
  29. uni.setStorageSync('token', token)
  30. },
  31. setUserInfo(state, userInfo) {
  32. state.userId = userInfo.userId
  33. state.role = userInfo.role || 'student'
  34. state.alumniVerify = userInfo.alumniVerify || 'pending'
  35. state.classId = userInfo.classId || ''
  36. state.name = userInfo.name || ''
  37. state.phone = userInfo.phone || ''
  38. state.newUser = userInfo.newUser || false
  39. uni.setStorageSync('userId', userInfo.userId)
  40. uni.setStorageSync('role', state.role)
  41. uni.setStorageSync('alumniVerify', state.alumniVerify)
  42. uni.setStorageSync('classId', state.classId)
  43. uni.setStorageSync('userInfo', {
  44. userId: userInfo.userId,
  45. role: state.role,
  46. alumniVerify: state.alumniVerify,
  47. classId: state.classId,
  48. name: state.name,
  49. phone: state.phone
  50. })
  51. },
  52. setClassId(state, classId) {
  53. state.classId = classId
  54. uni.setStorageSync('classId', classId)
  55. },
  56. setAlumniVerify(state, status) {
  57. state.alumniVerify = status
  58. uni.setStorageSync('alumniVerify', status)
  59. var userInfo = uni.getStorageSync('userInfo') || {}
  60. userInfo.alumniVerify = status
  61. uni.setStorageSync('userInfo', userInfo)
  62. },
  63. logout(state) {
  64. state.token = ''
  65. state.userId = ''
  66. state.role = 'student'
  67. state.alumniVerify = 'pending'
  68. state.classId = ''
  69. state.name = ''
  70. state.phone = ''
  71. state.newUser = false
  72. uni.removeStorageSync('token')
  73. uni.removeStorageSync('userId')
  74. uni.removeStorageSync('role')
  75. uni.removeStorageSync('alumniVerify')
  76. uni.removeStorageSync('classId')
  77. uni.removeStorageSync('userInfo')
  78. }
  79. },
  80. actions: {
  81. login({ commit }, data) {
  82. commit('setToken', data.token)
  83. commit('setUserInfo', {
  84. userId: data.userId,
  85. role: data.role,
  86. alumniVerify: data.alumniVerify,
  87. classId: data.classId,
  88. name: data.name,
  89. phone: data.phone,
  90. newUser: data.newUser
  91. })
  92. }
  93. }
  94. })
  95. export default store