index.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. __key_member: 'usemall_userInfo', // 用户信息缓存keyName
  8. token: '', // token 令牌
  9. __key_token: 'uni_id_token' // token缓存keyName
  10. },
  11. mutations: {
  12. // 保存用户数据
  13. saveUserInfo(state, data) {
  14. state.userInfo = Object.assign(state.userInfo, data);
  15. console.log('newUserInfo', state.userInfo)
  16. uni.setStorage({
  17. key: state.__key_member,
  18. data: state.userInfo
  19. })
  20. },
  21. // 登出
  22. logout(state, data) {
  23. state.hasLogin = false;
  24. state.userInfo = {};
  25. state.token = '';
  26. uni.removeStorageSync(state.__key_member)
  27. uni.removeStorageSync(state.__key_token)
  28. },
  29. // 缓存token数据
  30. sessionToken(state, token) {
  31. state.token = token;
  32. uni.setStorage({
  33. key: state.__key_token,
  34. data: state.token
  35. })
  36. state.islogin = true;
  37. },
  38. // 从缓存中加载数据保存至store
  39. loadSession(state) {
  40. if (uni.getStorageSync(state.__key_member)) state.userInfo = uni.getStorageSync(state.__key_member);
  41. if (uni.getStorageSync(state.__key_token)) state.token = uni.getStorageSync(state.__key_token);
  42. if (state.token) state.islogin = true;
  43. }
  44. }
  45. })
  46. export default store