useRequest.ts 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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-11 15:46:58
  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://service.ichunhao.cn' // 正式库
  19. // const baseIp = 'http://192.168.1.139:8000' // 本地
  20. const AllApi = {
  21. // mock: `http://127.0.0.1:8003/mock`,
  22. mockEvent: `http://127.0.0.1:8003/mockEvent`,
  23. mockDate: `http://127.0.0.1:8003/mockDate`,
  24. getGameTable: `${baseIp}/user/getGidConfig`, // 获取游戏列表
  25. getUserTable: `${baseIp}/user/userList`, // 获取用户列表
  26. addGame: `${baseIp}/user/addGidConfig`, // 添加/修改 游戏配置
  27. userLogin: `${baseIp}/user/login`, // 登录
  28. addOption: `${baseIp}/user/addUserOption`, // 添加/修改 权限
  29. addUserToBlack: `${baseIp}/user/addUserToBlackList`, // 封禁用户
  30. deleteUserToBlack: `${baseIp}/user/deleteUserToBlackList`, // 解封用户
  31. getInterfaceInfo: `${baseIp}/user/getInterfaceInfo`, // 拿到所有接口的信息
  32. getInterfaceDataByDay: `${baseIp}/user/getInterfaceDataByDay`, //获取接口的请求频次 (按天)
  33. gerRefreshToken: `${baseIp}/user/refreshToken`, // 刷新token
  34. getOverViewData: `${baseIp}/user/overview`, // 总览数据
  35. // 数据分析相关URL
  36. timeDistributionData: `${baseIp}/user/timeDistributionData`, //用户概览 -时段分布
  37. userSummary: `${baseIp}/user/summary`, //用户概览 -总览
  38. userMouthDistributionData: `${baseIp}/user/mouthDistributionData`, //用户概览 -30日趋势
  39. userTrendsOverview: `${baseIp}/user/userTrendsOverview`, //用户趋势 -总览
  40. userDataTrades: `${baseIp}/user/dataTrades`, //用户趋势 -数据趋势
  41. userDataTradesDetail: `${baseIp}/user/dataTradesDetail`, //用户趋势 -数据趋势详情
  42. userRemainDataBydDay: `${baseIp}/user/remainDataBydDay`, //用户留存数据
  43. // 事件相关
  44. // 事件
  45. gameActionList: `${baseIp}/user/gameActionList`, // 游戏事件列表
  46. gameActionDetail: `${baseIp}/user/gameActionDetail`, // 事件详情
  47. updateGameAction: `${baseIp}/user/updateGameAction`, // 更新游戏事件
  48. setGameAction: `${baseIp}/user/setGameAction`, // 新增事件
  49. // 事件参数
  50. gameActionOptionList: `${baseIp}/user/gameActionOptionList`, // 获取事件参数列表
  51. addGameActionOption: `${baseIp}/user/addGameActionOption`, // 新增事件参数
  52. updateGameActionOption: `${baseIp}/user/updateGameActionOption`, // 更新事件参数
  53. deleteGameActionOption: `${baseIp}/user/deleteGameActionOption`, // 删除事件参数
  54. // 事件分析
  55. userActionDetailDistribution: `${baseIp}/user/userActionDetailDistribution`, // 事件统计趋势图
  56. userActionDetail: `${baseIp}/user/userActionDetail`, // 事件统计详情
  57. userActionList: `${baseIp}/user/userActionList` // 游戏事件统计列表
  58. }
  59. const analysisResCode = (data: AxiosResponse, kind?: string): Promise<ResponseInfo> => {
  60. return new Promise((resolve, reject) => {
  61. let info = JSON.parse(JSON.stringify(data)) as ResponseInfo
  62. let type: MessageType = MessageType.Success
  63. let message = info.msg
  64. let kindText = kind === 'login' ? '登录' : '请求'
  65. switch (info.code) {
  66. case 0:
  67. {
  68. type = MessageType.Success
  69. message = `${kindText}成功`
  70. resolve(info)
  71. }
  72. break
  73. default: {
  74. type = MessageType.Error
  75. reject(info.msg)
  76. }
  77. }
  78. ElMessage({
  79. type,
  80. message,
  81. duration: 1000
  82. })
  83. })
  84. }
  85. return {
  86. AllApi,
  87. analysisResCode
  88. }
  89. }