index.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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 sceniceMessage = uni.getStorageSync('scenicMessage') || ''
  12. const meunList = uni.getStorageSync('menuList') || ''
  13. const hasMenuList = uni.getStorageSync('hasMenuList') || ''
  14. const store = new Vuex.Store({
  15. // 数据存放
  16. state: {
  17. // 景区信息
  18. scenic: sceniceMessage,
  19. // 菜单权限
  20. menuRole:meunList,
  21. // 角色拥有的权限
  22. hasRoleList: hasMenuList,
  23. //用户token
  24. accessToken: ACCESSTOKEN,
  25. // 用户权限
  26. role: ROLE,
  27. //用户信息
  28. userInfo: USER.member,
  29. //推荐人
  30. referrer: REFERRER,
  31. //小程序openid
  32. openId: '',
  33. //网络状态,用于下载提醒
  34. networkState: 'unknown',
  35. refreshToken: REFRESHTOKEN
  36. },
  37. // store 的计算属性 返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算。
  38. getters: {
  39. // 获取网络状态
  40. networkStatus: state => {
  41. return state.networkState;
  42. },
  43. // 判断用户是否登录
  44. hasLogin: state => {
  45. if (state.accessToken) {
  46. return true;
  47. } else {
  48. return false
  49. }
  50. },
  51. hasrole: state=> {
  52. if (state.role) {
  53. return state.role
  54. } else {
  55. mHelper.toast('该账号无权访问,默认重新登录!')
  56. uni.hideLoading()
  57. setTimeout(() => {
  58. mRouter.reLaunch({route: '/pages/public/login'})
  59. }, 1000);
  60. return
  61. }
  62. }
  63. },
  64. // 方法函数,一般用于计算state中的数据
  65. mutations: {
  66. // 菜单
  67. setMenuRole (state, data) {
  68. uni.setStorageSync('menuList',data)
  69. state.menuRole = data
  70. },
  71. // 角色拥有的权限
  72. setHasRoleList (state,data) {
  73. uni.setStorageSync('hasMenuList',data)
  74. state.hasRoleList = data
  75. },
  76. // 保存景区Id
  77. setScenic (state,data) {
  78. state.scenic = data
  79. uni.setStorageSync('scenicMessage',data)
  80. },
  81. login(state, provider) {
  82. // state.accessToken=provider.access_token;
  83. // state.refreshToken=provider.refresh_token;
  84. // state.userInfo = provider.member;
  85. state.user = provider;
  86. uni.setStorageSync('user', provider.token);
  87. uni.setStorageSync('role',provider.pages)
  88. // uni.setStorageSync('accessToken', provider.access_token);
  89. // uni.setStorageSync('refreshToken', provider.refresh_token);
  90. // uni.setStorageSync('userInfo', provider.member);
  91. },
  92. logout(state) {
  93. state.accessToken = '';
  94. state.refreshToken = '';
  95. state.userInfo = {};
  96. uni.removeStorageSync('accessToken');
  97. uni.removeStorageSync('refreshToken');
  98. uni.removeStorageSync('userInfo');
  99. },
  100. setReferrer(state, referrer) {
  101. state.referrer = referrer;
  102. uni.setStorageSync('referrer', referrer);
  103. },
  104. setOpenId(state, openId) {
  105. state.openId = openId;
  106. uni.setStorageSync('openId', openId);
  107. },
  108. setNetworkState(state, provider) {
  109. state.networkState = provider;
  110. }
  111. },
  112. // 异步操作
  113. actions: {
  114. networkStateChange({commit}, info) {
  115. commit('setNetworkState', info);
  116. },
  117. logout({commit}) {
  118. commit('logout');
  119. }
  120. }
  121. })
  122. export default store