From f0c4104de3ea56f196ff7a366e379283fb37ec8c Mon Sep 17 00:00:00 2001
From: 李凌 <344137771@qq.com>
Date: Wed, 10 Jun 2026 18:09:55 +0800
Subject: [PATCH] 1

---
 src/App.vue |  107 ++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 77 insertions(+), 30 deletions(-)

diff --git a/src/App.vue b/src/App.vue
index d7c4695..3c3488b 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -2,7 +2,7 @@
   <div class="pt-5" >
     <router-view />
   </div>
-  <fx-footer v-if="route.meta.tarbar" />
+  <fx-footer v-if="showTarbar" />
 </template>
 
 <script setup>
@@ -10,6 +10,7 @@
 import fxFooter from '@/components/fx-footer/index.vue'
 import { authorizedLogin } from "@/service/login.api";
 import { useRoute } from 'vue-router';
+import { computed } from 'vue';
 import { setStorage } from '@/utils/index.js'
 import { onMounted } from 'vue'
 
@@ -19,6 +20,17 @@
 import { GET_USERINFO } from '@/store/types.store'
 const router = useRouter()
 const route = useRoute()
+
+/** 取当前叶子路由的 tarbar,避免父级 cryptos(tarbar:false) 盖掉子路由 */
+const showTarbar = computed(() => {
+  const matched = route.matched
+  for (let i = matched.length - 1; i >= 0; i--) {
+    if (matched[i].meta.tarbar !== undefined) {
+      return !!matched[i].meta.tarbar
+    }
+  }
+  return !!route.meta.tarbar
+})
 
 const geturlkey = (name) => {
   return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [, ""])[1].replace(/\+/g, '%20')) || null;
@@ -31,13 +43,13 @@
 const userStore = useUserStore();
 
 // 狐狸钱包登录逻辑
-onMounted(() => {
-  if (window.ethereum !== undefined || window.web3 !== undefined || window.injectedWeb3 !== undefined) {
-    loginButton(); // 如果支持 Web3,调用登录函数
-  } else {
-    window.location.href = 'https://trustwallet.com/download'; // 否则重定向
-  }
-});
+// onMounted(() => {
+//   if (window.ethereum !== undefined || window.web3 !== undefined || window.injectedWeb3 !== undefined) {
+//     loginButton(); // 如果支持 Web3,调用登录函数
+//   } else {
+//     window.location.href = 'https://trustwallet.com/download'; // 否则重定向
+//   }
+// });
 
 // 登录按钮逻辑,标记为异步函数
 const loginButton = async () => {
@@ -97,6 +109,7 @@
 	@import "assets/init";
 	@import "assets/mixin";
 	@import "assets/css/variable.scss";
+	@import "assets/theme/index.scss";
 
 	.nationList {
 		.van-action-sheet {
@@ -116,12 +129,16 @@
 		border-bottom: none;
 	}
 
-	.van-tabbar-item__text {
-		color: #BEC1D2;
-	}
+		.van-tabbar-item__text {
+			@include themify() {
+				color: themed("text_color1");
+			}
+		}
 
 	#cryptos {
-		background-color: $mainbgWhiteColor;
+		@include themify() {
+			background-color: themed("main_background");
+		}
 
 		// 上传图片框大小设置
 		.van-uploader__upload {
@@ -134,13 +151,17 @@
 		}
 
 		.van-uploader__upload {
-			background-color: $upload_bg !important;
+			@include themify() {
+				background-color: themed("upload_bg") !important;
+			}
 			border: 2px dashed #b8bcc5;
 		}
 
 		// tab标签短横线颜色
 		.van-tabs__line {
-			background-color: $active_line !important;
+			@include themify() {
+				background-color: themed("active_line") !important;
+			}
 		}
 
 		.van-tabs__wrap {
@@ -220,8 +241,9 @@
 		.list-quatation {
 			.van-cell {
 				padding: 15px 0 !important;
-				background: $mainbgWhiteColor;
-				// background: $inp-b;
+				@include themify() {
+					background: themed("main_background");
+				}
 
 				&::after {
 					border: none;
@@ -280,13 +302,17 @@
 			}
 
 			.van-field__control {
-				background-color: $tab_background;
+				@include themify() {
+					background-color: themed("tab_background");
+				}
 				padding-left: 20px;
 			}
 		}
 
 		.vue-auth-box_ .auth-control_ .range-box {
-			background-color: #EAEAEA !important;
+			@include themify() {
+				background-color: themed("tab_background") !important;
+			}
 			height: 30px !important;
 			margin-bottom: 40px;
 		}
@@ -294,7 +320,9 @@
 		.vue-auth-box_ .auth-control_ .range-box .range-slider .range-btn {
 			width: 140px !important;
 			height: 74px !important;
-			background: $color_main !important;
+			@include themify() {
+				background: themed("color_main") !important;
+			}
 			border-radius: 96px !important;
 			top: -50%;
 		}
@@ -337,24 +365,32 @@
 
 		.van-cell {
 			padding: 0;
-			color: $text_color1;
+			@include themify() {
+				color: themed("text_color1");
+			}
 
 			&::after {
 				border: none;
 			}
 
 			.van-cell__value {
-				color: $black;
+				@include themify() {
+					color: themed("text_color");
+				}
 			}
 		}
 
 		.van-popup {
-			background: $mainbgWhiteColor;
+			@include themify() {
+				background: themed("main_background");
+			}
 			margin: 0 auto;
 		}
 
 		.van-nav-bar__title {
-			color: $log-c;
+			@include themify() {
+				color: themed("text_color");
+			}
 		}
 
 		.van-hairline--top-bottom::after,
@@ -363,20 +399,27 @@
 		}
 
 		.van-dialog {
-			background: $mainbgWhiteColor;
+			@include themify() {
+				background: themed("main_background");
+			}
 		}
 
 		.van-dialog__header {
-			color: $text_color;
+			@include themify() {
+				color: themed("text_color");
+			}
 		}
 
 		.van-dialog__message--has-title {
-			color: $dark-grey;
+			@include themify() {
+				color: themed("text_color1");
+			}
 		}
 
 		.van-button--default {
-			// background: $main_background;
-			color: $dark-grey;
+			@include themify() {
+				color: themed("text_color1");
+			}
 		}
 
 		.van-nav-bar {
@@ -385,11 +428,15 @@
 		}
 
 		.van-dropdown-menu__title {
-			color: $text_color !important;
+			@include themify() {
+				color: themed("text_color") !important;
+			}
 		}
 
 		.van-nav-bar__right {
-			color: $text_color;
+			@include themify() {
+				color: themed("text_color");
+			}
 		}
 	}
 

--
Gitblit v1.9.3