2 lines
2.1 KiB
JavaScript
2 lines
2.1 KiB
JavaScript
"use strict";const e=require("../common/vendor.js"),t=require("./luch-request/core/Request.js"),o="https://yingji.hexieapi.com/prod-api",r=o.replace(/\/prod-api\/?$/,"");new t.Request({baseURL:o,timeout:1e4});const n=()=>{const t=e.index.getStorageSync("token");return t?`Bearer ${t}`:""};function s(t){setTimeout((()=>{e.index.showToast({title:t,icon:"none",duration:2e3})}),100)}exports.baseUrl=o,exports.getToken=n,exports.requestAPI=t=>{let{url:r,method:a="GET",data:i={},noAuth:d=!1,loadingText:c}="object"==typeof t&&t.url?t:{url:t,method:arguments[1]||"GET",data:arguments[2]||{}};var u;"GET"==a&&(u=i,0!==Object.keys(u).length)&&(r+="?"+(e=>{const t=[];for(let o in e)e.hasOwnProperty(o)&&t.push(encodeURIComponent(o)+"="+encodeURIComponent(e[o]));return t.join("&")})(i)),!1!==c&&e.index.showLoading({title:c||"加载中..."});const l={"Content-Type":"application/json"};if(!d){const e=n();e&&(l.Authorization=e)}return new Promise(((t,n)=>{e.index.request({url:o+r,method:a,data:i,header:l,success:o=>{if(e.index.hideLoading(),200!==o.statusCode)return console.error("HTTP错误:",o.statusCode),void n(`HTTP_${o.statusCode}`);if(o.data&&void 0!==o.data.code)if(200===o.data.code||0===o.data.code||0===o.code)t(o.data);else if(401===o.data.code)e.index.removeStorageSync("token"),e.index.removeStorageSync("userInfo"),s("登录已过期,请重新登录"),setTimeout((()=>{e.index.reLaunch({url:"/pages/login/login"})}),1500),n({code:401,msg:"登录已过期"});else{const e=o.data.msg||o.data.message||o.data.error||o.msg||"请求失败";console.error("接口错误:",o.data),s(e),n({code:o.data.code,msg:e,data:o.data})}else t(o.data)},fail:t=>{console.error("网络请求失败:",t),e.index.hideLoading(),t.errMsg&&t.errMsg.includes("request:fail")?s("网络连接失败,请检查网络设置"):t.errMsg&&t.errMsg.includes("timeout")?s("请求超时,请稍后重试"):s("网络异常,请稍后重试"),n(t)}})}))},exports.toImageUrl=e=>{if(!e)return"";const t=String(e);if(t.startsWith("http://")||t.startsWith("https://"))return t.replace(/\/prod-api(?=\/|$)/,"");const o=t.startsWith("/")?t:`/${t}`;return r+o};
|