request.js 2.8 KB

12
  1. "use strict";const s=require("../common/vendor.js"),w=require("../config/env.js"),m={loadingCount:0,loadingTimer:null,show(t={}){const e={title:"加载中...",mask:!0,delay:300,...t};if(this.loadingCount>0){this.loadingCount++;return}this.loadingTimer=setTimeout(()=>{this.loadingCount>0&&s.index.showLoading({title:e.title,mask:e.mask})},e.delay),this.loadingCount++},hide(){this.loadingCount=Math.max(0,this.loadingCount-1),this.loadingCount===0&&(this.loadingTimer&&(clearTimeout(this.loadingTimer),this.loadingTimer=null),s.index.hideLoading())},forceHide(){this.loadingCount=0,this.loadingTimer&&(clearTimeout(this.loadingTimer),this.loadingTimer=null),s.index.hideLoading()}},n={async get(t,e={},o={}){return this.request(t,"GET",e,o)},async post(t,e={},o={}){return this.request(t,"POST",e,o)},async put(t,e={},o={}){return this.request(t,"PUT",e,o)},async delete(t,e={},o={}){return this.request(t,"DELETE",e,o)},async request(t,e,o,l={}){let a;l.loading===!1?a=!1:a={show:!0,title:"加载中...",mask:!0,delay:300,timeout:1e4,...typeof l.loading=="object"?l.loading:{}};const T={timeout:15e3,...l.request},h=a!==!1&&a.show!==!1;h&&m.show(a);const f=s.index.getStorageSync("deviceInfo")||{},C=f.deviceId||"",y=f.model||"",I=t.includes("?")?"&":"?",q=`${t}${I}sbbs=${C}&sbmc=${y}`;let r=null;h&&a.timeout&&(r=setTimeout(()=>{m.hide(),s.index.showToast({title:"请求超时",icon:"none"})},a.timeout));let p=o;return l.formData&&o&&typeof o=="object"&&(p=Object.keys(o).map(u=>{const d=o[u];return Array.isArray(d)?d.map(i=>`${encodeURIComponent(u)}=${encodeURIComponent(i)}`).join("&"):`${encodeURIComponent(u)}=${encodeURIComponent(d)}`}).join("&")),new Promise((u,d)=>{s.index.request({url:`${w.env.baseUrl}${q}`,method:e,data:p,timeout:T.timeout,header:(()=>{const i={};l.formData?i["content-type"]="application/x-www-form-urlencoded":i["content-type"]="application/json";const c=s.index.getStorageSync("JSESSIONID");return c&&(i.Cookie=`JSESSIONID=${c}`),i})(),success:i=>{r&&clearTimeout(r);const c=i.header,S=c["set-cookie"]||c["Set-Cookie"];if(S){const g=S.match(/JSESSIONID=([^;]+)/);g&&g[1]&&s.index.setStorageSync("JSESSIONID",g[1])}if(i.statusCode===200){const g={data:i.data};u(g)}else d(i)},fail:i=>{r&&clearTimeout(r),s.index.showToast({title:"网络请求失败",icon:"none"}),d(i)},complete:()=>{h&&m.hide()}})})}};n.loadingManager=m;n.silent={get:(t,e={})=>n.get(t,e,{loading:!1}),post:(t,e={})=>n.post(t,e,{loading:!1}),put:(t,e={})=>n.put(t,e,{loading:!1}),delete:(t,e={})=>n.delete(t,e,{loading:!1})};n.withLoading=t=>({get:(e,o={})=>n.get(e,o,{loading:{title:t}}),post:(e,o={})=>n.post(e,o,{loading:{title:t}}),put:(e,o={})=>n.put(e,o,{loading:{title:t}}),delete:(e,o={})=>n.delete(e,o,{loading:{title:t}})});exports.request=n;
  2. //# sourceMappingURL=../../.sourcemap/mp-weixin/utils/request.js.map