From 05c363fdd7ab04e3bd9a753e2c5d5bfff04d681c Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期二, 09 六月 2026 10:21:35 +0800
Subject: [PATCH] 备份上传

---
 App.vue |  172 ++++++++++++++++++---------------------------------------
 1 files changed, 55 insertions(+), 117 deletions(-)

diff --git a/App.vue b/App.vue
index 697eb66..de31839 100644
--- a/App.vue
+++ b/App.vue
@@ -1,159 +1,116 @@
 <script setup>
-import { onLaunch } from '@dcloudio/uni-app';
-import { getToken } from '@/utils/auth';
-import { useUserStore } from '@/stores/user';
+import { onLaunch } from "@dcloudio/uni-app";
+import { getToken } from "@/utils/auth";
+import { useUserStore } from "@/stores/user";
 
-// 瀹氫箟椤甸潰鐧藉悕鍗�
-const pageWhiteList = [
-  'pages/login/Login',
-  'pages/login/DingTalkLogin'
-];
+const pageWhiteList = ["pages/login/Login", "pages/login/DingTalkLogin"];
+const isPageInWhiteList = (currentPage) =>
+  pageWhiteList.some((path) => currentPage.includes(path));
 
-// 鐧藉悕鍗曟鏌�
-const isPageInWhiteList = (currentPage) => {
-  return pageWhiteList.some(path => currentPage.includes(path));
-}
-
-// 鍏ㄥ眬鏍囪
 let isProcessingSSO = false;
 
 onLaunch(() => {
-  console.log('App Launch');
-  
+  console.log("App Launch");
   const launchOptions = uni.getLaunchOptionsSync();
-  const currentPage = launchOptions.path || '';
+  const currentPage = launchOptions.path || "";
   const query = launchOptions.query || {};
-  console.log('鍚姩鍙傛暟:', { currentPage, query, launchOptions });
-  
-  // 鉁� 绗竴姝ワ細妫�鏌ユ槸鍚SO閾炬帴
-  if (query.userName && query.passWord) {
-    console.log('妫�娴嬪埌SSO鍙傛暟锛屽鐞嗕腑...');
-    
-    // 濡傛灉宸茬粡鍦ㄧ櫥褰曢〉锛岀洿鎺ュ鐞�
+  console.log("鍚姩鍙傛暟:", { currentPage, query });
+
+  // 鉁� 鏀逛负妫�娴� code 鍙傛暟
+  if (query.code) {
+    console.log('妫�娴嬪埌鍏嶇櫥鐮�(code)锛屽噯澶囪烦杞櫥褰曢〉');
     if (currentPage.includes('login/Login')) {
-      console.log('褰撳墠宸插湪鐧诲綍椤碉紝绛夊緟login.vue澶勭悊SSO');
+      console.log('褰撳墠宸插湪鐧诲綍椤碉紝绛夊緟login.vue澶勭悊');
       return;
     }
-    
-    // 闃叉閲嶅澶勭悊
-    if (isProcessingSSO) {
-      console.log('姝e湪澶勭悊SSO涓紝璺宠繃');
-      return;
-    }
-    
+    if (isProcessingSSO) return;
     isProcessingSSO = true;
-    
-    // 鉁� 鏋勫缓鐧诲綍椤礥RL锛屾惡甯︽墍鏈夊師濮嬪弬鏁�
+    uni.__isSSOHandling = true;
+
     const queryParams = [];
-    
-    // 鎼哄甫鍘熷椤甸潰璺緞
     if (currentPage) {
       queryParams.push(`redirect=${encodeURIComponent('/' + currentPage)}`);
     }
-    
-    // 鎼哄甫鎵�鏈夋煡璇㈠弬鏁�
-    for (const key in query) {
-      if (query[key]) {
-        queryParams.push(`${key}=${encodeURIComponent(query[key])}`);
-      }
-    }
-    
+    // 鎼哄甫 code 鍙傛暟
+    queryParams.push(`code=${encodeURIComponent(query.code)}`);
+    // 娉ㄦ剰锛氬叾浠栦笟鍔″弬鏁帮紙濡� fcid锛夊凡涓嶅湪 URL 涓婏紝涓嶉渶瑕佹惡甯�
+
     console.log('璺宠浆鍒扮櫥褰曢〉锛屽弬鏁�:', queryParams);
-    
-    // 寤惰繜璺宠浆锛岄伩鍏嶅啿绐�
     setTimeout(() => {
-      uni.redirectTo({ 
+      uni.redirectTo({
         url: `/pages/login/Login?${queryParams.join('&')}`,
         success: () => {
-          console.log('SSO璺宠浆鎴愬姛');
-          isProcessingSSO = false;
+          setTimeout(() => {
+            uni.__isSSOHandling = false;
+            isProcessingSSO = false;
+          }, 500);
         },
         fail: () => {
-          console.log('SSO璺宠浆澶辫触');
+          uni.__isSSOHandling = false;
           isProcessingSSO = false;
         }
       });
     }, 200);
-    
     return;
   }
-  
-  // 绗簩姝ワ細姝e父token妫�鏌�
+
+  // 鍘熸湁 token 妫�鏌ラ�昏緫涓嶅彉锛堜絾娉ㄦ剰鍘绘帀 SSO 鍙傛暟鍒ゆ柇锛�
   handleTokenCheck();
 });
 
-// token妫�鏌ュ嚱鏁�
 const handleTokenCheck = async () => {
   const userStore = useUserStore();
   const token = getToken();
   const launchOptions = uni.getLaunchOptionsSync();
-  const currentPage = launchOptions.path || '';
+  const currentPage = launchOptions.path || "";
   const query = launchOptions.query || {};
-  
-  console.log('token妫�鏌�:', { 
-    hasToken: !!token, 
-    currentPage,
-    query
-  });
-  
-  // 濡傛灉鏈塖SO鍙傛暟锛屽凡鍦ㄤ笂涓�姝ュ鐞�
-  if (query.userName && query.passWord) {
-    return;
-  }
-  
+
+  console.log("token妫�鏌�:", { hasToken: !!token, currentPage });
+
+
   if (!token) {
     if (!isPageInWhiteList(currentPage)) {
-      console.log('鏃爐oken涓斾笉鍦ㄧ櫧鍚嶅崟锛岃烦杞櫥褰曢〉');
-      
-      // 鏋勫缓璺宠浆URL锛屾惡甯﹀綋鍓嶉〉闈俊鎭�
-      let loginUrl = '/pages/login/Login';
+      console.log("鏃爐oken涓斾笉鍦ㄧ櫧鍚嶅崟锛岃烦杞櫥褰曢〉");
+      let loginUrl = "/pages/login/Login";
       if (currentPage) {
         const queryParams = [];
-        queryParams.push(`redirect=${encodeURIComponent('/' + currentPage)}`);
-        
-        // 鎼哄甫鍏朵粬鍙傛暟
+        queryParams.push(`redirect=${encodeURIComponent("/" + currentPage)}`);
         for (const key in query) {
           if (query[key]) {
             queryParams.push(`${key}=${encodeURIComponent(query[key])}`);
           }
         }
-        
         if (queryParams.length > 0) {
-          loginUrl += `?${queryParams.join('&')}`;
+          loginUrl += `?${queryParams.join("&")}`;
         }
       }
-      
       setTimeout(() => {
         uni.redirectTo({ url: loginUrl });
       }, 100);
     }
     return;
   }
-  
+
   try {
     const current = await uni.$uapi.get("/getInfo");
-    
     if (current && current.user) {
       userStore.setUserInfo(current.user);
-      if (current.roles) {
-        userStore.setroleKey(current.roles);
-      }
-      
+      if (current.roles) userStore.setroleKey(current.roles);
       if (isPageInWhiteList(currentPage)) {
-        uni.switchTab({ url: '/pages/index/index' });
+        uni.switchTab({ url: "/pages/index/index" });
       }
     } else {
-      console.error('token鏃犳晥');
+      console.error("token鏃犳晥");
       userStore.clearUser();
       if (!isPageInWhiteList(currentPage)) {
-        uni.redirectTo({ url: '/pages/login/Login' });
+        uni.redirectTo({ url: "/pages/login/Login" });
       }
     }
   } catch (error) {
-    console.error('鍒濆鍖栧け璐�:', error);
+    console.error("鍒濆鍖栧け璐�:", error);
     userStore.clearUser();
     if (!isPageInWhiteList(currentPage)) {
-      uni.redirectTo({ url: '/pages/login/Login' });
+      uni.redirectTo({ url: "/pages/login/Login" });
     }
   }
 };
@@ -161,38 +118,27 @@
 
 <style lang="scss">
 @import "@/uni_modules/uview-plus/index.scss";
-// 涓婚棰滆壊
-$primary-color: #67AFAB;
-$primary-light: rgba($primary-color, 0.1);
-$primary-gradient: linear-gradient(135deg, #67AFAB, #89C4C1);
 
-// 鏂囧瓧棰滆壊
+$primary-color: #67afab;
+$primary-light: rgba($primary-color, 0.1);
+$primary-gradient: linear-gradient(135deg, #67afab, #89c4c1);
 $text-primary: #333333;
 $text-regular: #666666;
 $text-secondary: #999999;
-
-// 鑳屾櫙棰滆壊
-$bg-color: #F5F6FA;
-$card-bg: #FFFFFF;
-
-// 鍔熻兘鑹�
-$success: #67C23A;
-$warning: #E6A23C;
-$danger: #F56C6C;
+$bg-color: #f5f6fa;
+$card-bg: #ffffff;
+$success: #67c23a;
+$warning: #e6a23c;
+$danger: #f56c6c;
 $info: #909399;
-
-// 鍦嗚
 $radius-sm: 4rpx;
 $radius-md: 12rpx;
 $radius-lg: 24rpx;
 $radius-xl: 36rpx;
-
-// 闃村奖
 $shadow-sm: 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
 $shadow-md: 0 4rpx 16rpx rgba(0, 0, 0, 0.08);
 $shadow-lg: 0 8rpx 24rpx rgba(0, 0, 0, 0.12);
 
-// 娣峰叆
 @mixin flex-center {
   display: flex;
   align-items: center;
@@ -212,7 +158,6 @@
   overflow: hidden;
 }
 
-// 閫氱敤鏍峰紡绫�
 .primary-btn {
   background: $primary-gradient;
   color: #fff;
@@ -222,11 +167,9 @@
   line-height: 80rpx;
   text-align: center;
   box-shadow: 0 4rpx 12rpx rgba($primary-color, 0.3);
-  
   &[disabled] {
     opacity: 0.6;
   }
-  
   &:active {
     transform: scale(0.95);
   }
@@ -257,9 +200,8 @@
   position: relative;
   padding-left: 20rpx;
   margin-bottom: 30rpx;
-  
   &::before {
-    content: '';
+    content: "";
     position: absolute;
     left: 0;
     top: 50%;
@@ -275,11 +217,9 @@
   font-size: 32rpx;
   color: $danger;
   font-weight: bold;
-  
   &.free {
     color: $success;
   }
-  
   &.original {
     font-size: 24rpx;
     color: $text-secondary;
@@ -295,14 +235,12 @@
   border-radius: $radius-xl;
   padding: 0 30rpx;
   box-shadow: $shadow-md;
-  
   .icon-search {
     width: 32rpx;
     height: 32rpx;
     margin-right: 20rpx;
     color: $primary-color;
   }
-  
   input {
     flex: 1;
     font-size: 28rpx;
@@ -313,7 +251,7 @@
   }
 }
 
-@import '@/static/style/iconfont.scss';
+// @import "@/static/style/iconfont.scss";
 
 page {
   background-color: $bg-color;

--
Gitblit v1.9.3