From 7443ac3ac49063e979a34a05c9db55d60b4ce96d Mon Sep 17 00:00:00 2001 From: pan <13329870472@163.com> Date: Fri, 15 Mar 2024 18:02:19 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E9=80=9A=E7=94=A8CRUD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/utils.ts | 79 +++++++++++++++++++++++++---------------- src/utils/http/index.ts | 17 +++++++++ 2 files changed, 66 insertions(+), 30 deletions(-) diff --git a/src/api/utils.ts b/src/api/utils.ts index a434ae6..68d28c9 100644 --- a/src/api/utils.ts +++ b/src/api/utils.ts @@ -1,39 +1,58 @@ import { http } from "@/utils/http"; +import type { PureHttpRequestConfig } from "@/utils/http/types.d"; +import type { AxiosRequestConfig } from "axios"; import type { ApiAbstract } from "@/utils/http/ApiAbstract"; export const baseUrlApi = (url: string) => `/api/${url}`; export const baseUrlAuth = (url: string) => `/auth/${url}`; export const baseUrlAvatar = (url: string) => `/avatar/${url}`; -export const get = (params: any) => { - return http.request("get", baseUrlApi("menus"), { - params - }); -}; +/** 单独抽离的CRUD工具函数 */ +class crud { + /** 单独抽离的get工具函数 */ + public get( + url: string, + params?: AxiosRequestConfig, + config?: PureHttpRequestConfig + ): Promise> { + return http.get>(baseUrlApi(url), params, config); + } -export const add = (data: any) => { - return http.request("post", baseUrlApi("menus"), { - data - }); -}; + /** 单独抽离的post工具函数 */ + public post( + url: string, + params?: AxiosRequestConfig, + config?: PureHttpRequestConfig + ): Promise> { + return http.post>(baseUrlApi(url), params, config); + } -export const del = (ids: number[] | any) => { - return http.request("delete", baseUrlApi("menus"), { - data: ids - }); -}; -export const edit = (data: any) => { - return http.request("put", baseUrlApi("menus"), { - data - }); -}; -export const download = (data: any) => { - return http.request( - "get", - baseUrlApi("menus/download"), - { - data - }, - { responseType: "blob" } - ); -}; + /** 单独抽离的put工具函数 */ + public put( + url: string, + params?: AxiosRequestConfig, + config?: PureHttpRequestConfig + ): Promise> { + return http.put>(baseUrlApi(url), params, config); + } + + /** 单独抽离的delete工具函数 */ + public delete( + url: string, + params?: AxiosRequestConfig, + config?: PureHttpRequestConfig + ): Promise> { + return http.delete>(baseUrlApi(url), params, config); + } + + /** 单独抽离的delete工具函数 */ + public download( + url: string, + params?: AxiosRequestConfig, + config?: PureHttpRequestConfig + ): Promise

{ + return http.get(baseUrlApi(url + "/download"), params, config); + } +} + +export const CRUD = new crud(); diff --git a/src/utils/http/index.ts b/src/utils/http/index.ts index d82b589..e4c5e03 100644 --- a/src/utils/http/index.ts +++ b/src/utils/http/index.ts @@ -161,6 +161,23 @@ class PureHttp { ): Promise

{ return this.request

("get", url, params, config); } + /** 单独抽离的put工具函数 */ + public put( + url: string, + params?: AxiosRequestConfig, + config?: PureHttpRequestConfig + ): Promise

{ + return this.request

("put", url, params, config); + } + + /** 单独抽离的delete工具函数 */ + public delete( + url: string, + params?: AxiosRequestConfig, + config?: PureHttpRequestConfig + ): Promise

{ + return this.request

("delete", url, params, config); + } } export const http = new PureHttp();