index.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. import api from '@/api'
  4. import jump from '@/utils/jump'
  5. Vue.use(Vuex)
  6. export default new Vuex.Store({
  7. state: {
  8. set token(token) {
  9. uni.setStorageSync('token', token)
  10. },
  11. get token() {
  12. return uni.getStorageSync('token')
  13. },
  14. set user(user) {
  15. //当前登录用户的信息
  16. uni.setStorageSync('user', JSON.stringify(user))
  17. },
  18. get user() {
  19. return JSON.parse(uni.getStorageSync('user') || '{}')
  20. },
  21. set sysInfo(sysInfo) {
  22. uni.setStorageSync('sysInfo', JSON.stringify(sysInfo))
  23. },
  24. get sysInfo() {
  25. return {
  26. ...JSON.parse(uni.getStorageSync('sysInfo') || '{}'),
  27. timestamp: Date.now()
  28. }
  29. },
  30. set params(params) {
  31. // 当前页面跳转的参数
  32. uni.setStorageSync('params', JSON.stringify(params))
  33. },
  34. get params() {
  35. return JSON.parse(uni.getStorageSync('params') || '{}')
  36. },
  37. set appConfig(appConfig) {
  38. uni.setStorageSync('appConfig', JSON.stringify(appConfig))
  39. },
  40. get appConfig() {
  41. return JSON.parse(uni.getStorageSync('appConfig') || '{}')
  42. },
  43. set knowAfter(knowAfter) {
  44. // 售后的弹窗 知晓列表
  45. uni.setStorageSync('knowAfter', JSON.stringify(knowAfter))
  46. },
  47. get knowAfter() {
  48. return JSON.parse(uni.getStorageSync('knowAfter') || '[]')
  49. },
  50. set adultWarn(adultWarn) {
  51. // 18岁提示
  52. uni.setStorageSync('adultWarn', JSON.stringify(adultWarn))
  53. },
  54. get adultWarn() {
  55. return JSON.parse(uni.getStorageSync('adultWarn') || 'true')
  56. },
  57. isRefresh: true, // 是否刷新 User
  58. appVersionUp: {} // 版本更新信息
  59. },
  60. getters: {
  61. isAppVersionUp(state) {
  62. return state.appVersionUp.has_update === 1
  63. }
  64. },
  65. actions: {
  66. async getAppConfig({ state }) {
  67. state.appConfig = await api.appConfig()
  68. },
  69. async refreshUser({ state }) {
  70. if (!state.token) return
  71. try {
  72. state.user = await api.userInfo()
  73. return true
  74. } catch {
  75. return false
  76. }
  77. },
  78. async refreshAppVersion({ state }) {
  79. // #ifdef APP-PLUS
  80. plus.runtime.getProperty(plus.runtime.appid, async function (widgetInfo) {
  81. console.log('store' + JSON.stringify(widgetInfo))
  82. state.appVersionUp = await api.appVersionCheck({ app_version: widgetInfo.version })
  83. })
  84. console.log('v', 111)
  85. // #endif
  86. // #ifndef APP-PLUS
  87. console.log('v', 222)
  88. state.appVersionUp = await api.appVersionCheck()
  89. // #endif
  90. }
  91. },
  92. mutations: {
  93. getSysInfo(state) {
  94. // 都进行同步获取
  95. state.sysInfo = {
  96. app_version: uni.getSystemInfoSync().appVersion || 'No appVersion',
  97. app_sources: uni.getSystemInfoSync().osName || 'No osName',
  98. sys_version: uni.getSystemInfoSync().osVersion || 'No osVersion',
  99. sys_model: uni.getSystemInfoSync().deviceModel || 'No deviceModel',
  100. udid: uni.getSystemInfoSync().deviceId || 'No deviceId'
  101. }
  102. },
  103. exit(state, type = '') {
  104. state.token = ''
  105. state.user = {}
  106. if (type === 'logout') {
  107. jump({ url: '/pages/index/index' }, {}, 'switchTab')
  108. } else {
  109. jump({ url: '/pages/login/login', animationType: 'zoom-fade-out' })
  110. }
  111. },
  112. setIsRefresh(state, bool) {
  113. state.isRefresh = bool
  114. },
  115. addKnowAfter(state, mobile) {
  116. state.knowAfter = [...state.knowAfter, mobile]
  117. },
  118. closeAdultWarn(state) {
  119. state.adultWarn = false
  120. }
  121. }
  122. })