api.js 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  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, description) {
  193. const scoreEncrypted = encodeStr(Base64.encode(score))
  194. const res = await axios({
  195. method: 'post',
  196. url: `${process.env.VUE_APP_DEPLOY_ORIGIN}/api/cms/game/point/add`,
  197. data: {
  198. score: scoreEncrypted,
  199. type: '玩游戏',
  200. userId: store.state.userInfo.id,
  201. description,
  202. },
  203. headers: {
  204. token: store.state.token,
  205. }
  206. })
  207. if (res.data.code !== 0) {
  208. throw (`新增积分失败:${res.data.msg}`)
  209. } else {
  210. return res.data.data
  211. }
  212. }
  213. export async function getExamQuestionList() {
  214. const res = await axios({
  215. method: 'get',
  216. url: `${process.env.VUE_APP_DEPLOY_ORIGIN}/api/show/question/getList`,
  217. })
  218. if (res.data.code !== 0) {
  219. throw (`获取答题列表失败:${res.data.msg}`)
  220. } else {
  221. return res.data.data
  222. }
  223. }
  224. /*
  225. createTime: "2024-01-08 19:07:01"
  226. creatorId: 1
  227. creatorName: ""
  228. id: 11
  229. isEnabled: 1
  230. name: "可乐"
  231. recordDate: null
  232. 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>"
  233. score: 10
  234. stock: 10
  235. thumb: "/prize/11/thumb/20240109_0929514233.png"
  236. updateTime: "2024-01-09 09:35:10"
  237. */
  238. export async function getPrizeList(pageNum, pageSize) {
  239. const res = await axios({
  240. method: 'post',
  241. url: `${process.env.VUE_APP_DEPLOY_ORIGIN}/api/cms/game/prize/pageList`,
  242. data: {
  243. pageNum,
  244. pageSize,
  245. },
  246. headers: {
  247. token: store.state.token,
  248. }
  249. })
  250. if (res.data.code !== 0) {
  251. throw (`获取奖品列表失败:${res.data.msg}`)
  252. } else {
  253. return res.data.data
  254. }
  255. }
  256. export async function getBonusPointRecord() {
  257. const res = await axios({
  258. method: 'get',
  259. url: `${process.env.VUE_APP_DEPLOY_ORIGIN}/api/cms/game/point/getList`,
  260. headers: {
  261. token: store.state.token,
  262. }
  263. })
  264. if (res.data.code !== 0) {
  265. throw (`获取积分记录失败:${res.data.msg}`)
  266. } else {
  267. return res.data.data
  268. }
  269. }
  270. export async function redeem(description, name, phone, prizeId, score, prizeName) {
  271. const res = await axios({
  272. method: 'post',
  273. url: `${process.env.VUE_APP_DEPLOY_ORIGIN}/api/cms/game/prize/redeem`,
  274. headers: {
  275. token: store.state.token,
  276. },
  277. data: {
  278. description,
  279. name,
  280. phone,
  281. prizeId,
  282. score: -1 * score,
  283. prizeName,
  284. }
  285. })
  286. if (res.data.code !== 0) {
  287. throw (`奖品兑换失败:${res.data.msg}`)
  288. } else {
  289. return res.data.data
  290. }
  291. }
  292. export function notifyQuit() {
  293. console.log('小游戏:调用父窗口的goBackSceneFu方法……')
  294. window.parent?.goBackSceneFu()
  295. }