UNPKG

ptool

Version:

vue项目开发通用工具类封装

132 lines (131 loc) 3.91 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); /** * @FileName api.request.ts * @Author Mad Dragon <395548460@qq.com> * @Version V 0.0.1 * @Date 2021/4/13 13:44 * @Title * @Desc **/ const axios_1 = __importDefault(require("./axios")); const lStorage_1 = __importDefault(require("./lStorage")); const getTokenToLocalStorage = (key = 'Authorization') => lStorage_1.default.getItem(key) || ''; class API { constructor(baseUrl = '', option = {}) { this.option = {}; this.baseUrl = baseUrl; this.option = option; this.axios = new axios_1.default(baseUrl, option); } /** * post 请求 * @param url 接口url * @param data 参数 * @param method */ post(url, data, config = {}, method = 'post') { const options = Object.assign({ url, // data: qs.stringify(data), from 标点传参 data, method, headers: { Authorization: getTokenToLocalStorage() } }, config); // @ts-ignore if (window && window.md && window.md.headers) { // @ts-ignore window.md.headers.forEach((item) => { options.headers[item.key] = item.value || getTokenToLocalStorage(item.key); }); } return this.axios.request(options); } /** * put 请求 * @param url 接口url * @param data 参数 */ put(url, data, config = {}) { return this.post(url, data, config, 'put'); } /** * patch 请求 * @param url 接口url * @param data 参数 */ patch(url, data, config = {}) { return this.post(url, data, config, 'patch'); } /** * get 请求 * @param url 接口url * @param params 参数 * @param method */ get(url, params, config = {}, method = 'get') { const options = Object.assign({ url, params, method, headers: { Authorization: getTokenToLocalStorage() } }, config); // @ts-ignore if (window && window.md && window.md.headers) { // @ts-ignore window.md.headers.forEach((item) => { options.headers[item.key] = item.value || getTokenToLocalStorage(item.key); }); } return this.axios.request(options); } /** * delete 请求 * @param url 接口url * @param params 参数 */ delete(url, params, config = {}) { return this.get(url, params, config, 'delete'); } /** * head 请求 * @param url 接口url * @param params 参数 */ head(url, params, config = {}) { return this.get(url, params, config, 'head'); } /** * options 请求 * @param url 接口url * @param params 参数 */ options(url, params, config = {}) { return this.get(url, params, config, 'options'); } /** * axios本版本不支持jsonp 自己拓展一个 * @param url */ jsonp(url) { if (!url) { console.error('Axios.JSONP 至少需要一个url参数!'); return; } return new Promise((resolve) => { // @ts-ignore window.jsonCallBack = (result) => { resolve(result); }; const JSONP = document.createElement('script'); JSONP.type = 'text/javascript'; JSONP.src = `${url}&callback=jsonCallBack`; document.getElementsByTagName('head')[0].appendChild(JSONP); setTimeout(() => { document.getElementsByTagName('head')[0].removeChild(JSONP); }, 500); }); } } exports.default = API;