types: 封装通用请求类型,减少重复类型定义

This commit is contained in:
皓月归尘 2024-03-26 17:52:47 +08:00
parent bc1da0b759
commit 09c5f959e2
8 changed files with 61 additions and 79 deletions

View File

@ -1,11 +1,8 @@
import { http } from "@/utils/http";
type Result = {
success: boolean;
data?: {
/** 列表数据 */
list: Array<any>;
};
};
/** 卡片列表 */

View File

@ -1,18 +1,13 @@
import { http } from "@/utils/http";
type Result = {
success: boolean;
data: Array<any>;
};
/** 地图数据 */
export const mapJson = (params?: object) => {
return http.request<Result>("get", "/get-map-info", { params });
return http.request<Array<any>>("get", "/get-map-info", { params });
};
/** 文件上传 */
export const formUpload = data => {
return http.request<Result>(
return http.request<Array<any>>(
"post",
"https://run.mocky.io/v3/3aa761d7-b0b3-4a03-96b3-6168d4f7467b",
{ data },

View File

@ -1,10 +1,6 @@
import { http } from "@/utils/http";
type Result = {
success: boolean;
data: Array<any>;
};
/**动态路由 */
export const getAsyncRoutes = () => {
return http.request<Result>("get", "/get-async-routes");
return http.request<Array<any>>("get", "/get-async-routes");
};

View File

@ -1,13 +1,6 @@
import { http } from "@/utils/http";
type Result = {
success: boolean;
data?: Array<any>;
};
type ResultTable = {
success: boolean;
data?: {
/** 列表数据 */
list: Array<any>;
/** 总条目数 */
@ -16,7 +9,6 @@ type ResultTable = {
pageSize?: number;
/** 当前页数 */
currentPage?: number;
};
};
/** 获取系统管理-用户管理列表 */
@ -26,12 +18,12 @@ export const getUserList = (data?: object) => {
/** 系统管理-用户管理-获取所有角色列表 */
export const getAllRoleList = () => {
return http.request<Result>("get", "/list-all-role");
return http.request<Array<any>>("get", "/list-all-role");
};
/** 系统管理-用户管理-根据userId获取对应角色id列表userId用户id */
export const getRoleIds = (data?: object) => {
return http.request<Result>("post", "/list-role-ids", { data });
return http.request<Array<any>>("post", "/list-role-ids", { data });
};
/** 获取系统管理-角色管理列表 */
@ -41,12 +33,12 @@ export const getRoleList = (data?: object) => {
/** 获取系统管理-菜单管理列表 */
export const getMenuList = (data?: object) => {
return http.request<Result>("post", "/menu", { data });
return http.request<Array<any>>("post", "/menu", { data });
};
/** 获取系统管理-部门管理列表 */
export const getDeptList = (data?: object) => {
return http.request<Result>("post", "/dept", { data });
return http.request<Array<any>>("post", "/dept", { data });
};
/** 获取系统监控-在线用户列表 */
@ -71,15 +63,15 @@ export const getSystemLogsList = (data?: object) => {
/** 获取系统监控-系统日志-根据 id 查日志详情 */
export const getSystemLogsDetail = (data?: object) => {
return http.request<Result>("post", "/system-logs-detail", { data });
return http.request<Array<any>>("post", "/system-logs-detail", { data });
};
/** 获取角色管理-权限-菜单权限 */
export const getRoleMenu = (data?: object) => {
return http.request<Result>("post", "/role-menu", { data });
return http.request<Array<any>>("post", "/role-menu", { data });
};
/** 获取角色管理-权限-菜单权限-根据角色 id 查对应菜单 */
export const getRoleMenuIds = (data?: object) => {
return http.request<Result>("post", "/role-menu-ids", { data });
return http.request<Array<any>>("post", "/role-menu-ids", { data });
};

View File

@ -1,8 +1,6 @@
import { http } from "@/utils/http";
export type UserResult = {
success: boolean;
data: {
/** 用户名 */
username: string;
/** 当前登陆用户的角色 */
@ -13,19 +11,15 @@ export type UserResult = {
refreshToken: string;
/** `accessToken`的过期时间(格式'xxxx/xx/xx xx:xx:xx' */
expires: Date;
};
};
export type RefreshTokenResult = {
success: boolean;
data: {
/** `token` */
accessToken: string;
/** 用于调用刷新`accessToken`的接口时所需的`token` */
refreshToken: string;
/** `accessToken`的过期时间(格式'xxxx/xx/xx xx:xx:xx' */
expires: Date;
};
};
/** 登录 */

View File

@ -52,7 +52,7 @@ export const useUserStore = defineStore({
},
/** 登入 */
async loginByUsername(data) {
return new Promise<UserResult>((resolve, reject) => {
return new Promise<ResponseResult<UserResult>>((resolve, reject) => {
getLogin(data)
.then(data => {
if (data) {
@ -76,7 +76,8 @@ export const useUserStore = defineStore({
},
/** 刷新`token` */
async handRefreshToken(data) {
return new Promise<RefreshTokenResult>((resolve, reject) => {
return new Promise<ResponseResult<RefreshTokenResult>>(
(resolve, reject) => {
refreshTokenApi(data)
.then(data => {
if (data) {
@ -87,7 +88,8 @@ export const useUserStore = defineStore({
.catch(error => {
reject(error);
});
});
}
);
}
}
});

View File

@ -151,7 +151,7 @@ class PureHttp {
url: string,
param?: AxiosRequestConfig,
axiosConfig?: PureHttpRequestConfig
): Promise<T> {
): Promise<ResponseResult<T>> {
const config = {
method,
url,
@ -177,7 +177,7 @@ class PureHttp {
url: string,
params?: AxiosRequestConfig<T>,
config?: PureHttpRequestConfig
): Promise<P> {
): Promise<ResponseResult<P>> {
return this.request<P>("post", url, params, config);
}
@ -186,7 +186,7 @@ class PureHttp {
url: string,
params?: AxiosRequestConfig<T>,
config?: PureHttpRequestConfig
): Promise<P> {
): Promise<ResponseResult<P>> {
return this.request<P>("get", url, params, config);
}
}

6
types/global.d.ts vendored
View File

@ -205,4 +205,10 @@ declare global {
touched?: boolean;
};
}
/**通用请求响应类型 */
interface ResponseResult<T> {
success: boolean;
data?: T;
}
}