/* * @Author: fxs bjnsfxs@163.com * @Date: 2024-08-20 17:24:06 * @LastEditors: fxs bjnsfxs@163.com * @LastEditTime: 2024-10-10 12:08:47 * @FilePath: \Game-Backstage-Management-System\src\hooks\useRequest.ts * @Description: * */ import type { AxiosResponse } from 'axios' import type { ResponseInfo } from '@/types/res' import { ElMessage } from 'element-plus' import { MessageType } from '@/types/res' import 'element-plus/theme-chalk/el-message.css' import 'element-plus/theme-chalk/el-message-box.css' export function useRequest() { let baseURL = '' if (import.meta.env.MODE === 'development') { baseURL = 'http://server.ichunhao.cn' } else { baseURL = 'http://service.ichunhao.cn' } const AllApi = { // mock: `http://127.0.0.1:8003/mock`, mockEvent: `http://127.0.0.1:8003/mockEvent`, mockTest: `http://127.0.0.1:8003/test`, getGameTable: `/user/getGidConfig`, // 获取游戏列表 getUserTable: `/user/userList`, // 获取用户列表 addGame: `/user/addGidConfig`, // 添加/修改 游戏配置 userLogin: `/user/login`, // 登录 addOption: `/user/addUserOption`, // 添加/修改 权限 addUserToBlack: `/user/addUserToBlackList`, // 封禁用户 deleteUserToBlack: `/user/deleteUserToBlackList`, // 解封用户 getInterfaceInfo: `/user/getInterfaceInfo`, // 拿到所有接口的信息 getInterfaceDataByDay: `/user/getInterfaceDataByDay`, //获取接口的请求频次 (按天) getRefreshToken: `/user/refreshToken`, // 刷新token getOverViewData: `/user/overview`, // 总览数据 // 数据分析相关URL timeDistributionData: `/user/timeDistributionData`, //用户概览 -时段分布 userSummary: `/user/summary`, //用户概览 -总览 userMouthDistributionData: `/user/mouthDistributionData`, //用户概览 -30日趋势 userTrendsOverview: `/user/userTrendsOverview`, //用户趋势 -总览 userDataTrades: `/user/dataTrades`, //用户趋势 -数据趋势 userDataTradesDetail: `/user/dataTradesDetail`, //用户趋势 -数据趋势详情 userRemainDataBydDay: `/user/remainDataBydDay`, //用户留存数据 // 事件相关 // 事件 gameActionList: `/user/gameActionList`, // 游戏事件列表 gameActionDetail: `/user/gameActionDetail`, // 事件详情 updateGameAction: `/user/updateGameAction`, // 更新游戏事件 setGameAction: `/user/setGameAction`, // 新增事件 // 事件参数 gameActionOptionList: `/user/gameActionOptionList`, // 获取事件参数列表 addGameActionOption: `/user/addGameActionOption`, // 新增事件参数 updateGameActionOption: `/user/updateGameActionOption`, // 更新事件参数 deleteGameActionOption: `/user/deleteGameActionOption`, // 删除事件参数 // 事件分析 userActionDetailDistribution: `/user/userActionDetailDistribution`, // 事件统计趋势图 userActionDetail: `/user/userActionDetail`, // 事件统计详情 userActionList: `/user/userActionList` // 游戏事件统计列表 } /** * @description: 根据返回码给出提示 * @param {AxiosResponse} data 返回的数据 * @param {string} kind 请求类型 * @return {*} */ const analysisResCode = ( data: AxiosResponse, kind = '请求', showMsg = true ): Promise => { return new Promise((resolve, reject) => { let info = JSON.parse(JSON.stringify(data)) as ResponseInfo let type: MessageType = MessageType.Success let message = info.msg let kindText = kind === 'login' ? '登录' : '请求' switch (info.code) { case 0: { type = MessageType.Success message = `${kindText}成功` resolve(info) } break default: { type = MessageType.Error reject(info.msg) } } if (showMsg) { ElMessage({ type, message, duration: 1000 }) } }) } return { AllApi, baseURL, analysisResCode } }