feat(ui): 新增请求方法及表格

This commit is contained in:
廖彦棋
2024-03-06 13:55:38 +08:00
parent 06fa54fd25
commit 6399d13a49
19 changed files with 667 additions and 90 deletions

View File

@@ -8,5 +8,9 @@
},
"keywords": [],
"author": "",
"license": "ISC"
"license": "ISC",
"dependencies": {
"axios": "^1.6.7",
"uuid": "^9.0.1"
}
}

View 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;

View 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
View 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
}

View File

@@ -0,0 +1,5 @@
import { v4 as uuidV4 } from "uuid";
export const getUUID = () => {
return uuidV4();
};