2 lines
3.0 KiB
JavaScript
2 lines
3.0 KiB
JavaScript
"use strict";const e=require("./vendor.js"),o=require("../uni-starter.config.js"),t=e._r.database();function n(e){return!!e&&e.includes("/api/sys/auth/login")}exports.initApp=async function(){o.config.debug,function(){const o=e.index.request;e.index.request=function(t={}){const{url:r,header:s={},method:c="GET",...a}=t;console.log("[Request Interceptor] 开始拦截请求:",{url:r,method:c.toUpperCase(),isLoginApi:n(r),originalOptions:t});let l="";try{l=e.index.getStorageSync("backend-tenant-id")||""}catch(u){console.error("[Request Interceptor] 获取 tenantId 失败:",u)}console.log("[Request Interceptor] tenantId状态:",{tenantId:l,hasTenantId:!!l}),n(r)||l?n(r)?console.log("[Request Interceptor] 这是登录接口,跳过租户ID检查"):console.log("[Request Interceptor] 租户ID存在,正常处理请求"):console.warn("[Request Interceptor] 租户ID为空,但允许请求继续执行,由后端处理认证");const i={"Content-Type":"application/json",...s};if(l&&(i["X-Tenant-Id"]=l),!n(r))try{const o=e.index.getStorageSync("backend-token")||"";o?i.Authorization=`Bearer ${o}`:delete i.Authorization}catch(u){console.error("获取 token 失败:",u)}try{const o=e.index.getStorageSync("backend-role-name")||"";o&&(i["X-Role-Name"]=o);const t=e.index.getStorageSync("backend-scenario")||"";t&&(i["X-Scenario"]=t)}catch(u){console.error("获取 roleName 或 scenario 失败:",u)}const d={...a,url:r,method:c,header:i};return console.log("[Request Interceptor] 准备发送请求:",{url:r,method:c.toUpperCase(),headers:i,hasData:!!a.data}),new Promise(((n,s)=>{console.log("[Request Interceptor] 开始调用原始 uni.request"),o.call(e.index,{...d,success:e=>{console.log("[Request Interceptor] 请求成功:",{url:r,method:c.toUpperCase(),statusCode:e.statusCode,hasData:!!e.data}),t.success&&t.success(e),n(e)},fail:e=>{console.error("[Request Interceptor] 请求失败:",{url:r,method:c.toUpperCase(),error:e,errorMessage:e.errMsg||"未知错误"}),t.fail&&t.fail(e),s(e)},complete:e=>{console.log("[Request Interceptor] 请求完成:",{url:r,method:c.toUpperCase(),hasResponse:!!e}),t.complete&&t.complete(e)}})}))}}(),setTimeout((()=>{try{const e=getApp({allowDefault:!0});e&&e.globalData&&(e.globalData.config=o.config)}catch(e){console.warn("[appInit] 挂载配置失败:",e)}}),1),t.on("error",(function({code:e,message:o}){console.log("onDBError",{code:e,message:o}),console.error(e,o)})),e._r.interceptObject({async invoke({objectName:o,methodName:t,params:n}){"uni-id-co"==o&&(t.includes("loginBy")||["login","registerUser"].includes(t))&&(console.log("执行登录相关云对象"),n[0].inviteCode=await new Promise((o=>{e.index.getClipboardData({success:function(e){if(console.log("剪切板内容:"+e.data),"uniInvitationCode:"==e.data.slice(0,18)){let t=e.data.slice(18,38);console.log("当前用户是其他用户推荐下载的,推荐者的code是:"+t),o(t)}else o()},fail(){console.log("error--"),o()},complete(){e.index.hideToast()}})})))},success(e){console.log(e)},complete(){},fail(e){console.error(e)}})};
|