request.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. import {
  2. HTTP_REQUEST_URL,
  3. HEADER,
  4. TOKENNAME,
  5. HEADERPARAMS
  6. } from '@/config/app';
  7. import {
  8. toLogin,
  9. checkLogin
  10. } from '../libs/login';
  11. import store from '../store';
  12. import {getTerminal} from "./util";
  13. // TODO 芋艿:临时解决 uniapp 在小程序,undefined 会被 tostring 的问题
  14. function deleteUndefinedProperties(obj) {
  15. for (let key in obj) {
  16. if (obj.hasOwnProperty(key)) {
  17. if (typeof obj[key] === 'object' && obj[key] !== null) {
  18. deleteUndefinedProperties(obj[key]); // 递归调用,处理嵌套的对象
  19. } else if (obj[key] === undefined) {
  20. delete obj[key];
  21. }
  22. }
  23. }
  24. }
  25. /**
  26. * 发送请求
  27. */
  28. function baseRequest(url, method, data, {
  29. noAuth = false,
  30. noVerify = false
  31. }, params) {
  32. let Url = HTTP_REQUEST_URL,header = HEADER
  33. if (params != undefined) {
  34. header = HEADERPARAMS;
  35. }
  36. if (!noAuth) {
  37. //登录过期自动登录
  38. if (!store.state.app.token && !checkLogin()) {
  39. // debugger
  40. toLogin();
  41. return Promise.reject({
  42. msg: '未登录'
  43. });
  44. }
  45. }
  46. deleteUndefinedProperties(data)
  47. // TODO 补个 header 多租户
  48. if (url.indexOf('app-api') >= 0) {
  49. header = {
  50. ...header
  51. }
  52. header['tenant-id'] = 1
  53. }
  54. // 终端
  55. header['terminal'] = getTerminal()
  56. if (store.state.app.token) {
  57. // header[TOKENNAME] = store.state.app.token;
  58. header['Authorization'] = 'Bearer ' + store.state.app.token;
  59. }
  60. const isUseSleep = uni.getStorageSync("useSleep")
  61. console.log(uni.getStorageSync("useSleep"),'判断从哪来的,true代表从首页来');
  62. // : 'http://yunai.natapp1.cc/' + url, // TODO 芋艿:搞个 url 的配置
  63. // : 'http://127.0.0.1:48080/' + url, // TODO 芋艿:搞个 url 的配置
  64. // : 'http://api-dashboard.yudao.iocoder.cn/' + url, // TODO 芋艿:搞个 url 的配置
  65. const baseUrl='http://192.168.110.185:48060/'
  66. const sleepUrl='http://api.slaaplekker.cn'
  67. return new Promise((reslove, reject) => {
  68. uni.request({
  69. // url: url.indexOf('app-api') < 0 ? Url + '/api/front/' + url
  70. // url: url.indexOf('app-api') < 0 ? Url + '/api/front/' + url:(isUseSleep ? sleepUrl+url: baseUrl + url), // TODO 芋艿:搞个 url 的配置
  71. // url: isUseSleep ?sleepUrl+url:(url.indexOf('app-api') < 0 ? Url + '/api/front/' + url : baseUrl + url),
  72. url: url.indexOf('app-api') < 0 ? Url + '/api/front/' + url
  73. // :'http://192.168.110.185:48060/'+url,
  74. :'https://5y413b7433.yicp.fun/'+url,
  75. method: method || 'GET',
  76. header: header,
  77. data: data || {},
  78. success: (res) => {
  79. console.log(url=url.indexOf('app-api') < 0 ? Url + '/api/front/' + url
  80. :'http://192.168.110.185:48060/'+url,'成功接口')
  81. console.log(res,'我接口请求成功了')
  82. if (noVerify)
  83. reslove(res.data, res);
  84. else if (res.data.code === 200 || res.data.code === 0)
  85. reslove(res.data, res);
  86. else if ([410000, 410001, 410002, 401].indexOf(res.data.code) !== -1) {
  87. toLogin();
  88. reject(res.data);
  89. } else
  90. reject(res.data.msg || res.data.message || '系统错误');
  91. },
  92. fail: (msg) => {
  93. console.log(url=url.indexOf('app-api') < 0 ? Url + '/api/front/' + url
  94. :'http://192.168.110.185:48060/'+url,'失败接口')
  95. console.log(msg,'我是失败接口')
  96. reject('请求失败');
  97. }
  98. })
  99. });
  100. }
  101. const request = {};
  102. ['options', 'get', 'post', 'put', 'head', 'delete', 'trace', 'connect'].forEach((method) => {
  103. request[method] = (api, data, opt, params) => baseRequest(api, method, data, opt || {}, params)
  104. });
  105. export default request;