index.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. import mHelper from '@/utils/helper';
  4. import mRouter from '@/utils/router';
  5. Vue.use(Vuex);
  6. const ACCESSTOKEN = uni.getStorageSync('accessToken') || '';
  7. const REFERRER = uni.getStorageSync('referrer') || '';
  8. const REFRESHTOKEN = uni.getStorageSync('refreshToken') || '';
  9. const USER = uni.getStorageSync('user') || {};
  10. const ROLE = uni.getStorageSync('role')
  11. const store = new Vuex.Store({
  12. // 数据存放
  13. state: {
  14. //用户token
  15. accessToken: ACCESSTOKEN,
  16. // 用户权限
  17. role: ROLE,
  18. //用户信息
  19. userInfo: USER.member,
  20. //推荐人
  21. referrer: REFERRER,
  22. //小程序openid
  23. openId: '',
  24. //网络状态,用于下载提醒
  25. networkState: 'unknown',
  26. refreshToken: REFRESHTOKEN
  27. },
  28. // store 的计算属性 返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算。
  29. getters: {
  30. // 获取网络状态
  31. networkStatus: state => {
  32. return state.networkState;
  33. },
  34. // 判断用户是否登录
  35. hasLogin: state => {
  36. if (state.accessToken) {
  37. return true;
  38. } else {
  39. return false
  40. }
  41. },
  42. hasrole: state=> {
  43. if (state.role) {
  44. return state.role
  45. } else {
  46. mHelper.toast('该账号无权访问,默认重新登录!')
  47. uni.hideLoading()
  48. setTimeout(() => {
  49. mRouter.reLaunch({route: '/pages/public/login'})
  50. }, 1000);
  51. return
  52. }
  53. }
  54. },
  55. // 方法函数,一般用于计算state中的数据
  56. mutations: {
  57. login(state, provider) {
  58. // state.accessToken=provider.access_token;
  59. // state.refreshToken=provider.refresh_token;
  60. // state.userInfo = provider.member;
  61. state.user = provider;
  62. uni.setStorageSync('user', provider.token);
  63. uni.setStorageSync('role',provider.pages)
  64. // uni.setStorageSync('accessToken', provider.access_token);
  65. // uni.setStorageSync('refreshToken', provider.refresh_token);
  66. // uni.setStorageSync('userInfo', provider.member);
  67. },
  68. logout(state) {
  69. state.accessToken = '';
  70. state.refreshToken = '';
  71. state.userInfo = {};
  72. uni.removeStorageSync('accessToken');
  73. uni.removeStorageSync('refreshToken');
  74. uni.removeStorageSync('userInfo');
  75. },
  76. setReferrer(state, referrer) {
  77. state.referrer = referrer;
  78. uni.setStorageSync('referrer', referrer);
  79. },
  80. setOpenId(state, openId) {
  81. state.openId = openId;
  82. uni.setStorageSync('openId', openId);
  83. },
  84. setNetworkState(state, provider) {
  85. state.networkState = provider;
  86. }
  87. },
  88. // 异步操作
  89. actions: {
  90. networkStateChange({commit}, info) {
  91. commit('setNetworkState', info);
  92. },
  93. logout({commit}) {
  94. commit('logout');
  95. }
  96. }
  97. })
  98. export default store