js接口请求一键封装

满足大部分接口请求
 

import request from '@/utils/request'
import qs from 'qs'


export function net(url, method, params = {},headers = { 'Content-Type': 'application/json' }) {
    return new Promise((re, rj) => {
        switch (method) {
            case 'postZip':
                re(requestPostZip(url, params))
                break
            case 'post':
                re(requestPost(url, params,headers))
                break
            case 'get':
                re(requestGet(url, params))
                break
            case 'delete':
                re(requestDelete(url, params))
                break
            case 'deleteQs':
                re(requestDeleteQs(url, params))
                break
            case 'deleteData':
                re(requestDeleteData(url, params))
                break
            case 'put':
                re(requestPut(url, params))
                break
            case 'putZip':
                re(requestPutZip(url, params))
                break
            case 'postFile'://导出文档
                re(requestPostFile(url, params))
                break;
            case 'getFile'://导出文档
                re(requestGetFile(url, params))
                break
        }
    })
}
function requestPostFile(url, data) {
    return request({
        url,
        method: 'post',
        data,
        responseType: 'blob',
    })
}
function requestGetFile(url, data) {
    return request({
        url,
        method: 'get',
        params: data,
        responseType: 'blob',
    })
}

function requestPost(url, data, headers = { 'Content-Type': 'application/json' }) {
    return request({
        url,
        method: 'post',
        data,
        headers: headers
    })
}

function requestPostZip(url, data) {
    return request({
        url,
        method: 'post',
        data,
        headers: { 'Content-Encoding': 'gzip', 'Content-Type': 'application/json' }
    })
}

function requestGet(url, params) {
    return request({
        url,
        method: 'get',
        params,
        paramsSerializer: function (params) {
            return qs.stringify(params, { encode: true });
        }
    })
}

function requestDelete(url, params) {
    console.log(params)
    return request({
        url,
        method: 'delete',
        params
    })
}

function requestDeleteQs(url, params) {
    console.log(params)
    return request({
        url,
        method: 'delete',
        params,
        paramsSerializer: {
            serialize: function (params) {
                const keys = params.map(item => `ids=${item}`).join('&')
                return `${keys}`
            }
        }
    })
}

function requestDeleteData(url, params) {
    return request({
        url,
        method: 'delete',
        data: params
    })
}

function requestPut(url, data) {
    return request({
        url,
        method: 'put',
        data
    })
}
function requestPutZip(url, data) {
    return request({
        url,
        method: 'put',
        data,
        headers: { 'Content-Encoding': 'gzip', 'Content-Type': 'text/plain' }
    })
}

main.js
 

import {net} from '@/api/requests'
Vue.prototype.$net = net

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值