http.js 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. import axios from 'axios'
  2. import qs from 'qs'
  3. const TIME_OUT_MS = 60 * 1000 // 默认请求超时时间
  4. /*
  5. * @param response 返回数据列表
  6. */
  7. function handleResults (response) {
  8. let remoteResponse = response.data;
  9. return remoteResponse
  10. }
  11. function handleUrl (url) {
  12. url = BASE_URL + url;
  13. return url
  14. }
  15. /*
  16. * @param data 参数列表
  17. * @return
  18. */
  19. function handleParams (data) {
  20. return data
  21. }
  22. export default {
  23. /*
  24. * @param url
  25. * @param data
  26. * @param response 请求成功时的回调函数
  27. * @param exception 异常的回调函数
  28. */
  29. post (url, data, response, exception) {
  30. let user = sessionStorage.getItem('user') , token = "";
  31. if(user != null){
  32. token = JSON.parse(user).id
  33. // data.token = token
  34. }
  35. axios({
  36. method: 'post',
  37. url: handleUrl(url),
  38. data: handleParams(qs.stringify(data)),
  39. // timeout: TIME_OUT_MS,
  40. headers: {
  41. //'Content-Type': 'application/json; charset=UTF-8'
  42. 'Content-type': ' application/x-www-form-urlencoded; charset=UTF-8',
  43. 'Token': token
  44. }
  45. }).then(
  46. (result) => {
  47. response(handleResults(result))
  48. }
  49. ).catch(
  50. (error) => {
  51. if (exception) {
  52. exception(error)
  53. } else {
  54. console.log(error)
  55. }
  56. }
  57. )
  58. },
  59. previewFile(url, data, response, exception) {
  60. let user = sessionStorage.getItem('user') , token = "";
  61. if(user != null){
  62. token = JSON.parse(user).id
  63. // data.token = token
  64. }
  65.         axios({
  66.             method: 'post',
  67.             url: handleUrl(url),
  68.             data: handleParams(qs.stringify(data)),
  69.             headers: {
  70. //                 'Content-type': ' application/json;charset:utf-8;',
  71. 'Content-type': ' application/x-www-form-urlencoded; charset=UTF-8',
  72. 'Token': token
  73.             },
  74.             responseType: 'blob'
  75.         }).then(
  76.             (result) => {
  77.                 response(handleResults(result))
  78.             }
  79.         ).catch((error) => {
  80.             if (exception) {
  81.                 exception(error)
  82.             } else {
  83.                 console.log(error)
  84.             }
  85.         })
  86.     },
  87. /*
  88. * get 请求
  89. * @param url
  90. * @param response 请求成功时的回调函数
  91. * @param exception 异常的回调函数
  92. */
  93. get (url , response, exception) {
  94. let user = sessionStorage.getItem('user') , token = "";
  95. if(user != null){
  96. token = JSON.parse(user).id
  97. // data.token = token
  98. }
  99. axios({
  100. method: 'get',
  101. url: handleUrl(url),
  102. headers: {
  103. 'Content-Type': 'application/json; charset=UTF-8',
  104. 'Token': token
  105. }
  106. }).then(
  107. (result) => {
  108. response(handleResults(result))
  109. }
  110. ).catch(
  111. (error) => {
  112. if (exception) {
  113. exception(error)
  114. } else {
  115. console.log(error)
  116. }
  117. }
  118. )
  119. },
  120. /*
  121. * 导入文件
  122. * @param url
  123. * @param data
  124. * @param response 请求成功时的回调函数
  125. * @param exception 异常的回调函数
  126. */
  127. uploadFile (url, data, response, exception) {
  128. let user = sessionStorage.getItem('user') , token = "";
  129. if(user != null){
  130. token = JSON.parse(user).id
  131. // data.token = token
  132. }
  133. axios({
  134. method: 'post',
  135. url: handleUrl(url),
  136. data: handleParams(data),
  137. dataType: 'json',
  138. processData: false,
  139. contentType: false,
  140. headers: {
  141. 'Token': token
  142. }
  143. }).then(
  144. (result) => {
  145. response(handleResults(result, data))
  146. }
  147. ).catch(
  148. (error) => {
  149. if (exception) {
  150. exception(error)
  151. } else {
  152. console.log(error)
  153. }
  154. }
  155. )
  156. },
  157. /*
  158. * 下载文件用,导出 Excel 表格可以用这个方法
  159. * @param url
  160. * @param param
  161. * @param fileName 如果是导出 Excel 表格文件名后缀最好用.xls 而不是.xlsx,否则文件可能会因为格式错误导致无法打开
  162. * @param exception 异常的回调函数
  163. */
  164. downloadFile (url, data, fileName, exception) {
  165. var user = sessionStorage.getItem('user') , token = "";
  166. if(user != null){
  167. token = JSON.parse(user).headImgurl
  168. }
  169. axios({
  170. method: 'post',
  171. url: handleUrl(url),
  172. data: handleParams(data),
  173. responseType: 'blob'
  174. }).then(
  175. (result) => {
  176. const excelBlob = result.data
  177. if ('msSaveOrOpenBlob' in navigator) {
  178. window.navigator.msSaveOrOpenBlob(excelBlob, fileName)
  179. } else {
  180. const elink = document.createElement('a')
  181. elink.download = fileName
  182. elink.style.display = 'none'
  183. const blob = new Blob([excelBlob])
  184. elink.href = URL.createObjectURL(blob)
  185. document.body.appendChild(elink)
  186. elink.click()
  187. document.body.removeChild(elink)
  188. }
  189. }
  190. ).catch(
  191. (error) => {
  192. if (exception) {
  193. exception(error)
  194. } else {
  195. console.log(error)
  196. }
  197. }
  198. )
  199. },
  200. uploadFileFormData (url, data, response, exception) {
  201. axios({
  202. method: 'post',
  203. url: handleUrl(url),
  204. data: data,
  205. // timeout: TIME_OUT_MS,
  206. headers: {
  207. 'Content-Type': 'multipart/form-data'
  208. }
  209. }).then(
  210. (result) => {
  211. response(handleResults(result))
  212. }
  213. ).catch(
  214. (error) => {
  215. if (exception) {
  216. exception(error)
  217. } else {
  218. console.log(error)
  219. }
  220. }
  221. )
  222. }
  223. }