request.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import {
  2. HTTP_REQUEST_URL,
  3. HEADER,
  4. TOKENNAME
  5. } from '@/config/app';
  6. import {
  7. toLogin,
  8. checkLogin
  9. } from '../libs/login';
  10. import store from '../store';
  11. /**
  12. * 发送请求
  13. */
  14. function baseRequest(url, method, data, {
  15. noAuth = false,
  16. noVerify = false
  17. }) {
  18. let Url = HTTP_REQUEST_URL,
  19. header = HEADER;
  20. if (!noAuth) {
  21. //登录过期自动登录
  22. if (!store.state.app.token && !checkLogin()) {
  23. // toLogin();
  24. return Promise.reject({
  25. msg: '未登录'
  26. });
  27. }
  28. }
  29. if (store.state.app.token) header[TOKENNAME] = 'Bearer ' + store.state.app.token;
  30. return new Promise((reslove, reject) => {
  31. uni.request({
  32. url: Url + '/api/' + url,
  33. method: method || 'GET',
  34. header: header,
  35. data: data || {},
  36. success: (res) => {
  37. if (noVerify)
  38. reslove(res.data, res);
  39. else if (res.data.status == 200)
  40. reslove(res.data, res);
  41. else if ([410000, 410001, 410002, 40000].indexOf(res.data.status) !== -1) {
  42. // toLogin();
  43. reject(res.data);
  44. } else if (res.data.status == 501) {
  45. uni.reLaunch({
  46. url: '/pages/error/index'
  47. })
  48. reject(res.data);
  49. } else
  50. reject(res.data.message || '系统错误');
  51. },
  52. fail: (message) => {
  53. reject('请求失败');
  54. }
  55. })
  56. });
  57. }
  58. const request = {};
  59. ['options', 'get', 'post', 'put', 'head', 'delete', 'trace', 'connect'].forEach((method) => {
  60. request[method] = (api, data, opt) => baseRequest(api, method, data, opt || {})
  61. });
  62. export default request;