123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- /**
- * Created by sk on 2020 1 17.
- */
- import axios from "axios"
- // @ts-ignore
- import QS from "qs"
- //基地址
- axios.defaults.baseURL = "http://127.0.0.1:4562" //接口代理地址参见:config/index.js中的proxyTable配置
- axios.defaults.withCredentials = true
- // 添加业务处理函数
- let responseHandle = null
- let errorHandle = null
- // 设置业务处理函数
- function setResponseHandle(handle) {
- responseHandle = handle
- }
- function setErrorHandle(handle) {
- errorHandle = handle
- }
- // 错误处理
- function interceptorErr(err) {
- // showError(err)
- throw err
- }
- function showError(err) {
- errorHandle(err)
- }
- //添加一个请求拦截器
- axios.interceptors.request.use((config) => {
- if (sessionStorage.getItem("szyxToken")) {
- // 判断token是否存在
- config.headers.token = sessionStorage.getItem("szyxToken") // 将token设置成请求头
- }
- return config
- }, interceptorErr)
- // 添加一个响应拦截器
- axios.interceptors.response.use((response) => {
- if (responseHandle) {
- return responseHandle(response.data)
- }
- return response.data
- }, interceptorErr)
- // let translateNetError = (error) => {
- // return {
- // status: error.response.status,
- // message: '系统异常,' + error.response.statusText + '错误码:' + error.response.status,
- // }
- // }
- //通用方法postJson
- const POSTJSON = (url, params, others = {}) => {
- // return axios.post(url, params).then(res => res.data)
- return new Promise((resolve, reject) => {
- axios
- .post(url, params, others)
- .then((res) => {
- resolve(res)
- })
- .catch((error) => {
- // 处理error
- showError(error)
- reject(error)
- // resolve(translateNetError(error))
- })
- })
- }
- const POSTFORM = (url, params, others = {}) => {
- // return axios.post(url, QS.stringify(params), {headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}}).then(res => res.data)
- return new Promise((resolve, reject) => {
- axios
- .post(url, QS.stringify(params), {
- headers: {
- "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
- },
- ...others
- })
- .then((res) => {
- resolve(res)
- })
- .catch((error) => {
- showError(error)
- reject(error)
- // resolve(translateNetError(error))
- })
- })
- }
- const GET = (url, params, others = {}) => {
- // return axios.get(url, {params: params}).then(res => res.data)
- return new Promise((resolve, reject) => {
- axios
- .get(url, { params: params, ...others })
- .then((res) => {
- resolve(res)
- })
- .catch((error) => {
- showError(error)
- reject(error)
- // resolve(translateNetError(error))
- })
- })
- }
- const PUT = (url, params) => {
- // return axios.put(url, params).then(res => res.data)
- return new Promise((resolve, reject) => {
- axios
- .put(url, params)
- .then((res) => {
- resolve(res)
- })
- .catch((error) => {
- showError(error)
- reject(error)
- // resolve(translateNetError(error))
- })
- })
- }
- const DELETE = (url, params) => {
- // return axios.delete(url, {params: params}).then(res => res.data)
- return new Promise((resolve, reject) => {
- axios
- .delete(url, { params: params })
- .then((res) => {
- resolve(res)
- })
- .catch((error) => {
- showError(error)
- reject(error)
- // resolve(translateNetError(error))
- })
- })
- }
- const PATCH = (url, params) => {
- // return axios.patch(url, params).then(res => res.data)
- return new Promise((resolve, reject) => {
- axios
- .patch(url, params)
- .then((res) => {
- resolve(res)
- })
- .catch((error) => {
- showError(error)
- reject(error)
- // resolve(translateNetError(error))
- })
- })
- }
- // 通用,可设置多属性 自定义header,以及其他参数
- const POSTJSONALL = (url, params, others = {}) => {
- // return axios.post(url, params, others).then(res => res.data)
- return new Promise((resolve, reject) => {
- axios
- .patch(url, params, others)
- .then((res) => {
- resolve(res)
- })
- .catch((error) => {
- showError(error)
- reject(error)
- // resolve(translateNetError(error))
- })
- })
- }
- export default {
- ...axios,
- POSTJSON,
- POSTFORM,
- GET,
- PUT,
- DELETE,
- PATCH,
- POSTJSONALL,
- setResponseHandle,
- setErrorHandle
- }
|