WXL
11 小时以前 05c363fdd7ab04e3bd9a753e2c5d5bfff04d681c
1
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./common/vendor.js"),n=require("./utils/auth.js"),o=require("./stores/user.js"),i=require("./i18n.js"),s=require("./uni_modules/uview-plus/index.js");require("./utils/request.js"),Math;const r={__name:"App",setup(i){const s=["pages/login/Login","pages/login/DingTalkLogin"],r=e=>s.some(n=>e.includes(n));let t=!1;e.onLaunch(()=>{console.log("App Launch");const n=e.index.getLaunchOptionsSync(),o=n.path||"",i=n.query||{};if(console.log("启动参数:",{currentPage:o,query:i}),i.code){if(console.log("检测到免登码(code),准备跳转登录页"),o.includes("login/Login"))return void console.log("当前已在登录页,等待login.vue处理");if(t)return;t=!0,e.index.__isSSOHandling=!0;const n=[];return o&&n.push(`redirect=${encodeURIComponent("/"+o)}`),n.push(`code=${encodeURIComponent(i.code)}`),console.log("跳转到登录页,参数:",n),void setTimeout(()=>{e.index.redirectTo({url:`/pages/login/Login?${n.join("&")}`,success:()=>{setTimeout(()=>{e.index.__isSSOHandling=!1,t=!1},500)},fail:()=>{e.index.__isSSOHandling=!1,t=!1}})},200)}c()});const c=async()=>{const i=o.useUserStore(),s=n.getToken(),t=e.index.getLaunchOptionsSync(),c=t.path||"",u=t.query||{};if(console.log("token检查:",{hasToken:!!s,currentPage:c}),s)try{const n=await e.index.$uapi.get("/getInfo");n&&n.user?(i.setUserInfo(n.user),n.roles&&i.setroleKey(n.roles),r(c)&&e.index.switchTab({url:"/pages/index/index"})):(console.error("token无效"),i.clearUser(),r(c)||e.index.redirectTo({url:"/pages/login/Login"}))}catch(l){console.error("初始化失败:",l),i.clearUser(),r(c)||e.index.redirectTo({url:"/pages/login/Login"})}else if(!r(c)){console.log("无token且不在白名单,跳转登录页");let n="/pages/login/Login";if(c){const e=[];e.push(`redirect=${encodeURIComponent("/"+c)}`);for(const n in u)u[n]&&e.push(`${n}=${encodeURIComponent(u[n])}`);e.length>0&&(n+=`?${e.join("&")}`)}setTimeout(()=>{e.index.redirectTo({url:n})},100)}};return()=>{}}};function t(){const n=e.createSSRApp(r),o=e.createPinia();return n.use(i.i18n),n.use(o),n.use(s.uviewPlus),n.config.globalProperties.$t=i.i18n.global.t,{app:n,i18n:i.i18n,pinia:o}}t().app.mount("#app"),exports.createApp=t;