useRequest.ts 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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-02 15:38:34
  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. // mockKeep: `http://127.0.0.1:8003/mockKeep`,
  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. const analysisResCode = (data: AxiosResponse, kind?: string): Promise<ResponseInfo> => {
  43. return new Promise((resolve, reject) => {
  44. let info = JSON.parse(JSON.stringify(data)) as ResponseInfo
  45. let type: MessageType = MessageType.Success
  46. let message = info.msg
  47. let kindText = kind === 'login' ? '登录' : '请求'
  48. switch (info.code) {
  49. case 0:
  50. {
  51. type = MessageType.Success
  52. message = `${kindText}成功`
  53. resolve(info)
  54. }
  55. break
  56. default: {
  57. type = MessageType.Error
  58. reject(info.msg)
  59. }
  60. }
  61. ElMessage({
  62. type,
  63. message,
  64. duration: 1000
  65. })
  66. })
  67. }
  68. return {
  69. AllApi,
  70. analysisResCode
  71. }
  72. }