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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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