"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 t={__name:"App",setup(i){const s=["pages/login/Login","pages/login/DingTalkLogin"],t=e=>s.some(n=>e.includes(n));let r=!1;e.onLaunch(()=>{console.log("App Launch"),e.index.__authPending=!0;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(r)return;r=!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,r=!1},500)},fail:()=>{e.index.__isSSOHandling=!1,r=!1}})},200)}u()});const u=async()=>{const i=o.useUserStore(),s=n.getToken(),r=e.index.getLaunchOptionsSync(),u=r.path||"",c=r.query||{};if(console.log("token检查:",{hasToken:!!s,currentPage:u}),s)try{const n=await e.index.$uapi.get("/getInfo");e.index.__authPending=!1,n&&n.user?(i.setUserInfo(n.user),n.roles&&i.setroleKey(n.roles),t(u)&&e.index.switchTab({url:"/pages/index/index"})):(console.error("token无效"),i.clearUser(),t(u)||e.index.redirectTo({url:"/pages/login/Login"}))}catch(l){console.error("初始化失败:",l),e.index.__authPending=!1,i.clearUser(),t(u)||e.index.redirectTo({url:"/pages/login/Login"})}else if(!t(u)){console.log("无token且不在白名单,跳转登录页");let n="/pages/login/Login";if(u){const e=[];e.push(`redirect=${encodeURIComponent("/"+u)}`);for(const n in c)c[n]&&e.push(`${n}=${encodeURIComponent(c[n])}`);e.length>0&&(n+=`?${e.join("&")}`)}setTimeout(()=>{e.index.redirectTo({url:n})},100)}};return()=>{}}};function r(){const n=e.createSSRApp(t),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}}r().app.mount("#app"),exports.createApp=r;
|