$user.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /**
  2. * vuex 用户状态管理模块
  3. */
  4. let lifeData = uni.getStorageSync('lifeData') || {};
  5. let $user = lifeData.$user || {};
  6. export default {
  7. // 通过添加 namespaced: true 的方式使其成为带命名空间的模块
  8. namespaced: true,
  9. /**
  10. * vuex的基本数据,用来存储变量
  11. */
  12. state: {
  13. /**
  14. * 登录用户信息
  15. * js调用示例
  16. * (推荐) vk.getVuex('$user.userInfo');
  17. * 或 vk.vuex.get('$user.userInfo');
  18. * 页面上直接使用示例
  19. * {{ vk.getVuex('$user.userInfo') }}
  20. * js更新示例
  21. * vk.setVuex('$user.userInfo.avatar', avatar);
  22. */
  23. userInfo: $user.userInfo || {},
  24. agentInfo: $user.agentInfo || {},
  25. permission:$user.permission || [],
  26. history: $user.history || {
  27. lastEditAvatarTime: null, // 最后修改头像时间
  28. lastEditUserInfoTime: null, // 最后用户主动更新资料时间,昵称、头像
  29. lastInitAgentDataTime: 0, // 最后一次更新经纪人数据(推荐人数等)
  30. lastGetUnreadMsgTime: 0 , // 最后一次请求未读消息数量
  31. lastRefreshTime: 0, // 最后一次刷新列表时间
  32. },
  33. dataInfo: $user.dataInfo || {
  34. recommendNum: 0,
  35. visitedNum: 0,
  36. buyNum: 0,
  37. totalCommission: 0,
  38. unreadMsgNum: 0
  39. }
  40. },
  41. /**
  42. * 从基本数据(state)派生的数据,相当于state的计算属性
  43. */
  44. getters: {
  45. /**
  46. * 获取用户信息(使用计算属性获取)
  47. * js调用示例
  48. * vk.vuex.getters('$user/getUserInfo');
  49. * 或
  50. * that.$store.getters['$user/getUserInfo'];
  51. */
  52. getUserInfo: (state) => {
  53. return state.userInfo;
  54. }
  55. },
  56. /**
  57. * 提交更新数据的方法,必须是同步的(如果需要异步使用action)。
  58. * 每个 mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)。
  59. * 回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数,提交载荷作为第二个参数。
  60. */
  61. mutations: {
  62. },
  63. /**
  64. * 和mutation的功能大致相同,不同之处在于 ==》
  65. * 1. Action 提交的是 mutation,而不是直接变更状态。
  66. * 2. Action 可以包含任意异步操作。
  67. */
  68. actions: {
  69. }
  70. }