api.js 2.6 KB

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