request.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. import {
  2. request as miniRequest,
  3. showToast,
  4. uploadFile as miniUpload,
  5. } from '@tarojs/taro';
  6. import {NETWORK_URL} from '@utils';
  7. function request({url, data, method, skipError}) {
  8. const pr = new Promise(function (res) {
  9. miniRequest({
  10. url: `${NETWORK_URL}${url}`,
  11. data,
  12. method,
  13. timeout: 10000,
  14. header: {
  15. 'Content-Type': 'application/json',
  16. 'Cache-Control': 'no-cache',
  17. },
  18. success(data) {
  19. let result = data.data;
  20. if (!result.code) {
  21. result = {code: '500', msg: '请求失败,请稍后再试'};
  22. }
  23. if (result.code === '500' && !skipError) {
  24. showToast({
  25. title: result.msg,
  26. duration: 2000,
  27. mask: false,
  28. icon: 'none',
  29. });
  30. }
  31. res(result);
  32. },
  33. fail(err) {
  34. if (err.errMsg === 'request:fail abort') return;
  35. !skipError &&
  36. showToast({
  37. title: '请求失败,请稍后再试',
  38. duration: 2000,
  39. mask: false,
  40. icon: 'none',
  41. });
  42. res({code: '500', msg: '请求失败,请稍后再试'});
  43. },
  44. });
  45. });
  46. return pr;
  47. }
  48. export function get(options) {
  49. return request({...options, method: 'GET'});
  50. }
  51. export function post(options) {
  52. return request({...options, method: 'POST'});
  53. }
  54. export function del(options) {
  55. return request({...options, method: 'DELETE'});
  56. }
  57. export function put(options) {
  58. return request({...options, method: 'PUT'});
  59. }
  60. export function uploadFile(url, img, skipError = false) {
  61. const pr = new Promise(function (res) {
  62. miniUpload({
  63. url: NETWORK_URL + url,
  64. filePath: img,
  65. name: 'file',
  66. timeout: 10000,
  67. header: {
  68. 'Cache-Control': 'no-cache',
  69. },
  70. success(data) {
  71. const result = JSON.parse(data.data);
  72. if (result.code === '500' && !skipError) {
  73. showToast({
  74. title: result.msg,
  75. duration: 2000,
  76. mask: true,
  77. icon: 'none',
  78. });
  79. }
  80. res(result);
  81. },
  82. fail() {
  83. !skipError &&
  84. showToast({
  85. title: '请求失败,请稍后再试',
  86. duration: 2000,
  87. mask: true,
  88. icon: 'none',
  89. });
  90. res({code: '500', msg: '请求失败,请稍后再试'});
  91. },
  92. });
  93. });
  94. return pr;
  95. }