index.js 783 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. Vue.use(Vuex)
  4. const store = new Vuex.Store({
  5. state: {
  6. userInfo: {}
  7. },
  8. getters: {
  9. userId(state) {
  10. return state.userInfo.id || null;
  11. }
  12. },
  13. mutations: {
  14. //更新state数据
  15. setStateAttr(state, param) {
  16. if (param instanceof Array) {
  17. for (let item of param) {
  18. state[item.key] = item.val;
  19. }
  20. } else {
  21. state[param.key] = param.val;
  22. }
  23. }
  24. },
  25. actions: {
  26. async setUserData({
  27. state,
  28. commit
  29. }, data) {
  30. commit('setStateAttr', {
  31. key: 'userInfo',
  32. val: data
  33. })
  34. uni.setStorageSync('userInfo', data);
  35. },
  36. logout({
  37. state,
  38. commit
  39. }) {
  40. commit('setStateAttr', {
  41. key: 'userInfo',
  42. val: {}
  43. })
  44. uni.removeStorageSync('userInfo');
  45. }
  46. }
  47. })
  48. export default store