api.js 2.8 KB

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