满足大部分接口请求
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