user.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. // eslint-disable-next-line no-unused-vars
  2. import { login, getInfo } from '@/api/user'
  3. export default {
  4. state: {
  5. token: '',
  6. user: {}
  7. },
  8. mutations: {
  9. SET_TOKEN: (state, token) => {
  10. state.token = token
  11. },
  12. SET_USER: (state, user) => {
  13. state.user = user
  14. },
  15. SET_LOGOUT: (state) => {
  16. state.token = ''
  17. state.user = {}
  18. }
  19. },
  20. actions: {
  21. tokenLogin({ commit }, playload) {
  22. return new Promise((resolve, reject) => {
  23. commit('SET_TOKEN', playload.token)
  24. getInfo().then(response => {
  25. let isAdmin = false
  26. response.data.app_list.forEach(app => {
  27. if (app.app_code === 'EXPOREG') {
  28. isAdmin = true
  29. }
  30. })
  31. commit('SET_USER', {
  32. username: response.data.user_name,
  33. nickname: response.data.nick_name,
  34. avatar: response.data.avatar,
  35. email: response.data.email,
  36. phone: response.data.phone,
  37. isAdmin: isAdmin
  38. })
  39. if (!isAdmin) {
  40. reject('您没有权限访问!')
  41. } else {
  42. resolve('登录成功')
  43. }
  44. }).catch(error => {
  45. console.log(error)
  46. reject('获取用户信息失败')
  47. })
  48. })
  49. },
  50. /**
  51. * 登录
  52. * @param commit
  53. * @param payload
  54. * @param payload.savePassword 是否保存密码
  55. * @param payload.username 用户名
  56. * @param payload.password 密码
  57. * @returns {Promise<unknown>}
  58. */
  59. login({ commit }, payload) {
  60. return new Promise((resolve, reject) => {
  61. login(payload.username, payload.password, payload.login_type, payload.login_portal, payload.phone, payload.vaild_code).then(response => {
  62. commit('SET_TOKEN', response.data.api_token)
  63. getInfo().then(response => {
  64. let isAdmin = false
  65. response.data.app_list.forEach(app => {
  66. if (app.app_code === 'EXPOREG') {
  67. isAdmin = true
  68. }
  69. })
  70. commit('SET_USER', {
  71. username: response.data.user_name,
  72. nickname: response.data.nick_name,
  73. avatar: response.data.avatar,
  74. email: response.data.email,
  75. phone: response.data.phone,
  76. isAdmin: isAdmin
  77. })
  78. if (payload.savePassword) {
  79. const savedAccount = {
  80. username: payload.username,
  81. password: payload.password
  82. }
  83. localStorage.setItem('savedAccount', JSON.stringify(savedAccount))
  84. } else {
  85. localStorage.removeItem('savedAccount')
  86. }
  87. if (!isAdmin) {
  88. reject('您没有权限访问!')
  89. } else {
  90. resolve('登录成功')
  91. }
  92. })
  93. }).catch(error => {
  94. console.log(error)
  95. reject('登录失败')
  96. })
  97. })
  98. },
  99. /**
  100. * 登出
  101. * @param commit
  102. * @returns {Promise<unknown>}
  103. */
  104. logout({ commit }) {
  105. return new Promise((resolve, reject) => {
  106. commit('SET_LOGOUT')
  107. resolve('退出登录成功')
  108. })
  109. }
  110. }
  111. }