http.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. // const baseUrl = 'http://192.168.50.132:8080';
  2. const baseUrl = 'https://walkchina.izouma.com';
  3. function parseUrl(url) {
  4. let _baseUrl = baseUrl;
  5. if (url.startsWith('http')) {
  6. return url;
  7. }
  8. if (!_baseUrl.endsWith('/')) {
  9. _baseUrl += '/';
  10. }
  11. if (url.startsWith('/')) {
  12. url = url.slice(1);
  13. }
  14. return _baseUrl + url;
  15. }
  16. export default {
  17. install(_Vue) {
  18. _Vue.prototype.$baseUrl = baseUrl;
  19. _Vue.prototype.$http = {
  20. setToken(token) {
  21. this.token = token;
  22. },
  23. getToken() {
  24. return this.token;
  25. },
  26. get(url, params, options) {
  27. options = options || {};
  28. return new Promise((resolve, reject) => {
  29. wx.request({
  30. method: 'GET',
  31. url: parseUrl(url),
  32. data: params,
  33. dataType: 'json',
  34. header: {
  35. Authorization: this.token ? 'Bearer ' + this.token : '',
  36. ...(options.header || {}),
  37. },
  38. success(res) {
  39. if (res && res.statusCode === 200) {
  40. resolve(res.data);
  41. } else {
  42. reject(res);
  43. }
  44. },
  45. fail(err) {
  46. reject(err);
  47. },
  48. });
  49. });
  50. },
  51. post(url, data, options) {
  52. options = options || {};
  53. return new Promise((resolve, reject) => {
  54. wx.request({
  55. method: 'post',
  56. url: parseUrl(url),
  57. data: data,
  58. dataType: 'json',
  59. header: {
  60. 'content-type': 'application/x-www-form-urlencoded',
  61. Authorization: this.token ? 'Bearer ' + this.token : '',
  62. ...(options.header || {}),
  63. },
  64. success(res) {
  65. if (res && res.statusCode === 200) {
  66. resolve(res.data);
  67. } else {
  68. reject(res);
  69. }
  70. },
  71. fail(err) {
  72. reject(err);
  73. },
  74. });
  75. });
  76. },
  77. uploadFile(filePath, options) {
  78. options = options || {};
  79. return new Promise((resolve, reject) => {
  80. wx.uploadFile({
  81. url: baseUrl + '/upload/file',
  82. filePath: filePath,
  83. name: 'file',
  84. header: {
  85. 'content-type': 'application/x-www-form-urlencoded',
  86. Authorization: this.token ? 'Bearer ' + this.token : '',
  87. ...(options.header || {}),
  88. },
  89. formData: options.formData || {},
  90. success(res) {
  91. if (res && res.statusCode === 200) {
  92. try {
  93. resolve(JSON.parse(res.data));
  94. } catch (e) {
  95. reject(e);
  96. }
  97. } else {
  98. reject(res);
  99. }
  100. },
  101. fail(err) {
  102. reject(err);
  103. },
  104. });
  105. });
  106. },
  107. };
  108. _Vue.prototype.$request = options => {
  109. options = options || {};
  110. options.url = parseUrl(options.url);
  111. return new Promise((resolve, reject) => {
  112. options.success = res => {
  113. resolve(res);
  114. };
  115. options.success = err => {
  116. reject(err);
  117. };
  118. });
  119. };
  120. },
  121. };