member.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. import { login, mobile_login } from "@/api/auth/login"
  2. import { register, registerMobile } from "@/api/auth/register"
  3. import { getToken, setToken, removeToken } from "@/utils/auth"
  4. import { memberDetail } from "@/api/member/member"
  5. import { memberInfo } from "@/api/member/index"
  6. const state = {
  7. token: getToken(),
  8. autoLoginRange: 0,
  9. member:''
  10. }
  11. const mutations = {
  12. SET_TOKEN: (state, token) => {
  13. state.token = token
  14. },
  15. SET_AUTOLOGIN_FLAG: (state, autologinRange) => {
  16. state.autoLogin = autologinRange
  17. },
  18. SET_MEMBER: (state, member) => {
  19. if(typeof member == 'object'){
  20. state.member = {};
  21. Object.assign(state.member,member)
  22. }else{
  23. state.member = member;
  24. }
  25. }
  26. }
  27. const actions = {
  28. login({ commit }, userInfo) {
  29. const { username, password, captcha_id, captcha_code, autoLoginRange } = userInfo
  30. return new Promise((resolve, reject) => {
  31. return login({ username, password, captcha_id, captcha_code, autoLoginRange })
  32. .then(res => {
  33. const { code, message, data } = res
  34. if (code == 0) {
  35. commit("SET_TOKEN", data.token)
  36. if (userInfo.autoLoginRange !== undefined) {
  37. commit("SET_AUTOLOGIN_FLAG", userInfo.autoLoginRange)
  38. }
  39. setToken(data.token, userInfo.autoLoginRange)
  40. resolve(res)
  41. }
  42. reject()
  43. })
  44. .catch(_err => {
  45. reject(_err)
  46. })
  47. })
  48. },
  49. mobile_login({ commit }, userInfo) {
  50. const { mobile, key, code } = userInfo
  51. return new Promise((resolve, reject) => {
  52. return mobile_login({ mobile, key, code })
  53. .then(res => {
  54. const { code, message, data } = res
  55. if (code == 0) {
  56. commit("SET_TOKEN", data.token)
  57. setToken(data.token, userInfo.autoLoginRange)
  58. resolve(res)
  59. }
  60. reject()
  61. })
  62. .catch(_err => {
  63. reject(_err)
  64. })
  65. })
  66. },
  67. remove_token({ commit }) {
  68. commit("SET_TOKEN", "")
  69. removeToken()
  70. },
  71. // 账号密码
  72. register_token({ commit }, userInfo) {
  73. const { username, password, captcha_id, captcha_code } = userInfo
  74. return new Promise((resolve, reject) => {
  75. return register({ username, password, captcha_id, captcha_code })
  76. .then(res => {
  77. const { code, message, data } = res
  78. if (code == 0) {
  79. commit("SET_TOKEN", data.token)
  80. setToken(data.token)
  81. resolve(res)
  82. }
  83. reject()
  84. })
  85. .catch(_err => {
  86. reject(_err)
  87. })
  88. })
  89. commit("SET_TOKEN", "")
  90. },
  91. // 手机号
  92. registerMobile_token({ commit }, userInfo) {
  93. const { mobile, key, code, captcha_id, captcha_code } = userInfo
  94. return new Promise((resolve, reject) => {
  95. return registerMobile({ mobile, key, code, captcha_id, captcha_code })
  96. .then(res => {
  97. const { code, message, data } = res
  98. if (code == 0) {
  99. commit("SET_TOKEN", data.token)
  100. setToken(data.token)
  101. resolve(res)
  102. }
  103. reject()
  104. })
  105. .catch(_err => {
  106. reject(_err)
  107. })
  108. })
  109. commit("SET_TOKEN", "")
  110. },
  111. auto_login_range({ commit }, autologinRange) {
  112. commit("SET_AUTOLOGIN_FLAG", autologinRange)
  113. },
  114. logout({ commit }) {
  115. commit("SET_TOKEN", "")
  116. commit("SET_MEMBER", "")
  117. removeToken()
  118. // resolve()
  119. },
  120. /**
  121. * params refresh:1 表示强制请求会员信息
  122. */
  123. member_detail({ commit, state }, params) {
  124. if (!state.member || (params && params.refresh)) {
  125. return new Promise((resolve, reject) => {
  126. return memberDetail({ token: getToken() })
  127. .then(res => {
  128. const { data } = res
  129. commit("SET_MEMBER", data)
  130. return resolve(res)
  131. })
  132. .catch(err => {
  133. return reject(err)
  134. })
  135. })
  136. }
  137. }
  138. }
  139. export default {
  140. namespaced: true,
  141. state,
  142. mutations,
  143. actions
  144. }