api.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. import config from '../config.js';
  2. const getDomain = (uri, method, type) => {
  3. let url = config.serverUrl;
  4. if (type && type == 'file') return url + `/files` + uri;
  5. if (type && type == 'integral') {
  6. let integral = `/point/zr/v1/api` + uri;
  7. if (config.wx_dev) integral = url + `${config.wx_dev}` + integral;
  8. else integral = url + integral;
  9. return integral
  10. }
  11. if (type && type == 'group') {
  12. let group = `/point/group/v1/api` + uri;
  13. if (config.wx_dev) group = url + `${config.wx_dev}` + group;
  14. else group = url + group;
  15. return group
  16. }
  17. if (uri.startsWith('/wechat/api')) return url + uri;
  18. let general = `/point/v1/api` + uri;
  19. if (config.wx_dev) general = url + `${config.wx_dev}` + general;
  20. else general = url + general;
  21. return general;
  22. };
  23. // 获取token
  24. const getToken = () => {
  25. try {
  26. const value = uni.getStorageSync('token');
  27. if (value) return value;
  28. } catch {}
  29. };
  30. // 获取请求key
  31. const getRequestKey = (views) => {
  32. let baseUrl = getDomain('/util/crk');
  33. return new Promise((resolve, reject) => {
  34. uni.request({
  35. url: baseUrl,
  36. method: 'POST',
  37. header: {
  38. views
  39. },
  40. success: (res) => {
  41. if (res.data && res.data.data) resolve(res.data.data);
  42. else reject();
  43. },
  44. fail: (err) => {},
  45. });
  46. });
  47. };
  48. export const requestBase = async (uri, method = 'GET', data, type) => {
  49. let baseUrl = getDomain(uri, method, type);
  50. // let token = getToken();
  51. let header = {};
  52. let views = JSON.stringify({
  53. uri,
  54. method
  55. });
  56. views = encodeURIComponent(views);
  57. const token = uni.getStorageSync('token');
  58. if (token) header.token = token;
  59. if (method === 'GET') {
  60. return new Promise((resolve, reject) => {
  61. uni.request({
  62. url: baseUrl,
  63. method: method || 'GET',
  64. data: data || {},
  65. header,
  66. success: (res) => {
  67. resolve(res.data);
  68. },
  69. fail: (err) => {
  70. uni.showToast({
  71. title: '请求接口失败',
  72. icon: 'fail',
  73. });
  74. reject(err.data);
  75. },
  76. });
  77. });
  78. } else if (method === 'POST' || method === 'delete') {
  79. header.views = views;
  80. return new Promise((resolve, reject) => {
  81. // rk配置
  82. let rkbaseUrl = getDomain('/util/crk');
  83. let pages = getCurrentPages();
  84. let route = pages[pages.length - 1].$page.fullPath;
  85. uni.request({
  86. url: rkbaseUrl,
  87. method,
  88. header: {
  89. views,
  90. Referer: route,
  91. },
  92. success: (rkres) => {
  93. if (rkres.data && rkres.data.data) header.rk = rkres.data.data;
  94. header.Referer = route;
  95. uni.request({
  96. url: baseUrl,
  97. method,
  98. data: data || {},
  99. header,
  100. success: (res) => {
  101. resolve(res.data);
  102. },
  103. fail: (err) => {
  104. uni.showToast({
  105. title: '请求接口失败',
  106. icon: 'fail',
  107. });
  108. reject(err.data);
  109. },
  110. });
  111. },
  112. });
  113. // uni.request({
  114. // url: baseUrl,
  115. // method: method || 'GET',
  116. // data: data || {},
  117. // header,
  118. // success: (res) => {
  119. // resolve(res.data);
  120. // },
  121. // fail: (err) => {
  122. // uni.showToast({
  123. // title: '请求接口失败',
  124. // icon: 'fail',
  125. // });
  126. // reject(err.data);
  127. // },
  128. // });
  129. });
  130. }
  131. };
  132. export const requestFile = (uri, method, data, type) => {
  133. let baseUrl = getDomain(uri, method, type);
  134. return new Promise((resolve, reject) => {
  135. uni.uploadFile({
  136. url: baseUrl,
  137. filePath: data,
  138. name: method || 'file',
  139. formData: {},
  140. success: (res) => {
  141. let data = JSON.parse(res.data);
  142. if (data.errcode != '0') {
  143. return uni.showToast({
  144. title: data.errmsg,
  145. icon: 'error',
  146. });
  147. }
  148. resolve(data);
  149. },
  150. fail: (err) => {
  151. let data = JSON.parse(err.data);
  152. uni.showToast({
  153. title: '请求接口失败',
  154. icon: 'fail',
  155. });
  156. reject(data);
  157. },
  158. });
  159. });
  160. };