http.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import * as local from '../config/local.js';
  2. import * as prod from '../config/prod.js';
  3. let domain, prefix;
  4. if (process.env.NODE_ENV === 'development') {
  5. domain = local.domain;
  6. prefix = local.prefix;
  7. } else {
  8. domain = prod.domain;
  9. prefix = prod.prefix;
  10. }
  11. export const api = async (uri, method = 'GET', data) => {
  12. if (!Array.isArray(data)) {
  13. for (const key in data) {
  14. if (data[key] === undefined) {
  15. delete data[key];
  16. }
  17. }
  18. }
  19. let url;
  20. if (uri.includes('http') || uri.includes('https')) url = uri;
  21. else url = `${domain}${prefix}${uri}`;
  22. let openid = uni.getStorageSync('openid');
  23. return new Promise((resolve, reject) => {
  24. uni.request({
  25. url,
  26. method: method || 'GET',
  27. data: data || {},
  28. header: {
  29. auth: openid,
  30. },
  31. success: (res) => {
  32. resolve(res.data);
  33. },
  34. fail: (err) => {
  35. uni.showToast({
  36. title: '请求接口失败',
  37. icon: 'fail',
  38. });
  39. reject(err.data);
  40. },
  41. });
  42. });
  43. };
  44. export const upload = async (uri, data) => {
  45. let url;
  46. if (uri.includes('http') || uri.includes('https')) url = uri;
  47. else url = `${prod.domain}${uri}`;
  48. return new Promise((resolve, reject) => {
  49. uni.uploadFile({
  50. url,
  51. name: 'file',
  52. formData: {},
  53. filePath: data,
  54. success: (res) => {
  55. if (res?.data) resolve(JSON.parse(res.data));
  56. else resolve();
  57. },
  58. fail: (err) => {
  59. console.log(err);
  60. uni.showToast({
  61. title: '文件上传失败',
  62. icon: 'fail',
  63. });
  64. reject(err.data);
  65. },
  66. });
  67. });
  68. };