request.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. import * as $auth from "./auth"
  2. import BASE_URL from './config.js'
  3. import qs from 'qs'
  4. function error(res){
  5. if (res.statusCode === 408 || res.statusCode === 401) {// 需要重新登录
  6. $auth.removeUserToken();
  7. uni.showToast({
  8. title: res.data,
  9. icon:"none"
  10. })
  11. let which=$auth.whichLogin();
  12. setTimeout(function(){
  13. if(which=='dzf'){
  14. uni.reLaunch({
  15. url: '/pages/login/dzflogin'
  16. });
  17. }else{
  18. uni.reLaunch({
  19. url: '/pages/login/login'
  20. });
  21. }
  22. }, 2000)
  23. }else if(res.statusCode === 404){
  24. uni.showToast({
  25. title:"404,路径找不到:"+res.data.path,
  26. icon:"none"
  27. })
  28. }else if(res.statusCode === 503){
  29. uni.showToast({
  30. title:"服务不可用",
  31. icon:"none"
  32. })
  33. }else if(res.statusCode === 504){
  34. uni.showToast({
  35. title:"网络连接错误",
  36. icon:"none"
  37. })
  38. }else{
  39. uni.showToast({
  40. title:res.data,
  41. icon:"none"
  42. })
  43. }
  44. }
  45. export function request(body){
  46. let {url,method,data,header, params, responseType} = body
  47. data = data || params || {};
  48. header = header || {'Content-Type': 'application/json; charset=utf-8'}
  49. method = method.toUpperCase() || "GET";
  50. responseType = responseType || "text"
  51. let token = $auth.getUserToken();
  52. if(token){
  53. header.token = token; // 获取token值
  54. }
  55. if(method === 'POST' && header['Content-Type'] === 'application/x-www-form-urlencoded; charset=utf-8'){
  56. data = qs.stringify(data, { allowDots: true, arrayFormat: 'indices' })
  57. }else if(method === 'GET' || method === 'DELETE' || method === 'PUT'){
  58. url = url + '?' + qs.stringify(data, { allowDots: true, arrayFormat: 'indices' })
  59. data = null
  60. }
  61. let promise = new Promise((resolve,reject)=>{
  62. uni.request({
  63. url: BASE_URL + url,
  64. header:header,
  65. data: data,
  66. method: method,
  67. responseType: responseType,
  68. success: res => {
  69. if(res && res.statusCode !== 200){
  70. error(res);
  71. reject(res)
  72. }
  73. resolve(res);
  74. },
  75. fail: (res) => {
  76. uni.hideLoading();
  77. error(res);
  78. reject(res);
  79. },
  80. complete: () => {
  81. }
  82. });
  83. })
  84. return promise;
  85. }
  86. // 单文件上传
  87. export function upload(url, filePath,filename, formData,header,success,fail){
  88. let name = filename || 'file';
  89. header = header || {};
  90. let token = $auth.getUserToken();
  91. if(token){
  92. header.token = token; // 获取token值
  93. }
  94. let promise = new Promise((resolve,reject)=>{
  95. uni.uploadFile({
  96. url: BASE_URL + url,
  97. filePath:filePath,
  98. name: 'file',
  99. formData: formData || {},
  100. header:header,
  101. success: res => {
  102. resolve(res);
  103. },
  104. fail: (res) => {
  105. uni.hideLoading();
  106. let err = JSON.parse(res);
  107. error(err);
  108. reject(err);
  109. },
  110. complete: () => {
  111. }
  112. });
  113. })
  114. return promise;
  115. }
  116. export function download(url,header,success,fail){
  117. header = header || {};
  118. let token = $auth.getUserToken();
  119. if(token){
  120. header.token = token; // 获取token值
  121. }
  122. if(!url){
  123. return;
  124. }
  125. let downloadTask = uni.downloadFile({
  126. url: url,
  127. success: (res) => {
  128. if(res.statusCode===200){
  129. if(success){
  130. success.call(null,res);
  131. }
  132. }else{
  133. if(fail){
  134. fail.call(null,res);
  135. }
  136. }
  137. },
  138. fail:(res) => {
  139. let err = JSON.parse(res);
  140. error(err);
  141. if(fail){
  142. fail.call(null,err)
  143. }
  144. },
  145. complete: () => {
  146. }
  147. });
  148. return downloadTask;
  149. }
  150. export default request