index.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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: 'parent',
  9. familyId: '',
  10. nickname: '',
  11. currentChildId: '',
  12. children: []
  13. },
  14. mutations: {
  15. setToken(state, token) {
  16. state.token = token
  17. uni.setStorageSync('token', token)
  18. },
  19. setUserInfo(state, userInfo) {
  20. state.userId = userInfo.userId
  21. state.role = userInfo.role
  22. state.familyId = userInfo.familyId
  23. state.nickname = userInfo.nickname
  24. },
  25. setChildren(state, children) {
  26. state.children = children
  27. if (children.length > 0 && !state.currentChildId) {
  28. state.currentChildId = children[0].id
  29. }
  30. },
  31. setCurrentChild(state, childId) {
  32. state.currentChildId = childId
  33. },
  34. switchRole(state, role) {
  35. state.role = role
  36. },
  37. logout(state) {
  38. state.token = ''
  39. state.userId = ''
  40. state.role = 'parent'
  41. state.familyId = ''
  42. state.nickname = ''
  43. state.currentChildId = ''
  44. state.children = []
  45. uni.removeStorageSync('token')
  46. }
  47. },
  48. actions: {
  49. login({ commit }, userInfo) {
  50. commit('setToken', userInfo.token)
  51. commit('setUserInfo', userInfo)
  52. },
  53. updateChildren({ commit }, children) {
  54. commit('setChildren', children)
  55. }
  56. }
  57. })
  58. export default store