api.js 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. import axios from "axios"
  2. import { encodeStr } from "@/pass.js"
  3. import { Base64 } from "js-base64"
  4. import store from "@/store/index.js"
  5. import router from "@/router"
  6. axios.interceptors.response.use(function (response) {
  7. // 2xx 范围内的状态码都会触发该函数。
  8. if (response.data.code === 5001 || response.data.code === 5002) {
  9. store.commit('logoutCallback')
  10. router.push({ name: 'HomeView' })
  11. return Promise.reject('登录态过期')
  12. }
  13. return response
  14. }, function (error) {
  15. return error
  16. })
  17. export function getUserFromStorageIfNeed() {
  18. if (!store.state.token || !store.state.userInfo) {
  19. const lastToken = localStorage.getItem('token')
  20. const lastUserInfoStr = localStorage.getItem('userInfo')
  21. if (lastToken && lastUserInfoStr) {
  22. store.commit('setLoginStatus', true)
  23. store.commit('setToken', lastToken)
  24. store.commit('setUserInfo', JSON.parse(lastUserInfoStr))
  25. }
  26. }
  27. }
  28. // export async function reportVisit() {
  29. // const res = await axios({
  30. // method: 'get',
  31. // url: `${process.env.VUE_APP_DEPLOY_ORIGIN}/api/show/addVisit`,
  32. // })
  33. // }
  34. // export async function fetchVisitInfo() {
  35. // const res = await axios({
  36. // method: 'get',
  37. // url: `${process.env.VUE_APP_DEPLOY_ORIGIN}/api/show/getVisit`,
  38. // })
  39. // return res.data.data
  40. // }
  41. export async function login(account, password) {
  42. const pwdEncrypted = encodeStr(Base64.encode(password))
  43. const res = await axios({
  44. method: 'post',
  45. url: `${process.env.VUE_APP_DEPLOY_ORIGIN}/api/show/login`,
  46. data: {
  47. userName: account,
  48. password: pwdEncrypted,
  49. },
  50. })
  51. if (res.data.code !== 0) {
  52. store.commit('setLoginStatus', false)
  53. throw (`登录失败:${res.data.msg}`)
  54. } else {
  55. store.commit('setLoginStatus', true)
  56. store.commit('setToken', res.data.data.token)
  57. store.commit('setUserInfo', res.data.data.user)
  58. }
  59. }
  60. export async function logout() {
  61. const res = await axios({
  62. method: 'get',
  63. url: `${process.env.VUE_APP_DEPLOY_ORIGIN}/api/cms/game/logout`,
  64. headers: {
  65. token: store.state.token,
  66. }
  67. })
  68. if (res?.data?.code === 0) {
  69. store.commit('logoutCallback')
  70. }
  71. }
  72. export async function checkLoginStatusAndProcess() {
  73. const lastToken = localStorage.getItem('token')
  74. const lastUserInfoStr = localStorage.getItem('userInfo')
  75. if (lastToken && lastUserInfoStr) {
  76. const res = await axios({
  77. method: 'get',
  78. url: `${process.env.VUE_APP_DEPLOY_ORIGIN}/api/show/checkLogin`,
  79. headers: {
  80. token: lastToken,
  81. }
  82. })
  83. if (res?.data?.code === 0 && res?.data?.data) {
  84. store.commit('setLoginStatus', true)
  85. store.commit('setToken', lastToken)
  86. store.commit('setUserInfo', JSON.parse(lastUserInfoStr))
  87. return true
  88. } else {
  89. store.commit('logoutCallback')
  90. return false
  91. }
  92. } else {
  93. store.commit('logoutCallback')
  94. return false
  95. }
  96. }
  97. export async function signUp(account, phone, password) {
  98. const pwdEncrypted = encodeStr(Base64.encode(password))
  99. const res = await axios({
  100. method: 'post',
  101. url: `${process.env.VUE_APP_DEPLOY_ORIGIN}/api/show/register`,
  102. data: {
  103. password: pwdEncrypted,
  104. phone,
  105. userName: account,
  106. verifyPassword: pwdEncrypted,
  107. },
  108. })
  109. if (res.data.code !== 0) {
  110. throw (`注册失败:${res.data.msg}`)
  111. } else {
  112. return
  113. }
  114. }
  115. export async function findPassowrd(account, phone) {
  116. const res = await axios({
  117. method: 'post',
  118. url: `${process.env.VUE_APP_DEPLOY_ORIGIN}/api/show/findPass`,
  119. data: {
  120. phone,
  121. userName: account,
  122. },
  123. })
  124. if (res.data.code !== 0) {
  125. throw (`找回密码失败:${res.data.msg}`)
  126. } else {
  127. return
  128. }
  129. }
  130. export async function changePassword(newPassword, oldPassword) {
  131. const pwdNewEncrypted = encodeStr(Base64.encode(newPassword))
  132. const pwdOldEncrypted = encodeStr(Base64.encode(oldPassword))
  133. const res = await axios({
  134. method: 'post',
  135. url: `${process.env.VUE_APP_DEPLOY_ORIGIN}/api/cms/game/update/pass`,
  136. data: {
  137. newPassword: pwdNewEncrypted,
  138. oldPassword: pwdOldEncrypted,
  139. },
  140. headers: {
  141. token: store.state.token,
  142. }
  143. })
  144. if (res.data.code !== 0) {
  145. throw (`密码修改失败:${res.data.msg}`)
  146. } else {
  147. return
  148. }
  149. }
  150. export async function getGameRuleList() {
  151. const res = await axios({
  152. method: 'get',
  153. url: `${process.env.VUE_APP_DEPLOY_ORIGIN}/api/show/rule/getList?rnd=${Math.random()}`,
  154. params: {
  155. type: 'game',
  156. },
  157. })
  158. if (res.data.code !== 0) {
  159. throw (`获取游戏规则失败:${res.data.msg}`)
  160. } else {
  161. return res.data.data
  162. }
  163. }
  164. export async function getScoreLimit() {
  165. const res = await axios({
  166. method: 'get',
  167. url: `${process.env.VUE_APP_DEPLOY_ORIGIN}/api/show/rule/getList?rnd=${Math.random()}`,
  168. params: {
  169. type: 'day',
  170. },
  171. })
  172. if (res.data.code !== 0) {
  173. throw (`获取积分上限失败:${res.data.msg}`)
  174. } else {
  175. return res.data.data[0].score
  176. }
  177. }
  178. export async function getScore() {
  179. const res = await axios({
  180. method: 'get',
  181. url: `${process.env.VUE_APP_DEPLOY_ORIGIN}/api/cms/game/getPoint?rnd=${Math.random()}`,
  182. headers: {
  183. token: store.state.token,
  184. }
  185. })
  186. if (res.data.code !== 0) {
  187. throw (`获取积分失败:${res.data.msg}`)
  188. } else {
  189. return res.data.data
  190. }
  191. }
  192. export async function addScore(score) {
  193. const res = await axios({
  194. method: 'post',
  195. url: `${process.env.VUE_APP_DEPLOY_ORIGIN}/api/cms/game/point/add`,
  196. data: {
  197. score,
  198. type: 'game',
  199. userId: store.state.userInfo.id,
  200. },
  201. headers: {
  202. token: store.state.token,
  203. }
  204. })
  205. if (res.data.code !== 0) {
  206. throw (`新增积分失败:${res.data.msg}`)
  207. } else {
  208. return res.data.data
  209. }
  210. }
  211. export async function getExamQuestionList() {
  212. const res = await axios({
  213. method: 'get',
  214. url: `${process.env.VUE_APP_DEPLOY_ORIGIN}/api/show/question/getList`,
  215. })
  216. if (res.data.code !== 0) {
  217. throw (`获取答题列表失败:${res.data.msg}`)
  218. } else {
  219. return res.data.data
  220. }
  221. }
  222. /*
  223. createTime: "2024-01-08 19:07:01"
  224. creatorId: 1
  225. creatorName: ""
  226. id: 11
  227. isEnabled: 1
  228. name: "可乐"
  229. recordDate: null
  230. rtf: "<p>可乐</p><p>123</p><p></p><div class=\"media-wrap image-wrap\"><img src=\"https://sit-cnzhengquan.4dage.com/prize/11/img/20240109_0935085055.png\"/></div><p></p>"
  231. score: 10
  232. stock: 10
  233. thumb: "/prize/11/thumb/20240109_0929514233.png"
  234. updateTime: "2024-01-09 09:35:10"
  235. */
  236. export async function getPrizeList(pageNum, pageSize) {
  237. const res = await axios({
  238. method: 'post',
  239. url: `${process.env.VUE_APP_DEPLOY_ORIGIN}/api/cms/game/prize/pageList`,
  240. data: {
  241. pageNum,
  242. pageSize,
  243. },
  244. headers: {
  245. token: store.state.token,
  246. }
  247. })
  248. if (res.data.code !== 0) {
  249. throw (`获取奖品列表失败:${res.data.msg}`)
  250. } else {
  251. return res.data.data
  252. }
  253. }
  254. export async function getBonusPointRecord() {
  255. const res = await axios({
  256. method: 'get',
  257. url: `${process.env.VUE_APP_DEPLOY_ORIGIN}/api/cms/game/point/getList`,
  258. headers: {
  259. token: store.state.token,
  260. }
  261. })
  262. if (res.data.code !== 0) {
  263. throw (`获取积分记录失败:${res.data.msg}`)
  264. } else {
  265. return res.data.data
  266. }
  267. }
  268. export async function redeem(description, name, phone, prizeId, score) {
  269. const res = await axios({
  270. method: 'post',
  271. url: `${process.env.VUE_APP_DEPLOY_ORIGIN}/api/cms/game/prize/redeem`,
  272. headers: {
  273. token: store.state.token,
  274. },
  275. data: {
  276. description,
  277. name,
  278. phone,
  279. prizeId,
  280. score: -1 * score,
  281. }
  282. })
  283. if (res.data.code !== 0) {
  284. throw (`奖品兑换失败:${res.data.msg}`)
  285. } else {
  286. return res.data.data
  287. }
  288. }