4.9更新

This commit is contained in:
hrx 2026-04-09 18:01:25 +08:00
parent 71aba3f929
commit b95d85b229
3 changed files with 82 additions and 22 deletions

View File

@ -1 +1 @@
VITE_API_BASE_URL = 'https://ai.atvoe.com/'
VITE_API_BASE_URL = 'https://opencomputing.ai'

54
src/utlis/cookie.ts Normal file
View File

@ -0,0 +1,54 @@
// utils/cookie.ts
/**
* Cookie
*/
export function getCookie(name: string): string | null {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) {
const raw = parts.pop()?.split(';').shift();
return raw ? decodeURIComponent(raw) : null;
}
return null;
}
/**
* Cookie
* @param name
* @param value
* @param days Cookie
*/
export function setCookie(name: string, value: string, days?: number): void {
let expires = '';
if (days) {
const date = new Date();
date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
expires = `; expires=${date.toUTCString()}`;
}
// 注意:为了安全,实际项目中可根据需要加上 Secure / SameSite 等属性
document.cookie = `${name}=${encodeURIComponent(value)}${expires}; path=/`;
}
/**
* Cookie
*/
export function deleteCookie(name: string): void {
document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`;
}
/**
* Cookie HttpOnly
*/
export function logAllCookies(): void {
console.log('当前可读 Cookie 原始字符串:', document.cookie || '(空)');
if (!document.cookie) return;
const cookies = document.cookie.split('; ').reduce((acc, item) => {
const eqIndex = item.indexOf('=');
const key = item.slice(0, eqIndex);
const value = item.slice(eqIndex + 1);
acc[key] = decodeURIComponent(value);
return acc;
}, {} as Record<string, string>);
console.table(cookies);
}

View File

@ -2,29 +2,35 @@
import axios from 'axios'
import { ElMessage } from 'element-plus'
// import { ElMessage } from 'element-plus'
import { useLoginStore } from '@/store/LoginStore'
const apiBaseURL = import.meta.env.VITE_API_BASE_URL
const shouldIncludeCredentials = (url?: string, baseURL?: string) => {
if (!url) return true
try {
const apiOrigin = new URL(apiBaseURL).origin
const requestOrigin = new URL(url, baseURL || apiBaseURL).origin
return requestOrigin === apiOrigin
} catch {
return true
}
}
// 请求拦截器
// 添加请求拦截器
axios.interceptors.request.use(
function (config) {
// console.log('=== 请求拦截器 ===')
// console.log('请求 URL:', config.url)
console.log('请求 URL:', config)
// console.log('请求方法:', config.method)
// console.log('请求参数 (params):', config.params)
// console.log('请求数据 (data):', config.data)
// console.log('请求头:', config.headers)
config.baseURL = import.meta.env.VITE_API_BASE_URL
const Store = useLoginStore()
if (Store.userInfo && Store.userInfo.user && Store.userInfo.user.id) {
config.headers.Authorization = Store.userInfo.user.id
}
console.log('请求头:', config.headers)
config.baseURL = apiBaseURL
config.withCredentials = shouldIncludeCredentials(config.url, config.baseURL)
return config
},
},
function (error) {
// 对请求错误做些什么
return Promise.reject(error)
@ -37,16 +43,16 @@ axios.interceptors.response.use(
function (response) {
// 放行的状态列表
const allowedStatuses = ['ok', 'PENDING', 'created', 'processing', 'queueing', 'succeeded', 'completed', 'failed'];
// 检查响应数据中的状态
const responseData = response.data;
const status = responseData?.status || responseData?.data?.resposne?.status;
// 如果状态在放行列表中,直接返回
if (status && allowedStatuses.includes(status)) {
return response;
}
// 如果状态不在放行列表中,也返回(兼容其他状态)
return response;
}, function (error) {
@ -59,8 +65,8 @@ axios.interceptors.response.use(
})
}
return Promise.reject(error);
});
const http = <T, D, P>(url: string, data?: D, params?: P, method: 'get' | 'PUT' |'Delete'|'post' = 'get'): Promise<T> => {
});
const http = <T, D, P>(url: string, data?: D, params?: P, method: 'get' | 'PUT' | 'Delete' | 'post' = 'get'): Promise<T> => {
return new Promise((resolve, reject) => {
axios({
method,
@ -100,7 +106,7 @@ export const PUT = <T, D>(url: string, data?: D): Promise<T> => {
export const uploadFile=async(file:File, uploadUrl:string, additionalData: Record<string, string> = {})=> {
export const uploadFile = async (file: File, uploadUrl: string, additionalData: Record<string, string> = {}) => {
const formData = new FormData();
formData.append('file', file); // 'file'是后端接收文件的字段名
@ -116,7 +122,7 @@ export const uploadFile=async(file:File, uploadUrl:string, additionalData: Recor
}
});
console.log("000",response.data);
console.log("000", response.data);
return response.data;
} catch (error) {