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