useRequest.ts 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /*
  2. * @Author: fxs bjnsfxs@163.com
  3. * @Date: 2024-08-20 17:24:06
  4. * @LastEditors: fxs bjnsfxs@163.com
  5. * @LastEditTime: 2024-09-05 17:12:43
  6. * @FilePath: \Game-Backstage-Management-System\src\hooks\useRequest.ts
  7. * @Description:
  8. *
  9. */
  10. import { ElMessage } from 'element-plus'
  11. import 'element-plus/theme-chalk/el-message.css'
  12. import 'element-plus/theme-chalk/el-message-box.css'
  13. import { MessageType } from '@/types/res'
  14. import type { AxiosResponse } from 'axios'
  15. import type { ResponseInfo } from '@/types/res'
  16. export function useRequest() {
  17. // const baseIp = 'http://server.ichunhao.cn' // 线上
  18. const baseIp = 'http://192.168.1.139:8000' // 本地
  19. const AllApi = {
  20. // mock: `http://127.0.0.1:8003/mock`,
  21. mockEvent: `http://127.0.0.1:8003/mockEvent`,
  22. getGameTable: `${baseIp}/user/getGidConfig`, // 获取游戏列表
  23. getUserTable: `${baseIp}/user/userList`, // 获取用户列表
  24. addGame: `${baseIp}/user/addGidConfig`, // 添加/修改 游戏配置
  25. userLogin: `${baseIp}/user/login`, // 登录
  26. addOption: `${baseIp}/user/addUserOption`, // 添加/修改 权限
  27. addUserToBlack: `${baseIp}/user/addUserToBlackList`, // 封禁用户
  28. deleteUserToBlack: `${baseIp}/user/deleteUserToBlackList`, // 解封用户
  29. getInterfaceInfo: `${baseIp}/user/getInterfaceInfo`, // 拿到所有接口的信息
  30. getInterfaceDataByDay: `${baseIp}/user/getInterfaceDataByDay`, //获取接口的请求频次 (按天)
  31. gerRefreshToken: `${baseIp}/user/refreshToken`, // 刷新token
  32. getOverViewData: `${baseIp}/user/overview`, // 总览数据
  33. // 数据分析相关URL
  34. timeDistributionData: `${baseIp}/user/timeDistributionData`, //用户概览 -时段分布
  35. userSummary: `${baseIp}/user/summary`, //用户概览 -总览
  36. userMouthDistributionData: `${baseIp}/user/mouthDistributionData`, //用户概览 -30日趋势
  37. userTrendsOverview: `${baseIp}/user/userTrendsOverview`, //用户趋势 -总览
  38. userDataTrades: `${baseIp}/user/dataTrades`, //用户趋势 -数据趋势
  39. userDataTradesDetail: `${baseIp}/user/dataTradesDetail`, //用户趋势 -数据趋势详情
  40. userRemainDataBydDay: `${baseIp}/user/remainDataBydDay`, //用户留存数据
  41. // 事件相关
  42. gameActionList: `${baseIp}/user/gameActionList`, // 游戏事件列表
  43. gameActionDetail: `${baseIp}/user/gameActionDetail`, // 事件详情
  44. updateGameAction: `${baseIp}/user/updateGameAction`, // 更新游戏事件
  45. gameActionOptionList: `${baseIp}/user/gameActionOptionList`, // 获取事件参数列表
  46. addGameActionOption: `${baseIp}/user/addGameActionOption`, // 新增事件参数
  47. updateGameActionOption: `${baseIp}/user/updateGameActionOption`, // 更新事件参数
  48. deleteGameActionOption: `${baseIp}/user/deleteGameActionOption` // 删除事件参数
  49. }
  50. const analysisResCode = (data: AxiosResponse, kind?: string): Promise<ResponseInfo> => {
  51. return new Promise((resolve, reject) => {
  52. let info = JSON.parse(JSON.stringify(data)) as ResponseInfo
  53. let type: MessageType = MessageType.Success
  54. let message = info.msg
  55. let kindText = kind === 'login' ? '登录' : '请求'
  56. switch (info.code) {
  57. case 0:
  58. {
  59. type = MessageType.Success
  60. message = `${kindText}成功`
  61. resolve(info)
  62. }
  63. break
  64. default: {
  65. type = MessageType.Error
  66. reject(info.msg)
  67. }
  68. }
  69. ElMessage({
  70. type,
  71. message,
  72. duration: 1000
  73. })
  74. })
  75. }
  76. return {
  77. AllApi,
  78. analysisResCode
  79. }
  80. }