request.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import config from "@/config/index.js"
  2. const baseUrl = process.env.NODE_ENV === 'development' ? config.base.dev : config.base.pro;
  3. import {getToken} from '@/libs/auth.js';
  4. export async function request (params) {//https://www.example.com/request
  5. return new Promise(function(resolve,reject){
  6. try{
  7. uni.showLoading({
  8. title: '加载中',
  9. mask:true
  10. });
  11. uni.request({
  12. ...formatRequestBody(params),
  13. success(response){
  14. let data=response.data;
  15. let code=data.code;
  16. let msg=data.msg
  17. if(code===0){
  18. resolve(data)
  19. }else{
  20. if(code===401){
  21. uni.showToast({
  22. title:msg||"登录失效!",
  23. mask:true,
  24. icon:"none",
  25. complete() {
  26. uni.navigateTo({
  27. url:'/pages/login/index'
  28. })
  29. }
  30. })
  31. }else{
  32. reject(data)
  33. uni.showToast({
  34. title:msg,
  35. mask:true,
  36. icon:"none"
  37. })
  38. }
  39. }
  40. },
  41. fail(res){
  42. uni.showToast({
  43. title:res,
  44. mask:true,
  45. icon:"none"
  46. })
  47. reject(res)
  48. },
  49. complete(res){
  50. uni.hideLoading();
  51. }
  52. })
  53. }catch(err){
  54. console.log(err)
  55. reject(err)
  56. }
  57. })
  58. }
  59. function formatRequestBody(params){
  60. let url= params.url;
  61. url=baseUrl+url;
  62. let data={...params.data};
  63. let header= {
  64. ...params.header
  65. };
  66. header[config.TokenKey]=getToken();
  67. let method=params.method||"get";
  68. let dataType=params.dataType||"json";
  69. let requestBody={url,data,header,method,dataType};
  70. return requestBody;
  71. };