api.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. import config from '../config.js';
  2. const getDomain = (uri, method, type) => {
  3. let wx_env = config.wx_miniProgram;
  4. let system = config.system;
  5. let url = config.serverUrl;
  6. if (type && type == 'file') return url + `/files` + uri;
  7. if (type && type == 'integral') {
  8. let integral_1 = `/point/zr/v1/api` + uri;
  9. if (config.wx_dev) return url + `${config.wx_dev}` + integral_1;
  10. else return url + integral_1;
  11. }
  12. if (uri.startsWith('/wechat/api')) return url + uri;
  13. else {
  14. if (system.uniPlatform == 'app') {
  15. return url + `/point/v1/api` + uri;
  16. } else if (system.uniPlatform == 'mp-weixin') {
  17. if (wx_env.envVersion == 'develop' || wx_env.envVersion == 'trial') {
  18. return url + `${config.wx_dev}/point/v1/api` + uri;
  19. } else if (wx_env.envVersion == 'release') {
  20. return url + '/point/v1/api' + uri;
  21. }
  22. }
  23. }
  24. };
  25. // 获取token
  26. const getToken = () => {
  27. try {
  28. const value = uni.getStorageSync('token');
  29. if (value) return value;
  30. } catch {}
  31. };
  32. // 获取请求key
  33. const getRequestKey = (views) => {
  34. let baseUrl = getDomain('/util/crk');
  35. return new Promise((resolve, reject) => {
  36. uni.request({
  37. url: baseUrl,
  38. method: 'POST',
  39. header: {
  40. views
  41. },
  42. success: (res) => {
  43. if (res.data && res.data.data) resolve(res.data.data);
  44. else reject();
  45. },
  46. fail: (err) => {
  47. console.error(err)
  48. reject(err);
  49. },
  50. });
  51. });
  52. };
  53. export const requestBase = async (uri, method = 'GET', data, type) => {
  54. let baseUrl = getDomain(uri, method, type);
  55. let token = getToken();
  56. let header = {};
  57. let views = JSON.stringify({
  58. uri,
  59. method
  60. });
  61. views = encodeURIComponent(views)
  62. if (method !== 'GET') {
  63. let rk = await getRequestKey(views);
  64. header.rk = rk;
  65. header.views = views;
  66. }
  67. if (token) header.token = token;
  68. return new Promise((resolve, reject) => {
  69. uni.request({
  70. url: baseUrl,
  71. method: method || 'GET',
  72. data: data || {},
  73. header,
  74. success: (res) => {
  75. resolve(res.data);
  76. },
  77. fail: (err) => {
  78. console.log(err);
  79. uni.showToast({
  80. title: '请求接口失败',
  81. icon: 'fail',
  82. });
  83. reject(err.data);
  84. },
  85. });
  86. });
  87. };
  88. export const requestFile = (uri, method, data, type) => {
  89. let baseUrl = getDomain(uri, method, type);
  90. return new Promise((resolve, reject) => {
  91. uni.uploadFile({
  92. url: baseUrl,
  93. filePath: data,
  94. name: method || 'file',
  95. formData: {},
  96. success: (res) => {
  97. let data = JSON.parse(res.data);
  98. if (data.errcode != '0') {
  99. return uni.showToast({
  100. title: data.errmsg,
  101. icon: 'error',
  102. });
  103. }
  104. resolve(data);
  105. },
  106. fail: (err) => {
  107. let data = JSON.parse(err.data);
  108. uni.showToast({
  109. title: '请求接口失败',
  110. icon: 'fail',
  111. });
  112. reject(data);
  113. },
  114. });
  115. });
  116. };