request.js 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import { objToUrl } from '@/utils/index';
  2. function request(options) {
  3. return new Promise((resolve, reject) => {
  4. let _obj = {
  5. url: '',
  6. data: {},
  7. method: 'GET',
  8. header: {
  9. 'Content-Type': 'application/json;charset=UTF-8'
  10. }
  11. };
  12. const baseUrl = getApp().globalData.baseUrl
  13. Object.assign(_obj, options);
  14. // _obj.header['X-AUTH-TOKEN'] = uni.getStorageSync('token');
  15. // _obj.header['X-HEADER-APPID'] = 'WuyoKG1AcDZzLwxfhOAC+E16SeG3+mDqVYmsa/e5HRE=';
  16. const header = {
  17. 'USER-TERM-TYPE': 'ipad', // 支付时需要用到 与pad一致
  18. 'App-Type': 2,
  19. 'Version': '',
  20. 'authorization':'Bearer clz|eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiIxNTA5MTMzMDAwMCIsImF1dGhfdXNlciI6eyJ1c2VyU24iOiIxMDc1OSIsInVzZXJpZCI6IjEwNzU5IiwidXNlcm5hbWUiOiIxNTA5MTMzMDAwMCIsInVzZXJUeXBlIjoiMiIsIm1lcmNoYW50SWQiOiIxMDA0MCIsIm1lcmNoYW50U24iOiIxMDA0MCIsIm9yZ0lkIjoiMTAwMDAiLCJvcmdTbiI6IjEwMDAwIiwib3JnTmFtZSI6Iui9pumihuS4u-aAu-mDqOmXqOW6lyIsIm9yZ1N0YXR1cyI6IjEiLCJvcmdFeHBpcmVEYXRlIjo0MDcwODgwMDAwMDAwLCJvcmdUaGVtZVR5cGUiOiJjaGVsaW5nemh1Iiwicm9vdE9yZ0lkIjoiMTAwMDAiLCJyb290T3JnU24iOiIxMDAwMCIsInJvb3RPcmdOYW1lIjoi6L2m6aKG5Li7Iiwicm9vdE9yZ0V4cGlyZURhdGUiOjQwNzA4ODAwMDAwMDAsInJvb3RPcmdUaGVtZVR5cGUiOiJjaGVsaW5nemh1Iiwicm9vdE9yZ1N0YXR1cyI6IjEiLCJvcmdUeXBlIjoibHMiLCJzY29wZVR5cGUiOiJhbGwiLCJyb290TWVudU1vdWxkSWQiOiIyIiwib3JnTWVudU1vdWxkSWQiOiIyIiwic3VwZXJBZG1pbiI6IjAiLCJ1c2VyTmFtZUNOIjoi5byg5LiJ5LqaIiwibW9iaWxlIjoiMTUwOTEzMzAwMDAiLCJlbWFpbCI6bnVsbCwic2V4IjoiMSIsInBhc3N3b3JkIjoiZmYwM2NhYjkyMGYyYWM3Yjg3NTI1Y2YzOGEyMjIxOWZlMDI2OWYyNGRmOGIxZWE1ZDU4YWI1OTkiLCJzYWx0IjpudWxsLCJhdXRob3JpdGllcyI6bnVsbCwicGVybUNvZGVzIjpudWxsLCJhY2xNYXAiOm51bGwsImFjY291bnROb25FeHBpcmVkIjp0cnVlLCJhY2NvdW50Tm9uTG9ja2VkIjp0cnVlLCJjcmVkZW50aWFsc05vbkV4cGlyZWQiOnRydWUsImVuYWJsZWQiOnRydWUsImFwcE5hbWUiOm51bGwsImV4dGVuZEluZm8iOm51bGwsImV4dEluZm8iOnt9LCJzb3VyY2VGbGFnIjpudWxsLCJjbGllbnRUeXBlIjpudWxsLCJtdXN0Q2hhbmdlUHdkIjpudWxsLCJleHBlY3RUcnVzdCI6ZmFsc2V9LCJzY29wZSI6WyJhbGwiXSwiZXhwIjoxNjU0NTYzODA1LCJqdGkiOiI0OTM0MGQ5MC0wMTUxLTRiNDgtOTg4YS1iNWI3YWJmN2E1MjciLCJjbGllbnRfaWQiOiJjbGllbnRfcGFzc3dvcmQiLCJzdGF0dXMiOiIyMDAifQ.f05LtCz1-gb5zBCrhW79-MyQpPLoRvBn8Gay99M7Xcw'
  21. }
  22. _obj.header = header
  23. _obj.header['X-HEADER-APPID'] = 'WuyoKG1AcDZzLwxfhOAC+E16SeG3+mDqVYmsa/e5HRE=';
  24. _obj.url = baseUrl + _obj.url;
  25. _obj.method = _obj.method.toUpperCase();
  26. _obj.success = function(res) {
  27. if (_obj.url.indexOf('checkLogin') > -1) {
  28. resolve(res.data);
  29. } else if (res.data.status === '900010') {
  30. setTimeout(function() {
  31. wx.showToast({
  32. title: '登录已过期,请重新登录',
  33. icon: 'none',
  34. duration: 1000
  35. });
  36. }, 10);
  37. setTimeout(function() {
  38. const currentRoute = getRoutePath();
  39. mpvue.removeStorage({
  40. key: 'token'
  41. });
  42. const url = `/pages/login/login?lanuch=${currentRoute.lanuch}&path=` + encodeURIComponent(currentRoute.url);
  43. mpvue.reLaunch({ url });
  44. }, 1000);
  45. } else {
  46. resolve(res.data);
  47. }
  48. };
  49. _obj.fail = function(err) {
  50. reject(err);
  51. };
  52. _obj.complete = function() {};
  53. uni.request(_obj);
  54. });
  55. }
  56. function getRoutePath() {
  57. // eslint-disable-next-line no-undef
  58. const pages = getCurrentPages(); // 获取加载的页面
  59. const currentPage = pages[pages.length - 1]; // 获取当前页面的对象
  60. let url = currentPage.route; // 当前页面url
  61. const options = objToUrl(currentPage.options); // 如果要获取url中所带的参数可以查看options
  62. const lanuch = [
  63. 'pages/personData/personData'
  64. ].includes(url);
  65. url = '/' + url;
  66. if (options.length) {
  67. url += '?' + options;
  68. }
  69. return {
  70. url,
  71. lanuch
  72. };
  73. }
  74. export default request;