request.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import { objToUrl } from '@/utils/index';
  2. function request(options,hasNoToken) {
  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. const userInfo = uni.getStorageSync('userInfo');
  14. Object.assign(_obj, options);
  15. const header = {
  16. 'USER-TERM-TYPE': 'ipad', // 支付时需要用到 与pad一致
  17. 'App-Type': 2,
  18. 'Version': '1.0.0',
  19. }
  20. if(userInfo.sysUserFlag == '0'){
  21. header['auth-token'] = hasNoToken ? '' : uni.getStorageSync('token')
  22. }else{
  23. header['access-token'] = hasNoToken ? '' : uni.getStorageSync('token')
  24. }
  25. _obj.header = header
  26. _obj.header['X-HEADER-APPID'] = '!z2Yc.aes|STw5oReFk+wACvW4IGVHZsFe+/MgMT9cp0amuic1gqE=';
  27. _obj.url = baseUrl + _obj.url;
  28. _obj.method = _obj.method.toUpperCase();
  29. _obj.success = function(res) {
  30. if (_obj.url.indexOf('checkLogin') > -1) {
  31. console.log(res.data,'res.data checkLogin')
  32. resolve(res.data);
  33. } else if (res.data.status === '900010') {
  34. setTimeout(function() {
  35. wx.showToast({
  36. title: '登录已过期,请重新登录',
  37. icon: 'none',
  38. duration: 1000
  39. });
  40. }, 10);
  41. setTimeout(function() {
  42. const currentRoute = getRoutePath();
  43. uni.setStorageSync('token','')
  44. const url = `/pages/login/login?lanuch=${currentRoute.lanuch}&path=` + encodeURIComponent(currentRoute.url);
  45. uni.reLaunch({
  46. url: url
  47. })
  48. }, 1000);
  49. } else {
  50. resolve(res.data);
  51. }
  52. };
  53. _obj.fail = function(err) {
  54. reject(err);
  55. };
  56. _obj.complete = function() {};
  57. uni.request(_obj);
  58. });
  59. }
  60. function getRoutePath() {
  61. // eslint-disable-next-line no-undef
  62. const pages = getCurrentPages(); // 获取加载的页面
  63. const currentPage = pages[pages.length - 1]; // 获取当前页面的对象
  64. let url = currentPage.route; // 当前页面url
  65. const options = objToUrl(currentPage.options); // 如果要获取url中所带的参数可以查看options
  66. const lanuch = [
  67. 'pages/personData/personData'
  68. ].includes(url);
  69. url = '/' + url;
  70. if (options.length) {
  71. url += '?' + options;
  72. }
  73. return {
  74. url,
  75. lanuch
  76. };
  77. }
  78. export default request;