http.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. import axios from 'axios'
  2. import qs from 'Qs'
  3. const TIME_OUT_MS = 60 * 1000 // 默认请求超时时间
  4. axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
  5. // // 请求拦截器
  6. // axios.interceptors.request.use(function (config) {
  7. // return config
  8. // }, function (error) {
  9. // return Promise.reject(error)
  10. // })
  11. // // 响应拦截器
  12. // axios.interceptors.response.use(function (response) {
  13. // return response
  14. // }, function (error) {
  15. // return Promise.reject(error)
  16. // })
  17. /*
  18. * @param response 返回数据列表
  19. */
  20. function handleResults (response) {
  21. let remoteResponse = response.data
  22. var result = {
  23. success: false,
  24. message: '',
  25. status: [],
  26. errorCode: '',
  27. data: {
  28. total: 0,
  29. results: []
  30. }
  31. }
  32. if (remoteResponse.success) {
  33. result.data.results = remoteResponse.data
  34. result.data.total = remoteResponse.total
  35. result.success = true
  36. }
  37. if (!remoteResponse.success) {
  38. let code = remoteResponse.errorCode
  39. if (code === 400) {
  40. console.log('传参错误')
  41. }
  42. result.errorCode = remoteResponse.errorCode
  43. result.message = remoteResponse.message
  44. }
  45. return result
  46. }
  47. function handleUrl (url) {
  48. //url = 'http://crowd.mooctest.net' + url
  49. return url
  50. }
  51. /*
  52. * @param data 参数列表
  53. * @return
  54. */
  55. function handleParams (data) {
  56. return data
  57. }
  58. export default {
  59. post (url, data) {
  60. return new Promise((resolve, reject) => {
  61. axios.post(url, qs.stringify(data)).then(
  62. (result) => {
  63. resolve(result)
  64. }
  65. ).catch(
  66. (error) => {
  67. reject(error)
  68. }
  69. )
  70. })
  71. },
  72. get (url) {
  73. return new Promise((resolve, reject) => {
  74. axios.get(handleUrl(url))
  75. .then(response => {
  76. resolve(response.data)
  77. }).catch(error => {
  78. reject(error)
  79. })
  80. })
  81. },
  82. put (url, data) {
  83. return new Promise((resolve, reject) => {
  84. axios.put(url, qs.stringify(data)).then(
  85. (result) => {
  86. resolve(result)
  87. }
  88. ).catch(
  89. (error) => {
  90. reject(error)
  91. }
  92. )
  93. })
  94. },
  95. delete (url, data) {
  96. return new Promise((resolve, reject) => {
  97. axios.delete(url, {data: qs.stringify(data)}).then(
  98. (result) => {
  99. resolve(result)
  100. }
  101. ).catch(
  102. (error) => {
  103. reject(error)
  104. }
  105. )
  106. })
  107. },
  108. // uploadFile (url, data, response, exception) {
  109. // axios({
  110. // method: 'post',
  111. // url: handleUrl(url),
  112. // data: handleParams(data),
  113. // dataType: 'json',
  114. // processData: false,
  115. // contentType: false
  116. // }).then(
  117. // (result) => {
  118. // response(handleResults(result, data))
  119. // }
  120. // ).catch(
  121. // (error) => {
  122. // if (exception) {
  123. // exception(error)
  124. // } else {
  125. // console.log(error)
  126. // }
  127. // }
  128. // )
  129. // },
  130. // downloadFile (url, data, fileName, exception) {
  131. // axios({
  132. // method: 'post',
  133. // url: handleUrl(url),
  134. // data: handleParams(data),
  135. // responseType: 'blob'
  136. // }).then(
  137. // (result) => {
  138. // const excelBlob = result.data
  139. // if ('msSaveOrOpenBlob' in navigator) {
  140. // // Microsoft Edge and Microsoft Internet Explorer 10-11
  141. // window.navigator.msSaveOrOpenBlob(excelBlob, fileName)
  142. // } else {
  143. // const elink = document.createElement('a')
  144. // elink.download = fileName
  145. // elink.style.display = 'none'
  146. // const blob = new Blob([excelBlob])
  147. // elink.href = URL.createObjectURL(blob)
  148. // document.body.appendChild(elink)
  149. // elink.click()
  150. // document.body.removeChild(elink)
  151. // }
  152. // }
  153. // ).catch(
  154. // (error) => {
  155. // if (exception) {
  156. // exception(error)
  157. // } else {
  158. // console.log(error)
  159. // }
  160. // }
  161. // )
  162. // },
  163. // uploadFileFormData (url, data, response, exception) {
  164. // axios({
  165. // method: 'post',
  166. // url: handleUrl(url),
  167. // data: data,
  168. // timeout: TIME_OUT_MS,
  169. // headers: {
  170. // 'Content-Type': 'multipart/form-data'
  171. // }
  172. // }).then(
  173. // (result) => {
  174. // response(handleResults(result))
  175. // }
  176. // ).catch(
  177. // (error) => {
  178. // if (exception) {
  179. // exception(error)
  180. // } else {
  181. // console.log(error)
  182. // }
  183. // }
  184. // )
  185. // }
  186. }