|
@@ -0,0 +1,127 @@
|
|
|
|
+/**
|
|
|
|
+ * API配置管理
|
|
|
|
+ * 统一管理所有API相关的URL配置,避免在多个地方重复修改
|
|
|
|
+ */
|
|
|
|
+
|
|
|
|
+// 环境配置
|
|
|
|
+const isDev = import.meta.env.DEV;
|
|
|
|
+const isProd = import.meta.env.PROD;
|
|
|
|
+
|
|
|
|
+// 基础API地址配置
|
|
|
|
+const API_CONFIG = {
|
|
|
|
+ // 开发环境
|
|
|
|
+ development: import.meta.env.VITE_APP_BASE_API,
|
|
|
|
+ // 生产环境
|
|
|
|
+ production: 'http://meet2.sportsrobo.club:8080',
|
|
|
|
+ // 测试环境
|
|
|
|
+ test: 'http://192.168.1.126:8080',
|
|
|
|
+ // 本地环境
|
|
|
|
+ local: 'http://localhost:8080'
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+// 获取当前环境的API基础地址
|
|
|
|
+export const getBaseURL = (): string => {
|
|
|
|
+ // 优先使用环境变量中的配置
|
|
|
|
+ if (import.meta.env.VITE_APP_BASE_API) {
|
|
|
|
+ return import.meta.env.VITE_APP_BASE_API;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 根据环境自动选择
|
|
|
|
+ if (isDev) {
|
|
|
|
+ return API_CONFIG.development;
|
|
|
|
+ } else if (isProd) {
|
|
|
|
+ return API_CONFIG.production;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 默认返回开发环境配置
|
|
|
|
+ return API_CONFIG.development;
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+// 导出基础URL
|
|
|
|
+export const BASE_URL = getBaseURL();
|
|
|
|
+
|
|
|
|
+// 常用API端点
|
|
|
|
+export const API_ENDPOINTS = {
|
|
|
|
+ // 文件上传相关
|
|
|
|
+ UPLOAD: '/resource/oss/upload',
|
|
|
|
+ UPLOAD_COMMON: '/common/upload',
|
|
|
|
+ DOWNLOAD: '/resource/oss/download',
|
|
|
|
+
|
|
|
|
+ // 系统相关
|
|
|
|
+ USER_IMPORT: '/system/user/importData',
|
|
|
|
+ GAME_TEAM_IMPORT: '/system/gameTeam/import',
|
|
|
|
+ GAME_ATHLETE_IMPORT: '/system/gameAthlete/import',
|
|
|
|
+ ENROLL_IMPORT: '/system/enroll/importData',
|
|
|
|
+
|
|
|
|
+ // WebSocket和SSE
|
|
|
|
+ WEBSOCKET: '/resource/websocket',
|
|
|
|
+ SSE: '/resource/sse',
|
|
|
|
+
|
|
|
|
+ // 工作流
|
|
|
|
+ WORKFLOW_UI: '/warm-flow-ui/index.html'
|
|
|
|
+} as const;
|
|
|
|
+
|
|
|
|
+// 获取完整的API URL
|
|
|
|
+export const getApiUrl = (endpoint: string): string => {
|
|
|
|
+ return `${BASE_URL}${endpoint}`;
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+// 获取上传URL
|
|
|
|
+export const getUploadUrl = (type: 'oss' | 'common' = 'oss'): string => {
|
|
|
|
+ const endpoint = type === 'oss' ? API_ENDPOINTS.UPLOAD : API_ENDPOINTS.UPLOAD_COMMON;
|
|
|
|
+ return getApiUrl(endpoint);
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+// 获取下载URL
|
|
|
|
+export const getDownloadUrl = (filePath: string): string => {
|
|
|
|
+ return getApiUrl(`${API_ENDPOINTS.DOWNLOAD}/${filePath}`);
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+// 获取文件完整URL
|
|
|
|
+export const getFileUrl = (filePath: string): string => {
|
|
|
|
+ if (filePath.startsWith('http')) {
|
|
|
|
+ return filePath;
|
|
|
|
+ }
|
|
|
|
+ return `${BASE_URL}${filePath}`;
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+// 获取工作流URL
|
|
|
|
+export const getWorkflowUrl = (id: string, disabled: boolean = false, type: string = 'FlowChart'): string => {
|
|
|
|
+ const params = new URLSearchParams({
|
|
|
|
+ id,
|
|
|
|
+ disabled: disabled.toString(),
|
|
|
|
+ type,
|
|
|
|
+ t: Date.now().toString()
|
|
|
|
+ });
|
|
|
|
+ return getApiUrl(`${API_ENDPOINTS.WORKFLOW_UI}?${params.toString()}`);
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+// 导出配置对象,方便调试
|
|
|
|
+export const API_CONFIG_DEBUG = {
|
|
|
|
+ currentEnv: isDev ? 'development' : 'production',
|
|
|
|
+ baseURL: BASE_URL,
|
|
|
|
+ endpoints: API_ENDPOINTS,
|
|
|
|
+ isDev,
|
|
|
|
+ isProd,
|
|
|
|
+ envVars: {
|
|
|
|
+ VITE_APP_BASE_API: import.meta.env.VITE_APP_BASE_API,
|
|
|
|
+ VITE_APP_CLIENT_ID: import.meta.env.VITE_APP_CLIENT_ID
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+// 在开发环境下打印环境信息
|
|
|
|
+if (isDev) {
|
|
|
|
+ console.log(' API配置信息:', API_CONFIG_DEBUG);
|
|
|
|
+ console.log(' 当前使用的API地址:', BASE_URL);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// 手动切换环境的函数(仅用于调试)
|
|
|
|
+export const switchEnvironment = (env: 'development' | 'production' | 'test' | 'local') => {
|
|
|
|
+ if (isDev) {
|
|
|
|
+ console.warn(' 手动切换环境仅用于调试,实际部署时请使用环境变量');
|
|
|
|
+ const newBaseURL = API_CONFIG[env];
|
|
|
|
+ console.log(` 切换到 ${env} 环境:`, newBaseURL);
|
|
|
|
+ return newBaseURL;
|
|
|
|
+ }
|
|
|
|
+ return BASE_URL;
|
|
|
|
+};
|