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-mDqOmXqOW6lyIsIm9yZ1N0YXR1cyI6IjEiLCJvcmdFeHBpcmVEYXRlIjoiMjA5OS0wMS0wMSIsIm9yZ1RoZW1lVHlwZSI6ImNoZWxpbmd6aHUiLCJyb290T3JnSWQiOiIxMDAwMCIsInJvb3RPcmdTbiI6IjEwMDAwIiwicm9vdE9yZ05hbWUiOiLovabpoobkuLsiLCJyb290T3JnRXhwaXJlRGF0ZSI6IjIwOTktMDEtMDEiLCJyb290T3JnVGhlbWVUeXBlIjoiY2hlbGluZ3podSIsInJvb3RPcmdTdGF0dXMiOiIxIiwib3JnVHlwZSI6ImxzIiwic2NvcGVUeXBlIjoiYWxsIiwicm9vdE1lbnVNb3VsZElkIjoiMiIsIm9yZ01lbnVNb3VsZElkIjoiMiIsInN1cGVyQWRtaW4iOiIwIiwidXNlck5hbWVDTiI6IuW8oOS4ieS6miIsIm1vYmlsZSI6IjE1MDkxMzMwMDAwIiwiZW1haWwiOm51bGwsInNleCI6IjEiLCJwYXNzd29yZCI6ImZmMDNjYWI5MjBmMmFjN2I4NzUyNWNmMzhhMjIyMTlmZTAyNjlmMjRkZjhiMWVhNWQ1OGFiNTk5Iiwic2FsdCI6bnVsbCwiYXV0aG9yaXRpZXMiOm51bGwsInBlcm1Db2RlcyI6bnVsbCwiYWNsTWFwIjpudWxsLCJhY2NvdW50Tm9uRXhwaXJlZCI6dHJ1ZSwiYWNjb3VudE5vbkxvY2tlZCI6dHJ1ZSwiY3JlZGVudGlhbHNOb25FeHBpcmVkIjp0cnVlLCJlbmFibGVkIjp0cnVlLCJhcHBOYW1lIjpudWxsLCJleHRlbmRJbmZvIjpudWxsLCJleHRJbmZvIjp7fSwic291cmNlRmxhZyI6bnVsbCwiY2xpZW50VHlwZSI6bnVsbCwibXVzdENoYW5nZVB3ZCI6bnVsbCwiZXhwZWN0VHJ1c3QiOmZhbHNlfSwic2NvcGUiOlsiYWxsIl0sImV4cCI6MTY1NDA2MjgyNSwianRpIjoiMjUyNDVjNGMtZjhlNy00MTk3LTkyNGYtOTRlNjdmNjcyNTkxIiwiY2xpZW50X2lkIjoiY2xpZW50X3Bhc3N3b3JkIiwic3RhdHVzIjoiMjAwIn0.Jdv8-owZWdbKLoFFSaIZBGfvNNiSV9iYx_9gmNVjd1Q'
  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;