useRequest.ts 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. /*
  2. * @Author: fxs bjnsfxs@163.com
  3. * @Date: 2024-08-20 17:24:06
  4. * @LastEditors: fxs bjnsfxs@163.com
  5. * @LastEditTime: 2025-04-07
  6. * @Description:
  7. *
  8. */
  9. import type { AxiosResponse } from 'axios'
  10. import type { ResponseInfo } from '@/types/res'
  11. import { MessageType } from '@/types/res'
  12. import { ElMessage } from 'element-plus'
  13. import BASE_URL from '../../config/api'
  14. import 'element-plus/theme-chalk/el-message.css'
  15. import 'element-plus/theme-chalk/el-message-box.css'
  16. export function useRequest() {
  17. const baseURL = BASE_URL
  18. const AllApi = {
  19. getGameTable: `/user/getGidConfig`, // 获取游戏列表
  20. getUserTable: `/user/userList`, // 获取用户列表
  21. addGame: `/user/addGidConfig`, // 添加/修改 游戏配置
  22. userLogin: `/user/login`, // 登录
  23. addOption: `/user/addUserOption`, // 添加/修改 权限
  24. addUserToBlack: `/user/addUserToBlackList`, // 封禁用户
  25. deleteUserToBlack: `/user/deleteUserToBlackList`, // 解封用户
  26. getInterfaceInfo: `/user/getInterfaceInfo`, // 拿到所有接口的信息
  27. getInterfaceDataByDay: `/user/getInterfaceDataByDay`, //获取接口的请求频次 (按天)
  28. getRefreshToken: `/user/refreshToken`, // 刷新token
  29. getOverViewData: `/user/overview`, // 总览数据
  30. // 数据分析相关URL
  31. timeDistributionData: `/user/timeDistributionData`, //用户概览 -时段分布
  32. userSummary: `/user/summary`, //用户概览 -总览
  33. userMouthDistributionData: `/user/mouthDistributionData`, //用户概览 -30日趋势
  34. userTrendsOverview: `/user/userTrendsOverview`, //用户趋势 -总览
  35. userDataTrades: `/user/dataTrades`, //用户趋势 -数据趋势
  36. userDataTradesDetail: `/user/dataTradesDetail`, //用户趋势 -数据趋势详情
  37. userRemainDataBydDay: `/user/remainDataBydDay`, //用户留存数据
  38. userBehaviorList: `/user/behaviorList`, // 用户行为
  39. userBehaviorPieChart: `/user/behaviorListCake`, // 用户行为饼图数据
  40. userAdRelatedList: `/user/adRelatedList`, // 广告用户数据
  41. // 事件相关
  42. // 事件
  43. gameActionList: `/user/gameActionList`, // 游戏事件列表
  44. gameActionDetail: `/user/gameActionDetail`, // 事件详情
  45. updateGameAction: `/user/updateGameAction`, // 更新游戏事件
  46. setGameAction: `/user/setGameAction`, // 新增事件
  47. // 事件参数
  48. gameActionOptionList: `/user/gameActionOptionList`, // 获取事件参数列表
  49. addGameActionOption: `/user/addGameActionOption`, // 新增事件参数
  50. updateGameActionOption: `/user/updateGameActionOption`, // 更新事件参数
  51. deleteGameActionOption: `/user/deleteGameActionOption`, // 删除事件参数
  52. // 事件分析
  53. userActionDetailDistribution: `/user/userActionDetailDistribution`, // 事件统计趋势图
  54. userActionDetail: `/user/userActionDetail`, // 事件统计详情
  55. userActionList: `/user/userActionList`, // 游戏事件统计列表
  56. userActionListExpand: `/user/userActionOptionList`, // 事件选项统计详情
  57. // 用户转化条件
  58. gameConditionList: `/user/gameConditionList`, // 广告列表
  59. setGameCondition: `/user/setGameCondition`, // 编辑游戏用户转化条件
  60. // 广告数据
  61. userAdsOverview: `/user/userAdsOverview`, // 用户广告数据总览
  62. userAdsDaily: `/user/userAdsDaily`, // 广告每日数据曲线
  63. userAdsDetail: `/user/userAdsDetail`, // 广告数据列表
  64. adListChart: `/user/userAdsCake`, // 广告列表图表数据
  65. // 文件管理
  66. fileList: `/file/fileList`, // 文件列表
  67. fileUploadToServer: `/upload`, // 上传到服务器
  68. fileUploadToTencent: `/file/localFileToService`, // 上传到腾讯云
  69. fileManageDeleteFile: `/file/fileDelete` // 删除文件
  70. }
  71. /**
  72. * @description: 根据返回码给出提示
  73. * @param data 返回的数据
  74. * @param kind 提示类型
  75. * @param showMsg 是否显示提示
  76. */
  77. const analysisResCode = (
  78. data: AxiosResponse,
  79. kind = '请求',
  80. showMsg = true
  81. ): Promise<ResponseInfo> => {
  82. return new Promise((resolve, reject) => {
  83. const info = JSON.parse(JSON.stringify(data)) as ResponseInfo
  84. let type: MessageType = MessageType.Success
  85. let message = info.msg
  86. const kindText = kind === 'login' ? '登录' : '请求'
  87. switch (info.code) {
  88. case 0:
  89. {
  90. type = MessageType.Success
  91. message = `${kindText}成功`
  92. resolve(info)
  93. }
  94. break
  95. default: {
  96. type = MessageType.Error
  97. reject(info.msg)
  98. }
  99. }
  100. if (showMsg) {
  101. ElMessage({
  102. type,
  103. message,
  104. duration: 1000
  105. })
  106. }
  107. })
  108. }
  109. return {
  110. AllApi,
  111. baseURL,
  112. analysisResCode
  113. }
  114. }