user.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. import userApi from '@/api/modules/user.js'
  2. const crypto = require("crypto");
  3. const user = {
  4. state: {
  5. tokenObj: {
  6. token: '',
  7. date: 0
  8. },
  9. jpcjUserInfo: {
  10. },
  11. userInfo: '',
  12. name: '',
  13. avatar: '',
  14. roles: [],
  15. permissions: [],
  16. lightConfig: {
  17. interval: 5,
  18. directives: 5,
  19. isTipSound: false,
  20. type: 0,
  21. typelist: [{
  22. name: "随机抽取多条指令"
  23. }, {
  24. name: "随机抽取一个组合"
  25. }]
  26. }
  27. },
  28. mutations: {
  29. SET_TOKENOBJ: (state, tokenObj) => {
  30. state.tokenObj = tokenObj
  31. },
  32. //jpcjUserInfo
  33. SET_JPCJUSERINFO(state, jpcjUserInfo) {
  34. state.jpcjUserInfo = jpcjUserInfo
  35. },
  36. REFRESH_TOKEN(state) {
  37. if (state.tokenObj.token !== '')
  38. state.tokenObj.date = new Date().getTime()
  39. },
  40. SET_USERINFO: (state, userInfo) => {
  41. return state.userInfo = userInfo
  42. },
  43. SET_NAME: (state, name) => {
  44. state.name = name
  45. },
  46. SET_AVATAR: (state, avatar) => {
  47. state.avatar = avatar
  48. },
  49. SET_ROLES: (state, roles) => {
  50. state.roles = roles
  51. },
  52. SET_PERMISSIONS: (state, permissions) => {
  53. state.permissions = permissions
  54. },
  55. SET_LIGHTCONFIG: (state, lightConfig) => {
  56. state.lightConfig = lightConfig
  57. }
  58. },
  59. actions: {
  60. /**
  61. * 用户登录储存token
  62. * @param {Object} store
  63. */
  64. async Login(store) {
  65. wx.showLoading({
  66. title: '登陆中...',
  67. })
  68. let res = await userApi.login()
  69. if (res.data) {
  70. store.commit('SET_TOKENOBJ', {
  71. token: res.data.token,
  72. date: new Date().getTime()
  73. })
  74. }
  75. // store.commit('SET_JPCJUSERINFO',res.data.jpcjUserInfo)
  76. wx.hideLoading()
  77. //#ifdef MP-TOUTIAO
  78. uni.setStorageSync('unionid',res.data.thirdResult.data.unionid)
  79. //#endif
  80. return res
  81. },
  82. async getToken(store) {
  83. let tokenObj = store.state.tokenObj
  84. if (new Date().getTime() - tokenObj.date < 1000 * 60 * 28) {
  85. return tokenObj.token
  86. } else {
  87. let res = await store.dispatch("Login")
  88. if (res.data) {
  89. store.commit('SET_TOKENOBJ', {
  90. token: res.data.token,
  91. date: new Date().getTime()
  92. })
  93. }
  94. return res.data && res.data.token
  95. }
  96. },
  97. /**
  98. * 获取用户信息
  99. * @param {Object} store
  100. */
  101. async GetInfo(store) {
  102. let res
  103. //#ifdef MP-WEIXIN
  104. res = await userApi.getInfo()
  105. //#endif
  106. //#ifdef MP-TOUTIAO
  107. res = await userApi.userInfoVipInfo()
  108. //#endif
  109. uni.setStorageSync("userInfo", res.data);
  110. store.commit('SET_USERINFO', res.data)
  111. return res
  112. }
  113. }
  114. }
  115. export default user