api.js 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import axios from "axios"
  2. import { encodeStr } from "@/utils/pass.js"
  3. import { Base64 } from "js-base64"
  4. import store from "@/store/index.js"
  5. export default {
  6. async login(userName, password) {
  7. const pwdEncrypted = encodeStr(Base64.encode(password))
  8. const res = await axios({
  9. method: 'post',
  10. url: `${process.env.VUE_APP_API_PREFIX}/api/admin/login`,
  11. data: {
  12. userName: userName,
  13. password: pwdEncrypted,
  14. },
  15. })
  16. if (res.data.code !== 0) {
  17. throw (`登录失败:${res.data.msg}`)
  18. } else {
  19. store.commit('setLoginStatus', true)
  20. store.commit('setToken', res.data.data.token)
  21. store.commit('setUserInfo', res.data.data.user)
  22. }
  23. },
  24. async logout() {
  25. const res = await axios({
  26. method: 'get',
  27. url: `${process.env.VUE_APP_API_PREFIX}/api/admin/logout`,
  28. headers: {
  29. token: store.state.token,
  30. }
  31. })
  32. if (res?.data?.code === 0) {
  33. store.commit('logoutCallback')
  34. }
  35. },
  36. async checkLoginStatusAndProcess() {
  37. const lastToken = localStorage.getItem('token')
  38. const lastUserInfoStr = localStorage.getItem('userInfo')
  39. if (lastToken && lastUserInfoStr) {
  40. const res = await axios({
  41. method: 'get',
  42. url: `${process.env.VUE_APP_API_PREFIX}/api/admin/checkLogin`,
  43. headers: {
  44. token: lastToken,
  45. }
  46. })
  47. if (res.data.code === 0 && res.data.data) {
  48. store.commit('setLoginStatus', true)
  49. store.commit('setToken', lastToken)
  50. store.commit('setUserInfo', JSON.parse(lastUserInfoStr))
  51. return true
  52. } else {
  53. store.commit('logoutCallback')
  54. return false
  55. }
  56. } else {
  57. store.commit('logoutCallback')
  58. return false
  59. }
  60. },
  61. async signUp(userName, password) {
  62. const res = await axios({
  63. method: 'post',
  64. url: `${process.env.VUE_APP_API_PREFIX}/api/admin/register`,
  65. data: {
  66. userName: userName,
  67. password: password,
  68. verifyPassword: password,
  69. },
  70. })
  71. if (res.data.code !== 0) {
  72. throw (`注册失败:${res.data.msg}`)
  73. } else {
  74. return
  75. }
  76. },
  77. async fetchBadgeAndVisitData() {
  78. const res = await axios({
  79. method: 'get',
  80. url: `${process.env.VUE_APP_API_PREFIX}/api/cms/question/getVisit`,
  81. headers: {
  82. token: store.state.token,
  83. }
  84. })
  85. store.commit('setBadgeArchCurrent', res.data.data['1'])
  86. store.commit('setBadgeHistoryCurrent', res.data.data['2'])
  87. store.commit('setBadgeProtectorCurrent', res.data.data['3'])
  88. store.commit('setVisitCount', res.data.visit)
  89. },
  90. }