import { BschResponse, AxiosResponse } from "axios"; import axios from "axios"; import { initAxiosInstance } from "./interceptor"; import { baseConfig } from "@/assets/config/api.config"; export interface BschResult { url: string; params?: object; data?: object; isMsg?: boolean; //是否自动显示错误提示 } class Abstract { private apiAxios({ method, url, params, data, isMsg = true }: any): Promise { const instance = initAxiosInstance(baseConfig); return new Promise((resolve, reject) => { instance({ method, url, params, data, }) .then((res: AxiosResponse) => { // console.log(res); let { data } = res; resolve(data as T); }) .catch(err => { console.error(err); reject(err); // throw err; }); }); } /** *GET类型的网络请求 * * @protected * @template T * @param {BschResult} { url, params } * @returns {Promise} * @memberof Abstract */ protected getRequest({ url, params, isMsg = true }: BschResult): Promise { return this.apiAxios({ method: "GET", url, params, isMsg }); } /** *POST类型的网络请求 * * @protected * @template T * @param {BschResult} { url, data } * @returns {Promise} * @memberof Abstract */ protected postRequest({ url, params, data, isMsg = true }: BschResult): Promise { return this.apiAxios({ method: "POST", url, params, data, isMsg }); } /** *PUT类型的网络请求 * * @protected * @template T * @param {BschResult} { url, data } * @returns {Promise} * @memberof Abstract */ protected putRequest({ url, params, data, isMsg = true }: BschResult): Promise { return this.apiAxios({ method: "PUT", url, params, data, isMsg }); } /** *DELETE类型的网络请求 * * @protected * @template T * @param {BschResult} { url, params } * @returns {Promise} * @memberof Abstract */ protected deleteRequest({ url, params, data, isMsg = true }: BschResult): Promise { return this.apiAxios({ method: "DELETE", url, params, data, isMsg }); } } export default Abstract;