upload.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. // 配置项
  2. import Notify from '../miniprogram_npm/@vant/weapp/notify/notify';
  3. import { $startWuxRefresher, $stopWuxRefresher,$stopWuxLoader} from '../miniprogram_npm/wux-weapp/index';
  4. const token = wx.getStorageSync('token')
  5. const config = {
  6. // baseURL: 'http://192.168.1.6:8802', // 基础URL
  7. baseURL: 'https://www.xsip.cn', // 基础URL
  8. timeout: 30000, // 超时时间(单位ms)
  9. header: {
  10. 'content-type': 'application/json', // 默认请求头
  11. // 其他全局请求头...
  12. },
  13. // 其他全局配置...
  14. tabbar:["pages/index/index","pages/hotProduct/hotProduct","pages/mine/mine"]
  15. };
  16. function getPages(){
  17. var obj = {
  18. type: 'danger'
  19. }
  20. var pages = getCurrentPages()
  21. var route = pages[pages.length - 1]?.route
  22. console.log(config.tabbar,route)
  23. if(route && config.tabbar.indexOf(route)==-1){
  24. obj.top = wx.getStorageSync('height')
  25. }
  26. return obj
  27. }
  28. // 封装请求方法
  29. function upload(url="/fileManager/uploadNormalFile", path = '', header = {},formData={}) {
  30. return new Promise((resolve, reject) => {
  31. wx.uploadFile({
  32. url: config.baseURL + url, //仅为示例,非真实的接口地址
  33. filePath: path,
  34. name: 'files',
  35. formData: {
  36. sourceId:5,
  37. ...formData
  38. },
  39. header: {
  40. ...config.header,
  41. ...header,
  42. "Cookie": wx.getStorageSync('token')
  43. },
  44. timeout: config.timeout,
  45. success: function(res){
  46. wx.hideLoading()
  47. var obj = getPages()
  48. if(res.data){
  49. res.data = JSON.parse(res.data)
  50. }
  51. // 根据业务逻辑处理成功响应
  52. if (res.data && res.data.code === 200) { // 假设服务器返回code为200表示成功
  53. resolve(res.data);
  54. } else {
  55. switch(res.data.code){
  56. case 401:
  57. if(isLogin){
  58. // Notify({ type: 'danger', message: '未登录',top:'90' });
  59. obj.message = '未登录'
  60. wx.navigateTo({
  61. url: '/pages/login/login',
  62. })
  63. }
  64. wx.setStorageSync('token', '')
  65. break;
  66. default:
  67. obj.message = '请求失败'
  68. // Notify({ type: 'danger', message: '请求失败',top:'90' });
  69. }
  70. // wx.showToast({
  71. // title: '请求失败',
  72. // icon: 'error',
  73. // duration: 2000
  74. // })
  75. console.log(obj)
  76. if(obj.message){
  77. Notify(obj)
  78. }
  79. reject(res.data.message || '未知错误');
  80. }
  81. if($stopWuxRefresher()){
  82. $stopWuxRefresher()
  83. }
  84. },
  85. fail: function(error) {
  86. console.log(error)
  87. wx.hideLoading()
  88. var obj = getPages()
  89. // 处理请求失败
  90. // wx.showToast({
  91. // title: '请求失败',
  92. // icon: 'error',
  93. // duration: 2000
  94. // })
  95. obj.message = '请求失败'
  96. // Notify({ type: 'danger', message: '请求失败',top:'90' });
  97. Notify(obj)
  98. reject(error);
  99. },
  100. });
  101. });
  102. }
  103. // 导出请求方法
  104. module.exports = {
  105. upload: ( path,formData,url, header) => upload(url, path, header,formData),
  106. };