request.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. // 请求域名
  2. //var domain = 'https://kailin.dfwy.tech/'
  3. var domain = 'http://kailin.test/'
  4. // #ifdef MP-WEIXIN
  5. // 'http://127.0.0.1:8000/';
  6. //domain = uni.getAccountInfoSync().miniProgram.envVersion == 'release' ? 'https://mall.findit.ltd/' : 'https://kailin.dfwy.tech/';
  7. // #endif
  8. // 发送网络请求的函数
  9. const request = (url, data = {}, method = 'GET') => {
  10. // 获取登录标识
  11. let userLogin = uni.getStorageSync('userLogin');
  12. // 合并参数
  13. if( userLogin && userLogin.authcode ) data = Object.assign({authcode:userLogin.authcode},data);
  14. // 封装
  15. return new Promise((resolve, reject) => {
  16. uni.request({
  17. url: domain+url,
  18. method: method,
  19. data: data,
  20. success: (res) => {
  21. // 登录提示
  22. if(res.data.code == 'no_login'){
  23. // 清空登录标识
  24. uni.setStorageSync('userLogin',null);
  25. // 清空用户信息
  26. uni.setStorageSync('userInfo',null);
  27. // 前去登录
  28. uni.showModal({
  29. title:"请登录",
  30. success(res){
  31. if (res.confirm) {
  32. // 用户点击确定按钮
  33. uni.navigateTo({
  34. url:"/pages/login/index"
  35. })
  36. }
  37. }
  38. })
  39. }
  40. // 返回结果
  41. resolve(res.data)
  42. },
  43. fail: (err) => {
  44. reject(err)
  45. }
  46. })
  47. })
  48. }
  49. const fileupload = (url, filePath,data = {}) =>{
  50. // 获取登录标识
  51. let userLogin = uni.getStorageSync('userLogin');
  52. // 合并参数
  53. if( userLogin && userLogin.authcode ) data = Object.assign({authcode:userLogin.authcode},data);
  54. // 封装
  55. return new Promise((resolve, reject) => {
  56. uni.uploadFile({
  57. url: domain+url, // 你的上传接口地址
  58. filePath: filePath,
  59. name: 'file', // 必须填写,为了后端接收文件流的参数名字
  60. formData: data,// 其他要上传的参数
  61. success: (res) => {
  62. // 登录提示
  63. if(res.data.code == 'no_login'){
  64. // 前去登录
  65. uni.showModal({
  66. title:"请登录",
  67. success(res){
  68. if (res.confirm) {
  69. // 用户点击确定按钮
  70. uni.navigateTo({
  71. url:"/pages/login/index"
  72. })
  73. }
  74. }
  75. })
  76. }
  77. // 转json,php返回可能会带bom头需要先替换
  78. let resdata = JSON.parse(res.data.replace('\uFEFF',''));
  79. resolve(resdata)
  80. },
  81. fail: (err) => {
  82. reject(err)
  83. }
  84. });
  85. })
  86. }
  87. // 字符串键值对转参数对象
  88. const strToParam = (str, separator = '&')=> {
  89. // 先转码
  90. str = decodeURIComponent(str);
  91. let pairs = str.split(separator);
  92. let result = {};
  93. pairs.forEach(pair => {
  94. let [key, value] = pair.split('=');
  95. result[key] = value;
  96. });
  97. // 返回结果
  98. return result;
  99. }
  100. // 模块导出,{name:object} 为对象式,导出多个使用
  101. // export default {request:request,request1:request1};
  102. // 单个对象,直接导出如下
  103. export default {request:request,fileupload:fileupload,strToParam:strToParam}