api.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  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') {
  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: 'POST',
  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: 'POST',
  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. } else {
  131. return new Promise((resolve, reject) => {
  132. uni.request({
  133. url: baseUrl,
  134. method: method || 'GET',
  135. data: data || {},
  136. header,
  137. success: (res) => {
  138. resolve(res.data);
  139. },
  140. fail: (err) => {
  141. uni.showToast({
  142. title: '请求接口失败',
  143. icon: 'fail',
  144. });
  145. reject(err.data);
  146. },
  147. });
  148. });
  149. }
  150. };
  151. export const requestFile = (uri, method, data, type) => {
  152. let baseUrl = getDomain(uri, method, type);
  153. return new Promise((resolve, reject) => {
  154. uni.uploadFile({
  155. url: baseUrl,
  156. filePath: data,
  157. name: method || 'file',
  158. formData: {},
  159. success: (res) => {
  160. let data = JSON.parse(res.data);
  161. if (data.errcode != '0') {
  162. return uni.showToast({
  163. title: data.errmsg,
  164. icon: 'error',
  165. });
  166. }
  167. resolve(data);
  168. },
  169. fail: (err) => {
  170. let data = JSON.parse(err.data);
  171. uni.showToast({
  172. title: '请求接口失败',
  173. icon: 'fail',
  174. });
  175. reject(data);
  176. },
  177. });
  178. });
  179. };