Api.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. /**
  2. * Created by sk on 2020 1 17.
  3. */
  4. import axios from "axios"
  5. // @ts-ignore
  6. import QS from "qs"
  7. //基地址
  8. axios.defaults.baseURL = "http://127.0.0.1:4562" //接口代理地址参见:config/index.js中的proxyTable配置
  9. axios.defaults.withCredentials = true
  10. // 添加业务处理函数
  11. let responseHandle = null
  12. let errorHandle = null
  13. // 设置业务处理函数
  14. function setResponseHandle(handle) {
  15. responseHandle = handle
  16. }
  17. function setErrorHandle(handle) {
  18. errorHandle = handle
  19. }
  20. // 错误处理
  21. function interceptorErr(err) {
  22. // showError(err)
  23. throw err
  24. }
  25. function showError(err) {
  26. errorHandle(err)
  27. }
  28. //添加一个请求拦截器
  29. axios.interceptors.request.use((config) => {
  30. if (sessionStorage.getItem("szyxToken")) {
  31. // 判断token是否存在
  32. config.headers.token = sessionStorage.getItem("szyxToken") // 将token设置成请求头
  33. }
  34. return config
  35. }, interceptorErr)
  36. // 添加一个响应拦截器
  37. axios.interceptors.response.use((response) => {
  38. if (responseHandle) {
  39. return responseHandle(response.data)
  40. }
  41. return response.data
  42. }, interceptorErr)
  43. // let translateNetError = (error) => {
  44. // return {
  45. // status: error.response.status,
  46. // message: '系统异常,' + error.response.statusText + '错误码:' + error.response.status,
  47. // }
  48. // }
  49. //通用方法postJson
  50. const POSTJSON = (url, params, others = {}) => {
  51. // return axios.post(url, params).then(res => res.data)
  52. return new Promise((resolve, reject) => {
  53. axios
  54. .post(url, params, others)
  55. .then((res) => {
  56. resolve(res)
  57. })
  58. .catch((error) => {
  59. // 处理error
  60. showError(error)
  61. reject(error)
  62. // resolve(translateNetError(error))
  63. })
  64. })
  65. }
  66. const POSTFORM = (url, params, others = {}) => {
  67. // return axios.post(url, QS.stringify(params), {headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}}).then(res => res.data)
  68. return new Promise((resolve, reject) => {
  69. axios
  70. .post(url, QS.stringify(params), {
  71. headers: {
  72. "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
  73. },
  74. ...others
  75. })
  76. .then((res) => {
  77. resolve(res)
  78. })
  79. .catch((error) => {
  80. showError(error)
  81. reject(error)
  82. // resolve(translateNetError(error))
  83. })
  84. })
  85. }
  86. const GET = (url, params, others = {}) => {
  87. // return axios.get(url, {params: params}).then(res => res.data)
  88. return new Promise((resolve, reject) => {
  89. axios
  90. .get(url, { params: params, ...others })
  91. .then((res) => {
  92. resolve(res)
  93. })
  94. .catch((error) => {
  95. showError(error)
  96. reject(error)
  97. // resolve(translateNetError(error))
  98. })
  99. })
  100. }
  101. const PUT = (url, params) => {
  102. // return axios.put(url, params).then(res => res.data)
  103. return new Promise((resolve, reject) => {
  104. axios
  105. .put(url, params)
  106. .then((res) => {
  107. resolve(res)
  108. })
  109. .catch((error) => {
  110. showError(error)
  111. reject(error)
  112. // resolve(translateNetError(error))
  113. })
  114. })
  115. }
  116. const DELETE = (url, params) => {
  117. // return axios.delete(url, {params: params}).then(res => res.data)
  118. return new Promise((resolve, reject) => {
  119. axios
  120. .delete(url, { params: params })
  121. .then((res) => {
  122. resolve(res)
  123. })
  124. .catch((error) => {
  125. showError(error)
  126. reject(error)
  127. // resolve(translateNetError(error))
  128. })
  129. })
  130. }
  131. const PATCH = (url, params) => {
  132. // return axios.patch(url, params).then(res => res.data)
  133. return new Promise((resolve, reject) => {
  134. axios
  135. .patch(url, params)
  136. .then((res) => {
  137. resolve(res)
  138. })
  139. .catch((error) => {
  140. showError(error)
  141. reject(error)
  142. // resolve(translateNetError(error))
  143. })
  144. })
  145. }
  146. // 通用,可设置多属性 自定义header,以及其他参数
  147. const POSTJSONALL = (url, params, others = {}) => {
  148. // return axios.post(url, params, others).then(res => res.data)
  149. return new Promise((resolve, reject) => {
  150. axios
  151. .patch(url, params, others)
  152. .then((res) => {
  153. resolve(res)
  154. })
  155. .catch((error) => {
  156. showError(error)
  157. reject(error)
  158. // resolve(translateNetError(error))
  159. })
  160. })
  161. }
  162. export default {
  163. ...axios,
  164. POSTJSON,
  165. POSTFORM,
  166. GET,
  167. PUT,
  168. DELETE,
  169. PATCH,
  170. POSTJSONALL,
  171. setResponseHandle,
  172. setErrorHandle
  173. }