mirror of
https://github.com/yangjian102621/geekai.git
synced 2025-12-28 02:55:58 +08:00
feat(ui): 新增请求方法及表格
This commit is contained in:
@@ -8,5 +8,9 @@
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC"
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"axios": "^1.6.7",
|
||||
"uuid": "^9.0.1"
|
||||
}
|
||||
}
|
||||
|
||||
28
gpt-vue/packages/request/index.ts
Normal file
28
gpt-vue/packages/request/index.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import axios from "axios";
|
||||
import tokenHandler from "./token";
|
||||
|
||||
const { _tokenData, refreshToken, setCurRequest } = tokenHandler();
|
||||
|
||||
const createInstance = (baseURL: string = (import.meta as any).env.VITE_PROXY_BASE_URL) => {
|
||||
|
||||
const instance = axios.create({
|
||||
baseURL,
|
||||
timeout: 10000,
|
||||
withCredentials: true,
|
||||
});
|
||||
|
||||
instance.interceptors.request.use((config) => {
|
||||
if (config.url !== _tokenData.get("lastRequest")) {
|
||||
refreshToken();
|
||||
}
|
||||
if (config.method === "post") {
|
||||
setCurRequest(config.url);
|
||||
config.headers["request-id"] = _tokenData.get("__token");
|
||||
}
|
||||
return config;
|
||||
});
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
export default createInstance;
|
||||
13
gpt-vue/packages/request/token.ts
Normal file
13
gpt-vue/packages/request/token.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import { getUUID } from "../utils";
|
||||
|
||||
const _tokenData = new Map();
|
||||
export default function tokenHandler() {
|
||||
const refreshToken = () => {
|
||||
_tokenData.set("__token", getUUID());
|
||||
_tokenData.set("lastRequest", null);
|
||||
};
|
||||
const setCurRequest = (curRequest?: string) => {
|
||||
_tokenData.set("lastRequest", curRequest);
|
||||
};
|
||||
return { _tokenData, refreshToken, setCurRequest };
|
||||
}
|
||||
14
gpt-vue/packages/type.d.ts
vendored
Normal file
14
gpt-vue/packages/type.d.ts
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
export interface BaseResponse<T> {
|
||||
code: number;
|
||||
data?: T;
|
||||
message?: string;
|
||||
}
|
||||
|
||||
export interface ListResponse<T = Record<string, unknown>> {
|
||||
items: T[];
|
||||
page: number;
|
||||
page_size: number;
|
||||
total: number;
|
||||
total_page: number
|
||||
}
|
||||
|
||||
5
gpt-vue/packages/utils/index.ts
Normal file
5
gpt-vue/packages/utils/index.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
import { v4 as uuidV4 } from "uuid";
|
||||
|
||||
export const getUUID = () => {
|
||||
return uuidV4();
|
||||
};
|
||||
Reference in New Issue
Block a user