Merge pull request #79 from cshaptx4869/patch-41

refactor: ♻️ 优化axios响应数据TS类型提示
This commit is contained in:
Ray Hao
2024-05-02 19:51:26 +08:00
committed by GitHub
8 changed files with 54 additions and 64 deletions

View File

@@ -1,5 +1,4 @@
import request from "@/utils/request";
import { AxiosPromise } from "axios";
import { CaptchaResult, LoginData, LoginResult } from "./types";
/**
@@ -8,13 +7,13 @@ import { CaptchaResult, LoginData, LoginResult } from "./types";
* @param data {LoginData}
* @returns
*/
export function loginApi(data: LoginData): AxiosPromise<LoginResult> {
export function loginApi(data: LoginData) {
const formData = new FormData();
formData.append("username", data.username);
formData.append("password", data.password);
formData.append("captchaKey", data.captchaKey || "");
formData.append("captchaCode", data.captchaCode || "");
return request({
return request<any, ResponseData<LoginResult>>({
url: "/api/v1/auth/login",
method: "post",
data: formData,
@@ -37,8 +36,8 @@ export function logoutApi() {
/**
* 获取验证码
*/
export function getCaptchaApi(): AxiosPromise<CaptchaResult> {
return request({
export function getCaptchaApi() {
return request<any, ResponseData<CaptchaResult>>({
url: "/api/v1/auth/captcha",
method: "get",
});

View File

@@ -1,5 +1,4 @@
import request from "@/utils/request";
import { AxiosPromise } from "axios";
import { DeptForm, DeptQuery, DeptVO } from "./types";
/**
@@ -7,8 +6,8 @@ import { DeptForm, DeptQuery, DeptVO } from "./types";
*
* @param queryParams
*/
export function listDepts(queryParams?: DeptQuery): AxiosPromise<DeptVO[]> {
return request({
export function listDepts(queryParams?: DeptQuery) {
return request<any, ResponseData<DeptVO[]>>({
url: "/api/v1/dept",
method: "get",
params: queryParams,
@@ -18,8 +17,8 @@ export function listDepts(queryParams?: DeptQuery): AxiosPromise<DeptVO[]> {
/**
* 部门下拉列表
*/
export function getDeptOptions(): AxiosPromise<OptionType[]> {
return request({
export function getDeptOptions() {
return request<any, ResponseData<OptionType[]>>({
url: "/api/v1/dept/options",
method: "get",
});
@@ -30,8 +29,8 @@ export function getDeptOptions(): AxiosPromise<OptionType[]> {
*
* @param id
*/
export function getDeptForm(id: number): AxiosPromise<DeptForm> {
return request({
export function getDeptForm(id: number) {
return request<any, ResponseData<DeptForm>>({
url: "/api/v1/dept/" + id + "/form",
method: "get",
});

View File

@@ -1,5 +1,4 @@
import request from "@/utils/request";
import { AxiosPromise } from "axios";
import {
DictTypeQuery,
DictTypePageResult,
@@ -14,10 +13,8 @@ import {
*
* @param queryParams
*/
export function getDictTypePage(
queryParams: DictTypeQuery
): AxiosPromise<DictTypePageResult> {
return request({
export function getDictTypePage(queryParams: DictTypeQuery) {
return request<any, ResponseData<DictTypePageResult>>({
url: "/api/v1/dict/types/page",
method: "get",
params: queryParams,
@@ -29,8 +26,8 @@ export function getDictTypePage(
*
* @param id
*/
export function getDictTypeForm(id: number): AxiosPromise<DictTypeForm> {
return request({
export function getDictTypeForm(id: number) {
return request<any, ResponseData<DictTypeForm>>({
url: "/api/v1/dict/types/" + id + "/form",
method: "get",
});
@@ -78,8 +75,8 @@ export function deleteDictTypes(ids: string) {
*
* @param typeCode 字典类型编码
*/
export function getDictOptions(typeCode: string): AxiosPromise<OptionType[]> {
return request({
export function getDictOptions(typeCode: string) {
return request<any, ResponseData<OptionType[]>>({
url: "/api/v1/dict/" + typeCode + "/options",
method: "get",
});
@@ -88,10 +85,8 @@ export function getDictOptions(typeCode: string): AxiosPromise<OptionType[]> {
/**
* 字典分页列表
*/
export function getDictPage(
queryParams: DictQuery
): AxiosPromise<DictPageResult> {
return request({
export function getDictPage(queryParams: DictQuery) {
return request<any, ResponseData<DictPageResult>>({
url: "/api/v1/dict/page",
method: "get",
params: queryParams,
@@ -103,8 +98,8 @@ export function getDictPage(
*
* @param id
*/
export function getDictFormData(id: number): AxiosPromise<DictForm> {
return request({
export function getDictFormData(id: number) {
return request<any, ResponseData<DictForm>>({
url: "/api/v1/dict/" + id + "/form",
method: "get",
});

View File

@@ -1,5 +1,4 @@
import request from "@/utils/request";
import { AxiosPromise } from "axios";
import { FileInfo } from "./types";
/**
@@ -7,10 +6,10 @@ import { FileInfo } from "./types";
*
* @param file
*/
export function uploadFileApi(file: File): AxiosPromise<FileInfo> {
export function uploadFileApi(file: File) {
const formData = new FormData();
formData.append("file", file);
return request({
return request<any, ResponseData<FileInfo>>({
url: "/api/v1/files",
method: "post",
data: formData,

View File

@@ -1,12 +1,12 @@
import request from "@/utils/request";
import { AxiosPromise } from "axios";
import type { RouteRecordRaw } from "vue-router";
import { MenuQuery, MenuVO, MenuForm } from "./types";
/**
* 获取路由列表
*/
export function listRoutes() {
return request({
return request<any, ResponseData<RouteRecordRaw[]>>({
url: "/api/v1/menus/routes",
method: "get",
});
@@ -17,8 +17,8 @@ export function listRoutes() {
*
* @param queryParams
*/
export function listMenus(queryParams: MenuQuery): AxiosPromise<MenuVO[]> {
return request({
export function listMenus(queryParams: MenuQuery) {
return request<any, ResponseData<MenuVO[]>>({
url: "/api/v1/menus",
method: "get",
params: queryParams,
@@ -28,8 +28,8 @@ export function listMenus(queryParams: MenuQuery): AxiosPromise<MenuVO[]> {
/**
* 获取菜单下拉树形列表
*/
export function getMenuOptions(): AxiosPromise<OptionType[]> {
return request({
export function getMenuOptions() {
return request<any, ResponseData<OptionType[]>>({
url: "/api/v1/menus/options",
method: "get",
});
@@ -40,8 +40,8 @@ export function getMenuOptions(): AxiosPromise<OptionType[]> {
*
* @param id
*/
export function getMenuForm(id: number): AxiosPromise<MenuForm> {
return request({
export function getMenuForm(id: number) {
return request<any, ResponseData<MenuForm>>({
url: "/api/v1/menus/" + id + "/form",
method: "get",
});

View File

@@ -1,5 +1,4 @@
import request from "@/utils/request";
import { AxiosPromise } from "axios";
import { RoleQuery, RolePageResult, RoleForm } from "./types";
/**
@@ -7,10 +6,8 @@ import { RoleQuery, RolePageResult, RoleForm } from "./types";
*
* @param queryParams
*/
export function getRolePage(
queryParams?: RoleQuery
): AxiosPromise<RolePageResult> {
return request({
export function getRolePage(queryParams?: RoleQuery) {
return request<any, ResponseData<RolePageResult>>({
url: "/api/v1/roles/page",
method: "get",
params: queryParams,
@@ -22,10 +19,8 @@ export function getRolePage(
*
* @param queryParams
*/
export function getRoleOptions(
queryParams?: RoleQuery
): AxiosPromise<OptionType[]> {
return request({
export function getRoleOptions(queryParams?: RoleQuery) {
return request<any, ResponseData<OptionType[]>>({
url: "/api/v1/roles/options",
method: "get",
params: queryParams,
@@ -37,8 +32,8 @@ export function getRoleOptions(
*
* @param queryParams
*/
export function getRoleMenuIds(roleId: number): AxiosPromise<number[]> {
return request({
export function getRoleMenuIds(roleId: number) {
return request<any, ResponseData<number[]>>({
url: "/api/v1/roles/" + roleId + "/menuIds",
method: "get",
});
@@ -49,10 +44,7 @@ export function getRoleMenuIds(roleId: number): AxiosPromise<number[]> {
*
* @param queryParams
*/
export function updateRoleMenus(
roleId: number,
data: number[]
): AxiosPromise<any> {
export function updateRoleMenus(roleId: number, data: number[]) {
return request({
url: "/api/v1/roles/" + roleId + "/menus",
method: "put",
@@ -65,8 +57,8 @@ export function updateRoleMenus(
*
* @param id
*/
export function getRoleForm(id: number): AxiosPromise<RoleForm> {
return request({
export function getRoleForm(id: number) {
return request<any, ResponseData<RoleForm>>({
url: "/api/v1/roles/" + id + "/form",
method: "get",
});

View File

@@ -1,12 +1,11 @@
import request from "@/utils/request";
import { AxiosPromise } from "axios";
import { UserForm, UserInfo, UserPageVO, UserQuery } from "./types";
/**
* 登录成功后获取用户信息(昵称、头像、权限集合和角色集合)
*/
export function getUserInfoApi(): AxiosPromise<UserInfo> {
return request({
export function getUserInfoApi() {
return request<any, ResponseData<UserInfo>>({
url: "/api/v1/users/me",
method: "get",
});
@@ -17,10 +16,8 @@ export function getUserInfoApi(): AxiosPromise<UserInfo> {
*
* @param queryParams
*/
export function getUserPage(
queryParams: UserQuery
): AxiosPromise<PageResult<UserPageVO[]>> {
return request({
export function getUserPage(queryParams: UserQuery) {
return request<any, ResponseData<PageResult<UserPageVO[]>>>({
url: "/api/v1/users/page",
method: "get",
params: queryParams,
@@ -32,8 +29,8 @@ export function getUserPage(
*
* @param userId
*/
export function getUserForm(userId: number): AxiosPromise<UserForm> {
return request({
export function getUserForm(userId: number) {
return request<any, ResponseData<UserForm>>({
url: "/api/v1/users/" + userId + "/form",
method: "get",
});

View File

@@ -1,4 +1,13 @@
declare global {
/**
* 响应数据
*/
interface ResponseData<T = any> {
code: string;
data: T;
msg: string;
}
/**
* 分页查询参数
*/