From 9337c3cf960b60078558b7f942fd27f1ab39364b Mon Sep 17 00:00:00 2001
From: 李凌 <344137771@qq.com>
Date: Tue, 16 Dec 2025 18:29:46 +0800
Subject: [PATCH] 改黑夜样式

---
 src/components/ex-input/index.vue                        |   43 +
 src/views/quotes/components/head.vue                     |   13 
 src/config/theme.js                                      |    4 
 src/views/homePage/components/head.vue                   |   14 
 src/views/my/assets.vue                                  |   38 +
 src/views/cryptos/Trade/index.vue                        |   21 
 src/components/fx-footer/index.vue                       |   18 
 src/assets/css/index.scss                                |   21 
 src/views/quotes/Detail.vue                              |    6 
 src/views/authentication/components/nationalityList.vue  |   26 
 src/views/quotes/components/BuySellTradeTab.vue          |   20 
 src/components/quotes-header/index.vue                   |    2 
 src/assets/image/icon_back.png                           |    0 
 src/components/ex-input/new-input.vue                    |   31 +
 src/views/quotes/OpenTrade.vue                           |    6 
 src/assets/imgs/home/more.png                            |    0 
 src/components/foreign/foreign-contract-header/index.vue |    6 
 src/components/Transform/history-item/index.vue          |   37 +
 src/components/Transform/trade-order-area/index.vue      |    3 
 src/components/Transform/ex-input/index.vue              |   32 +
 src/views/cryptos/AccountChange/index.vue                |    8 
 src/views/cryptos/TrendDetails/index.vue                 |    4 
 src/views/ICO/ico.vue                                    |    2 
 src/components/Transform/trade-head/index.vue            |   12 
 src/views/homePage/index.vue                             |   10 
 src/assets/css/vant-theme.scss                           |  276 +++++++++++++++++
 src/assets/image/icon_back_1.png                         |    0 
 src/components/Transform/mining-exchange-input/index.vue |   42 +
 src/store/modules/vant.js                                |    2 
 src/assets/init.scss                                     |   15 
 src/assets/css/variable.scss                             |    5 
 src/main.js                                              |   12 
 src/components/Transform/assets-head/index.vue           |    3 
 src/components/Transform/mining-account/index.vue        |   12 
 src/assets/imgs/quotes/search.png                        |    0 
 src/assets/theme/_themes.scss                            |    3 
 src/components/fx-header/index.vue                       |    8 
 src/views/usStock/components/BuySellTradeTab.vue         |    2 
 src/App.vue                                              |   79 +++-
 src/views/usStock/Detail.vue                             |    6 
 src/components/Transform/perpetual-open/index.vue        |   80 ++--
 41 files changed, 703 insertions(+), 219 deletions(-)

diff --git a/src/App.vue b/src/App.vue
index 7c128bc..cd79926 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -97,6 +97,7 @@
 	@import "assets/init";
 	@import "assets/mixin";
 	@import "assets/css/variable.scss";
+	@import "assets/theme/index.scss";
 
 	.nationList {
 		.van-action-sheet {
@@ -116,12 +117,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 +139,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 +229,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 +290,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 +308,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 +353,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 +387,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 +416,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");
+			}
 		}
 	}
 
diff --git a/src/assets/css/index.scss b/src/assets/css/index.scss
index f4b1329..12e8b71 100644
--- a/src/assets/css/index.scss
+++ b/src/assets/css/index.scss
@@ -3,6 +3,8 @@
 @tailwind utilities;
 
 @import './variable.scss';
+@import '../theme/index.scss';
+@import './vant-theme.scss';
 
 /* overwite default */
 :root {
@@ -22,19 +24,17 @@
   -webkit-text-size-adjust: 100%;
   --van-sidebar-selected-border-height: 44px !important;
   --van-sidebar-selected-border-width: 2px !important;
-  --van-nav-bar-background: $mainBgColor !important;
-  --van-nav-bar-title-text-color: #fff !important;
-  --van-uploader-upload-background: #232C46 !important;
-  --van-index-anchor-text-color: #fff !important;
 }
+
+/* Vant 组件主题变量已移至 vant-theme.scss */
 
 body {
   width: 100vw;
   height: 100vh;
-  // color: $mainTextColor;
-  color: $log-c;
-  // background-color: $mainBgColor;
-  background-color: $mainbgWhiteColor;
+  @include themify() {
+    background-color: themed("main_background");
+    color: themed("text_color");
+  }
   padding-bottom: constant(safe-area-inset-bottom);
   padding-bottom: env(safe-area-inset-bottom);
 }
@@ -60,7 +60,10 @@
 }
 
 input::-webkit-input-placeholder {
-  color: #c0c4cc;
+  @include themify() {
+    color: themed("text_color1");
+  }
+  opacity: 0.6;
 }
 
 ul,
diff --git a/src/assets/css/vant-theme.scss b/src/assets/css/vant-theme.scss
new file mode 100644
index 0000000..7d3ddd0
--- /dev/null
+++ b/src/assets/css/vant-theme.scss
@@ -0,0 +1,276 @@
+/* Vant 组件黑夜模式主题变量 */
+/* 同时定义在 :root 和 [data-theme="dark"] 上,确保 Vant 组件能正确读取 */
+:root[data-theme="dark"],
+[data-theme="dark"] {
+  /* NavBar 导航栏 */
+  --van-nav-bar-background: #121212 !important;
+  --van-nav-bar-title-text-color: #fff !important;
+  --van-nav-bar-arrow-size: 16px !important;
+  
+  /* Uploader 上传 */
+  --van-uploader-upload-background: #474B62 !important;
+  
+  /* IndexAnchor 索引 */
+  --van-index-anchor-text-color: #fff !important;
+  
+  /* Cell 单元格 */
+  --van-cell-background: #121212 !important;
+  --van-cell-text-color: #fff !important;
+  --van-cell-label-color: #868D9A !important;
+  --van-cell-value-color: #fff !important;
+  --van-cell-border-color: #393E49 !important;
+  
+  /* Field 输入框 */
+  --van-field-label-color: #fff !important;
+  --van-field-input-text-color: #fff !important;
+  --van-field-placeholder-text-color: #868D9A !important;
+  --van-field-icon-size: 16px !important;
+  --van-field-clear-icon-size: 16px !important;
+  --van-field-clear-icon-color: #868D9A !important;
+  --van-field-error-message-color: #ee0a24 !important;
+  --van-field-error-message-text-color: #ee0a24 !important;
+  --van-field-background: #242424 !important;
+  
+  /* Button 按钮 */
+  --van-button-default-background: #474B62 !important;
+  --van-button-default-color: #fff !important;
+  --van-button-primary-background: #b9f641 !important;
+  --van-button-primary-border-color: #b9f641 !important;
+  --van-button-primary-color: #333 !important;
+  --van-button-success-background: #07c160 !important;
+  --van-button-success-border-color: #07c160 !important;
+  --van-button-warning-background: #ff976a !important;
+  --van-button-warning-border-color: #ff976a !important;
+  --van-button-danger-background: #ee0a24 !important;
+  --van-button-danger-border-color: #ee0a24 !important;
+  
+  /* Dialog 对话框 */
+  --van-dialog-background: #121212 !important;
+  --van-dialog-header-font-weight: 500 !important;
+  --van-dialog-header-padding-top: 26px !important;
+  --van-dialog-header-isolated: 16px !important;
+  --van-dialog-message-padding: 26px !important;
+  --van-dialog-message-font-size: 16px !important;
+  --van-dialog-message-line-height: 24px !important;
+  --van-dialog-message-max-height: 60vh !important;
+  --van-dialog-message-text-color: #fff !important;
+  --van-dialog-title-font-size: 18px !important;
+  --van-dialog-title-text-color: #fff !important;
+  --van-dialog-width: 320px !important;
+  --van-dialog-small-screen-width: 90% !important;
+  --van-dialog-border-radius: 8px !important;
+  --van-dialog-close-icon-size: 22px !important;
+  --van-dialog-close-icon-color: #868D9A !important;
+  --van-dialog-close-icon-margin: 16px !important;
+  --van-dialog-button-height: 48px !important;
+  --van-dialog-round-button-height: 36px !important;
+  --van-dialog-confirm-button-text-color: #f7b328 !important;
+  
+  /* Popup 弹出层 */
+  --van-popup-background: #121212 !important;
+  --van-popup-transition: transform 0.3s !important;
+  --van-popup-round-border-radius: 20px !important;
+  --van-popup-close-icon-size: 22px !important;
+  --van-popup-close-icon-color: #868D9A !important;
+  --van-popup-close-icon-margin: 16px !important;
+  --van-popup-close-icon-z-index: 1 !important;
+  
+  /* ActionSheet 动作面板 */
+  --van-action-sheet-max-height: 80% !important;
+  --van-action-sheet-header-height: 48px !important;
+  --van-action-sheet-header-font-size: 16px !important;
+  --van-action-sheet-description-color: #868D9A !important;
+  --van-action-sheet-description-font-size: 14px !important;
+  --van-action-sheet-description-line-height: 20px !important;
+  --van-action-sheet-item-background: #121212 !important;
+  --van-action-sheet-item-font-size: 16px !important;
+  --van-action-sheet-item-line-height: 22px !important;
+  --van-action-sheet-item-text-color: #fff !important;
+  --van-action-sheet-item-disabled-text-color: #868D9A !important;
+  --van-action-sheet-subname-color: #868D9A !important;
+  --van-action-sheet-subname-font-size: 12px !important;
+  --van-action-sheet-subname-line-height: 18px !important;
+  --van-action-sheet-close-icon-size: 22px !important;
+  --van-action-sheet-close-icon-color: #868D9A !important;
+  --van-action-sheet-close-icon-padding: 0 16px !important;
+  --van-action-sheet-cancel-padding-top: 8px !important;
+  --van-action-sheet-cancel-padding-color: #27293B !important;
+  
+  /* Tabbar 标签栏 */
+  --van-tabbar-height: 50px !important;
+  --van-tabbar-z-index: 1 !important;
+  --van-tabbar-background: #1a1a1a !important;
+  --van-tabbar-item-font-size: 12px !important;
+  --van-tabbar-item-text-color: #868D9A !important;
+  --van-tabbar-item-active-color: #f7b328 !important;
+  --van-tabbar-item-active-background: #1a1a1a !important;
+  --van-tabbar-item-margin-bottom: 4px !important;
+  --van-tabbar-item-icon-size: 22px !important;
+  --van-tabbar-item-icon-margin-bottom: 4px !important;
+  
+  /* Tabs 标签页 */
+  --van-tabs-nav-background: #121212 !important;
+  --van-tab-text-color: #868D9A !important;
+  --van-tab-active-text-color: #f7b328 !important;
+  --van-tab-disabled-text-color: #868D9A !important;
+  --van-tab-font-size: 14px !important;
+  --van-tabs-line-height: 44px !important;
+  --van-tabs-card-tab-active-color: #f7b328 !important;
+  --van-tabs-bottom-bar-width: 40px !important;
+  --van-tabs-bottom-bar-height: 3px !important;
+  --van-tabs-bottom-bar-color: #f7b328 !important;
+  
+  /* Toast 轻提示 */
+  --van-toast-max-width: 70% !important;
+  --van-toast-font-size: 14px !important;
+  --van-toast-text-color: #fff !important;
+  --van-toast-loading-icon-color: #fff !important;
+  --van-toast-line-height: 20px !important;
+  --van-toast-border-radius: 8px !important;
+  --van-toast-background: rgba(0, 0, 0, 0.8) !important;
+  --van-toast-icon-size: 36px !important;
+  --van-toast-text-min-width: 96px !important;
+  --van-toast-text-padding: 8px 12px !important;
+  --van-toast-default-padding: 16px !important;
+  --van-toast-default-width: 88px !important;
+  --van-toast-default-min-height: 88px !important;
+  --van-toast-position-top-distance: 20% !important;
+  --van-toast-position-bottom-distance: 20% !important;
+  
+  /* Loading 加载 */
+  --van-loading-text-color: #fff !important;
+  --van-loading-text-font-size: 14px !important;
+  --van-loading-spinner-color: #f7b328 !important;
+  --van-loading-spinner-size: 30px !important;
+  
+  /* Picker 选择器 */
+  --van-picker-background: #121212 !important;
+  --van-picker-toolbar-height: 44px !important;
+  --van-picker-title-font-size: 16px !important;
+  --van-picker-title-line-height: 20px !important;
+  --van-picker-title-text-color: #fff !important;
+  --van-picker-action-padding: 0 16px !important;
+  --van-picker-action-font-size: 14px !important;
+  --van-picker-confirm-action-color: #f7b328 !important;
+  --van-picker-cancel-action-color: #868D9A !important;
+  --van-picker-option-font-size: 16px !important;
+  --van-picker-option-text-color: #fff !important;
+  --van-picker-option-disabled-opacity: 0.3 !important;
+  --van-picker-loading-icon-color: #f7b328 !important;
+  --van-picker-mask-color: linear-gradient(180deg, rgba(18, 18, 18, 0.9), rgba(18, 18, 18, 0.4)), linear-gradient(0deg, rgba(18, 18, 18, 0.9), rgba(18, 18, 18, 0.4)) !important;
+  
+  /* DropdownMenu 下拉菜单 */
+  --van-dropdown-menu-height: 48px !important;
+  --van-dropdown-menu-background: #121212 !important;
+  --van-dropdown-menu-shadow: 0 2px 12px rgba(0, 0, 0, 0.12) !important;
+  --van-dropdown-menu-title-font-size: 15px !important;
+  --van-dropdown-menu-title-text-color: #fff !important;
+  --van-dropdown-menu-title-active-text-color: #f7b328 !important;
+  --van-dropdown-menu-title-disabled-text-color: #868D9A !important;
+  --van-dropdown-menu-title-padding: 0 12px !important;
+  --van-dropdown-menu-title-line-height: 20px !important;
+  --van-dropdown-menu-option-active-color: #f7b328 !important;
+  --van-dropdown-menu-content-max-height: 80% !important;
+  
+  /* Notify 消息通知 */
+  --van-notify-text-color: #fff !important;
+  --van-notify-padding: 12px 16px !important;
+  --van-notify-font-size: 14px !important;
+  --van-notify-line-height: 20px !important;
+  --van-notify-primary-background: #f7b328 !important;
+  --van-notify-success-background: #07c160 !important;
+  --van-notify-warning-background: #ff976a !important;
+  --van-notify-danger-background: #ee0a24 !important;
+  
+  /* Swipe 轮播 */
+  --van-swipe-indicator-size: 6px !important;
+  --van-swipe-indicator-margin: 0 4px !important;
+  --van-swipe-indicator-active-opacity: 1 !important;
+  --van-swipe-indicator-inactive-opacity: 0.3 !important;
+  --van-swipe-indicator-active-background: #f7b328 !important;
+  --van-swipe-indicator-inactive-background: #868D9A !important;
+  
+  /* Grid 宫格 */
+  --van-grid-item-content-padding: 16px 8px !important;
+  --van-grid-item-content-background: #121212 !important;
+  --van-grid-item-content-font-size: 14px !important;
+  --van-grid-item-icon-size: 28px !important;
+  --van-grid-item-text-color: #fff !important;
+  --van-grid-item-text-font-size: 12px !important;
+  --van-grid-item-text-line-height: 16px !important;
+  --van-grid-item-text-margin-top: 8px !important;
+  
+  /* List 列表 */
+  --van-list-text-color: #868D9A !important;
+  --van-list-text-font-size: 14px !important;
+  --van-list-text-line-height: 50px !important;
+  --van-list-loading-icon-size: 16px !important;
+  --van-list-finished-text-color: #868D9A !important;
+  --van-list-error-text-color: #ee0a24 !important;
+  --van-list-text-margin-top: 16px !important;
+  
+  /* PullRefresh 下拉刷新 */
+  --van-pull-refresh-head-height: 50px !important;
+  --van-pull-refresh-head-font-size: 14px !important;
+  --van-pull-refresh-head-text-color: #868D9A !important;
+  
+  /* Search 搜索 */
+  --van-search-padding: 10px 12px !important;
+  --van-search-background: #121212 !important;
+  --van-search-content-background: #242424 !important;
+  --van-search-input-height: 34px !important;
+  --van-search-label-padding: 0 5px !important;
+  --van-search-label-color: #fff !important;
+  --van-search-label-font-size: 14px !important;
+  --van-search-left-icon-color: #868D9A !important;
+  --van-search-action-padding: 0 8px !important;
+  --van-search-action-text-color: #fff !important;
+  --van-search-action-font-size: 14px !important;
+  
+  /* Collapse 折叠面板 */
+  --van-collapse-item-content-background: #121212 !important;
+  --van-collapse-item-content-text-color: #fff !important;
+  --van-collapse-item-content-font-size: 14px !important;
+  --van-collapse-item-content-line-height: 1.5 !important;
+  --van-collapse-item-title-disabled-color: #868D9A !important;
+  
+  /* Checkbox 复选框 */
+  --van-checkbox-icon-color: #868D9A !important;
+  --van-checkbox-checked-icon-color: #f7b328 !important;
+  --van-checkbox-label-color: #fff !important;
+  --van-checkbox-label-margin: 8px !important;
+  
+  /* Radio 单选框 */
+  --van-radio-icon-color: #868D9A !important;
+  --van-radio-checked-icon-color: #f7b328 !important;
+  --van-radio-label-color: #fff !important;
+  --van-radio-label-margin: 8px !important;
+  
+  /* Switch 开关 */
+  --van-switch-on-background: #f7b328 !important;
+  --van-switch-off-background: #474B62 !important;
+  --van-switch-node-background: #fff !important;
+  
+  /* Stepper 步进器 */
+  --van-stepper-background: #242424 !important;
+  --van-stepper-button-icon-color: #fff !important;
+  --van-stepper-input-text-color: #fff !important;
+  --van-stepper-button-disabled-color: #868D9A !important;
+  --van-stepper-button-disabled-icon-color: #868D9A !important;
+  
+  /* Tag 标签 */
+  --van-tag-text-color: #fff !important;
+  --van-tag-border-radius: 2px !important;
+  --van-tag-font-size: 12px !important;
+  --van-tag-line-height: 16px !important;
+  --van-tag-medium-padding: 4px 6px !important;
+  --van-tag-large-padding: 6px 8px !important;
+  --van-tag-round-border-radius: 999px !important;
+  --van-tag-danger-color: #ee0a24 !important;
+  --van-tag-primary-color: #f7b328 !important;
+  --van-tag-success-color: #07c160 !important;
+  --van-tag-warning-color: #ff976a !important;
+  --van-tag-default-color: #242424 !important;
+  --van-tag-plain-background: transparent !important;
+}
+
diff --git a/src/assets/css/variable.scss b/src/assets/css/variable.scss
index 7c029c5..9850b22 100644
--- a/src/assets/css/variable.scss
+++ b/src/assets/css/variable.scss
@@ -1,6 +1,6 @@
 $mainBgColor: #131a2e;
 $mainTextColor: #fff;
-$mainbgWhiteColor: #fff;
+$mainbgWhiteColor: #111;
 
 $main_background:#f7f7f7; //主题色
 $main2_background:#1F233D; //主题浅色背景
@@ -37,8 +37,7 @@
 $c2c_background1: #ccc;
 $c2c_tab_background:#ccc;
 $c2c_tip_background: #aaa;
-// $selectSymbol_background: #131a2e; //自选与选择币种背景颜色
-$selectSymbol_background: #f7f7f7; //自选与选择币种背景颜色
+$selectSymbol_background: #131a2e; //自选与选择币种背景颜色
 $US_tab_background: #1D2439;
 $US_tabActice_background: #112542;
 $lable_color: #B6BDD4;
diff --git a/src/assets/image/icon_back.png b/src/assets/image/icon_back.png
index 13b2635..f6a8c43 100644
--- a/src/assets/image/icon_back.png
+++ b/src/assets/image/icon_back.png
Binary files differ
diff --git a/src/assets/image/icon_back_1.png b/src/assets/image/icon_back_1.png
index f6a8c43..13b2635 100644
--- a/src/assets/image/icon_back_1.png
+++ b/src/assets/image/icon_back_1.png
Binary files differ
diff --git a/src/assets/imgs/home/more.png b/src/assets/imgs/home/more.png
index 26dd7c8..0aff816 100644
--- a/src/assets/imgs/home/more.png
+++ b/src/assets/imgs/home/more.png
Binary files differ
diff --git a/src/assets/imgs/quotes/search.png b/src/assets/imgs/quotes/search.png
index 33881e3..b2f83ce 100644
--- a/src/assets/imgs/quotes/search.png
+++ b/src/assets/imgs/quotes/search.png
Binary files differ
diff --git a/src/assets/init.scss b/src/assets/init.scss
index 3e3f006..848d9ca 100644
--- a/src/assets/init.scss
+++ b/src/assets/init.scss
@@ -1,4 +1,5 @@
 /** ************************* overwrite ****************/
+@import './theme/index.scss';
 
 #cryptos {
   // * {
@@ -298,7 +299,9 @@
 
   /* background */
   .bg-white {
-    background: $white;
+    @include themify() {
+      background: themed("main_background");
+    }
   }
 
   .bg-black {
@@ -315,7 +318,11 @@
   }
 
   .bg-grey {
-    background: $grey;
+    // background: $grey;
+    
+    @include themify() {
+      background: themed("main_background");
+    }
   }
 
   .bg-dark-grey {
@@ -367,7 +374,9 @@
   }
 
   .text-black {
-    color: $black;
+    @include themify() {
+      color: themed("text_color") !important;
+    }
   }
 
   .text-dark-black {
diff --git a/src/assets/theme/_themes.scss b/src/assets/theme/_themes.scss
index 444a23e..ec0d017 100644
--- a/src/assets/theme/_themes.scss
+++ b/src/assets/theme/_themes.scss
@@ -43,7 +43,8 @@
         tab_color:#333, //tab文字颜色
         input_border:#e5e5e5, //输入框边框颜色
     ),
-    dark:(main_background: #121212, //主题色
+    dark:(
+        main_background: #121212, //主题色
         text_color: #fff, //文字颜色
         text_color1: #868D9A, //文字浅色
         text_color2: #B7BDD1, // 资金页面所用对应
diff --git a/src/components/Transform/assets-head/index.vue b/src/components/Transform/assets-head/index.vue
index 9028eb2..e6117bd 100644
--- a/src/components/Transform/assets-head/index.vue
+++ b/src/components/Transform/assets-head/index.vue
@@ -78,8 +78,7 @@
 
   .van-nav-bar__arrow {
     font-size: 48px !important;
-    // color: $dark-grey;
-    color: $log-c;
+    color: $dark-grey;
   }
 
   .van-nav-bar__right{
diff --git a/src/components/Transform/ex-input/index.vue b/src/components/Transform/ex-input/index.vue
index 60791b5..7de8376 100644
--- a/src/components/Transform/ex-input/index.vue
+++ b/src/components/Transform/ex-input/index.vue
@@ -7,12 +7,14 @@
                 <span class="textColor">+{{ dialCode }}</span>
                 <img src="../../assets/image/login/more.png" alt="">
             </div>
-            <input autocomplete="new-password" class="inputBackground" v-if="typeText == 'password'" :type="passwordType"
-                :placeholder="placeholderText" :value="value" @input="onInput" :disabled="disabled">
+            <input autocomplete="new-password" class="inputBackground" v-if="typeText == 'password'"
+                :type="passwordType" :placeholder="placeholderText" :value="value" @input="onInput"
+                :disabled="disabled">
             <input class="inputBackground" v-else type="text" :disabled="disabled" :placeholder="placeholderText"
                 :value="value" @input="onInput">
             <div class="rightCon">
-                <div class="closeBox" v-if="clearBtn" @click="clear"><img src="../../assets/image/login/clear.png" alt="">
+                <div class="closeBox" v-if="clearBtn" @click="clear"><img src="../../assets/image/login/clear.png"
+                        alt="">
                 </div>
                 <div class="eyeBox" v-if="typeText == 'password'" @click="changeType">
                     <img v-if="passwordType == 'password'" src="../../assets/image/login/_close.png" alt="">
@@ -99,9 +101,14 @@
 </script>
 
 <style lang="scss" scoped>
+@import "@/assets/theme/index.scss";
+
 .inputCom {
-    color: $text_color4;
     padding-bottom: 44px;
+
+    @include themify() {
+        color: themed("text_color4");
+    }
 
     .iptbox {
         height: 88px;
@@ -131,7 +138,10 @@
         height: 100%;
         border: none;
         padding-left: 20px;
-        color: $text_color;
+
+        @include themify() {
+            color: themed("text_color");
+        }
     }
 
     .rightCon {
@@ -156,8 +166,11 @@
 
 .tips {
     font-size: 26px;
-    color: $text_color1;
     margin-top: 18px;
+
+    @include themify() {
+        color: themed("text_color1");
+    }
 }
 
 input:-webkit-autofill {
@@ -165,10 +178,13 @@
 }
 
 input::-webkit-input-placeholder {
-    color: $text_color1;
+    @include themify() {
+        color: themed("text_color1");
+    }
 }
 
 .icon {
     transform: scale(2);
     display: inline-block;
-}</style>
\ No newline at end of file
+}
+</style>
\ No newline at end of file
diff --git a/src/components/Transform/history-item/index.vue b/src/components/Transform/history-item/index.vue
index 18a67ef..d888e3d 100644
--- a/src/components/Transform/history-item/index.vue
+++ b/src/components/Transform/history-item/index.vue
@@ -105,17 +105,23 @@
 }
 </script>
 <style lang="scss" scoped>
+@import '@/assets/theme/index.scss';
+
 .history-item {
     border-bottom: 1px solid $inp-b;
 
     padding: 40px 0;
 
     :deep(.van-circle__text) {
-        color: $text_color;
+        @include themify() {
+            color: themed("text_color");
+        }
     }
 
     :deep(.van-circle__hover) {
-        color: $text_color;
+        @include themify() {
+            color: themed("text_color");
+        }
     }
 
     .header-info {
@@ -129,7 +135,9 @@
             align-items: center;
 
             span {
-                color: $text_color;
+                @include themify() {
+                    color: themed("text_color");
+                }
             }
 
             .text-green {
@@ -143,7 +151,10 @@
 
         .text {
             font-size: 28px;
-            color: $text_color6;
+
+            @include themify() {
+                color: themed("text_color1");
+            }
         }
     }
 
@@ -151,16 +162,21 @@
         flex: 1;
 
         .title {
-            color: $dark-grey;
+            // color: $dark-grey;
             font-size: 24px;
+
+            @include themify() {
+                color: themed("text_color2");
+            }
         }
 
         .text {
             font-size: 28px;
-
-            color: $text_color;
-
             margin-top: 10px;
+
+            @include themify() {
+                color: themed("text_color1");
+            }
         }
     }
 
@@ -187,8 +203,11 @@
 
     .detailBtn {
         border: 1px solid #fff;
-        color: $text_color;
         justify-content: space-between;
+
+        @include themify() {
+            color: themed("text_color");
+        }
     }
 
 }
diff --git a/src/components/Transform/mining-account/index.vue b/src/components/Transform/mining-account/index.vue
index 49ddca7..556205d 100644
--- a/src/components/Transform/mining-account/index.vue
+++ b/src/components/Transform/mining-account/index.vue
@@ -267,12 +267,20 @@
 
 #cryptos {
 	.account_card {
-		background: $inp-b !important;
+		// background: $inp-b !important;
 		border-radius: 2.5rem;
 		padding: 1.2rem 2.5rem;
 
+		@include themify() {
+			background: themed("input_background") !important;
+		}
+
 		div {
-			background: $inp-b !important;
+			// background: $inp-b !important;
+
+			@include themify() {
+				background: themed("input_background") !important;
+			}
 		}
 	}
 
diff --git a/src/components/Transform/mining-exchange-input/index.vue b/src/components/Transform/mining-exchange-input/index.vue
index 18fb87b..d3345cc 100644
--- a/src/components/Transform/mining-exchange-input/index.vue
+++ b/src/components/Transform/mining-exchange-input/index.vue
@@ -72,7 +72,7 @@
                   class="w-30 h-30 rounded-full mr-10 currency-icon" />
               </div>
               <div>
-                <div class="item-title textColor">{{ strToArr(item.name.toUpperCase(),'/')[0] }}</div>
+                <div class="item-title textColor">{{ strToArr(item.name.toUpperCase(), '/')[0] }}</div>
               </div>
             </div>
             <div class="text-right" v-if="activeIndex == 0">
@@ -235,10 +235,10 @@
         this.currencyList = this.allCurrencyList
       }
     },
-		strToArr(str, separator = ',') {
-			if (typeof str !== 'string') return [];
-			return str.split(separator);
-		},
+    strToArr(str, separator = ',') {
+      if (typeof str !== 'string') return [];
+      return str.split(separator);
+    },
   },
 };
 </script>
@@ -256,7 +256,10 @@
 
   .van-action-sheet__item {
     background: #0D1323;
-    color: $text_color;
+
+    @include themify() {
+      color: themed("text_color");
+    }
   }
 
 
@@ -268,37 +271,50 @@
 
   .exchange-pop {
     .tab-list {
-      background: $inp-b;
+      // background: $inp-b;
       $tab-r: 90px;
       border-radius: $tab-r;
       height: 180px;
       color: $text_color;
 
+      @include themify() {
+        background: themed("input_background");
+      }
+
       .tab-item {
         text-align: center;
         border-radius: $tab-r;
+
+        @include themify() {
+          background: themed("input_background");
+        }
       }
 
       .active {
-        background: $bg_yellow;
-
+        background: $bg_yellow !important;
         border-radius: $tab-r;
       }
     }
 
     .title {
-      color: $text_color;
-      padding: 30px 0 !important
+      padding: 30px 0 !important;
+
+      @include themify() {
+        color: themed("text_color");
+      }
     }
 
     .search-input {
-      color: $text_color;
-      background: $inp-b;
       border-radius: 80px;
       height: 100px !important;
       display: flex;
       align-items: center;
       padding-left: 30px !important;
+
+      @include themify() {
+        background: themed("input_background");
+        color: themed("text_color");
+      }
     }
 
     .list {
diff --git a/src/components/Transform/perpetual-open/index.vue b/src/components/Transform/perpetual-open/index.vue
index efa2a75..8959a8d 100644
--- a/src/components/Transform/perpetual-open/index.vue
+++ b/src/components/Transform/perpetual-open/index.vue
@@ -123,9 +123,10 @@
               <!-- 张数输入 -->
               <!-- <amount-slider ref="sliderRef" :maxAmount="maxUSDT" @getAmount="getAmount"
                 :propsAmount="form.amount"></amount-slider> -->
-				<div class="btns_box" >
-					<div :class="bfbindex==index?'btns_box_boxs':'btns_box_box'" @click="bfbclick(item,index)" v-for="(item,index) in bfblist" :key="index">{{item.name}}%</div>
-				</div>
+              <div class="btns_box">
+                <div :class="bfbindex == index ? 'btns_box_boxs' : 'btns_box_box'" @click="bfbclick(item, index)"
+                  v-for="(item, index) in bfblist" :key="index">{{ item.name }}%</div>
+              </div>
             </template>
             <template v-if="selectIndex == 1 && userInfo.token">
               <div class="flex justify-between mt-30">
@@ -152,7 +153,7 @@
               </div>
             </template>
 
-            <div class="flex font-24 text-grey justify-between mt-32" >
+            <div class="flex font-24 text-grey justify-between mt-32">
               <div>{{ $t("可用USDT") }}</div>
               <div class="textColor">{{ initFutrue.amount }} USDT</div>
             </div>
@@ -257,7 +258,7 @@
                     '%,rgba(246,70,93,.1) 100%)',
                 }"> -->
 
-              <div v-show="(showType == 0 || showType == 2) " class="w-290 flex justify-between pt-1 font-26"
+              <div v-show="(showType == 0 || showType == 2)" class="w-290 flex justify-between pt-1 font-26"
                 v-for="(item, index) in redData" :key="item + index" @click="onQuickPrice(item.price)" :style="{
                   background:
                     `linear-gradient(to right,${THEME == 'dark' ? '#131A2E' : '#fff'
@@ -541,13 +542,13 @@
     return {
       THEME,
       fixDate,
-	  bfbindex:null,
-	  bfblist:[
-		  {name:'25'},
-		  {name:'50'},
-		  {name:'75'},
-		  {name:'100'}
-	  ],
+      bfbindex: null,
+      bfblist: [
+        { name: '25' },
+        { name: '50' },
+        { name: '75' },
+        { name: '100' }
+      ],
       currentBuyType: '', // 交割合约当前下单的类型,用于弹窗倒计时结束以后,点击再下一单
       timeout2: null,
       timeout: null,
@@ -624,14 +625,14 @@
   },
   methods: {
     reserve,
-	bfbclick(e,i){
-		this.bfbindex = i
-		e = parseInt(e.name)
-		const rate = e / 100; //如0.25
-		this.form.amount = this.maxUSDT * rate
-		var a = this.form.amount
-		this.form.amount = Math.floor(a*100)/100
-	},
+    bfbclick(e, i) {
+      this.bfbindex = i
+      e = parseInt(e.name)
+      const rate = e / 100; //如0.25
+      this.form.amount = this.maxUSDT * rate
+      var a = this.form.amount
+      this.form.amount = Math.floor(a * 100) / 100
+    },
     //获取张数
     getAmount(val) {
       if (!val) {
@@ -956,24 +957,28 @@
 
 <style lang="scss">
 @import "@/assets/init.scss";
-.btns_box_boxs{
-	width: 23%;
-	border: 1px solid #F7B600;
-	text-align: center;
-	border-radius: 10px;
-	color: #F7B600;
+
+.btns_box_boxs {
+  width: 23%;
+  border: 1px solid #F7B600;
+  text-align: center;
+  border-radius: 10px;
+  color: #F7B600;
 }
-.btns_box_box{
-	width: 23%;
-	border: 1px solid #cbcbcb;
-	text-align: center;
-	border-radius: 10px;
+
+.btns_box_box {
+  width: 23%;
+  border: 1px solid #cbcbcb;
+  text-align: center;
+  border-radius: 10px;
 }
-.btns_box{
-	display: flex;
-	justify-content: space-between;
-	align-items: center;
+
+.btns_box {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
 }
+
 #cryptos {
   .perpetual-open {
     font-size: 26px;
@@ -1156,7 +1161,10 @@
 
     .van-action-sheet__item {
       background: transparent !important;
-      color: $text_color;
+
+      @include themify() {
+        color: themed("text_color");
+      }
     }
   }
 
diff --git a/src/components/Transform/trade-head/index.vue b/src/components/Transform/trade-head/index.vue
index 45a680c..b8e7794 100644
--- a/src/components/Transform/trade-head/index.vue
+++ b/src/components/Transform/trade-head/index.vue
@@ -12,10 +12,10 @@
             <img v-if="isReturn" src="@/assets/image/icon_back.png" @click="goBack()" class="w-40 h-40 back mr-50"
               alt="">
             <template v-if="!isChange">
-              <!-- <img src="../../../assets/theme/dark/image/black-convert.png" alt="convert-img" class="w-35 h-35"
-                @click="onSidebar" /> -->
-              <img src="../../../assets/theme/white/image/black-convert.png" alt="convert-img" class="w-35 h-35"
+              <img src="../../../assets/theme/dark/image/black-convert.png" alt="convert-img" class="w-35 h-35"
                 @click="onSidebar" />
+              <!-- <img src="../../../assets/theme/white/image/black-convert.png" alt="convert-img" class="w-35 h-35"
+                @click="onSidebar" /> -->
             </template>
             <!-- 在切换模式下 -->
             <template v-if="isChange">
@@ -26,10 +26,10 @@
               </template>
               <template v-else>
                 <img src="../../../assets/image/icon_back.png" class="w-40 h-40 back mr-50" alt="" @click="backPath()">
-                <!-- <img src="../../../assets/theme/dark/image/black-convert.png" alt="convert-img" class="w-35 h-35"
-                  @click="onSidebar" /> -->
-                <img src="../../../assets/theme/white/image/black-convert.png" alt="convert-img" class="w-35 h-35"
+                <img src="../../../assets/theme/dark/image/black-convert.png" alt="convert-img" class="w-35 h-35"
                   @click="onSidebar" />
+                <!-- <img src="../../../assets/theme/white/image/black-convert.png" alt="convert-img" class="w-35 h-35"
+                  @click="onSidebar" /> -->
               </template>
             </template>
             <div class="flex flex-col pl-21" @click="onSidebar">
diff --git a/src/components/Transform/trade-order-area/index.vue b/src/components/Transform/trade-order-area/index.vue
index a4fa017..c543156 100644
--- a/src/components/Transform/trade-order-area/index.vue
+++ b/src/components/Transform/trade-order-area/index.vue
@@ -587,7 +587,7 @@
 
   display: flex;
 
-  color: $text_color;
+  color: $text_color3;
 
   font-size: 26px;
   align-items: center;
@@ -605,6 +605,7 @@
 .active-bg {
   background: $input_background;
   border-radius: 2.5rem;
+  color: $text_color;
 }
 
 .buyandSell {
diff --git a/src/components/ex-input/index.vue b/src/components/ex-input/index.vue
index 70d8e1a..0faa948 100644
--- a/src/components/ex-input/index.vue
+++ b/src/components/ex-input/index.vue
@@ -8,13 +8,13 @@
         <img src="../../assets/image/login/more.png" alt="">
       </div>
       <!-- <p>{{ passwordType }} {{ props.value }}</p> -->
-      <input autocomplete="off" name="username" class="inputBackground" v-if="typeText == 'password'" :type="passwordType"
-        :placeholder="placeholderText" :value="modelValue" @input="onInput" :disabled="disabled" />
+      <input autocomplete="off" name="username" class="inputBackground" v-if="typeText == 'password'"
+        :type="passwordType" :placeholder="placeholderText" :value="modelValue" @input="onInput" :disabled="disabled" />
       <div class="max-input" v-else>
-        <input autocomplete="off" v-if="max > 0" :maxlength="max" class="inputBackground" type="text" :disabled="disabled"
-        :placeholder="placeholderText" :value="modelValue" @input="onInput" />
-        <input autocomplete="off" v-else  class="inputBackground" type="text" :disabled="disabled"
-        :placeholder="placeholderText" :value="modelValue" @input="onInput" />
+        <input autocomplete="off" v-if="max > 0" :maxlength="max" class="inputBackground" type="text"
+          :disabled="disabled" :placeholder="placeholderText" :value="modelValue" @input="onInput" />
+        <input autocomplete="off" v-else class="inputBackground" type="text" :disabled="disabled"
+          :placeholder="placeholderText" :value="modelValue" @input="onInput" />
       </div>
       <div class="rightCon">
         <div class="closeBox" v-if="clearBtn" @click="clear"><img src="../../assets/image/login/clear.png" alt="" />
@@ -109,15 +109,22 @@
 </script>
 
 <style lang="scss" scoped>
-@import "@/views/authentication/components/intl.css";
+// @import "@/views/authentication/components/intl.css";
+@import "@/assets/theme/index.scss";
 
-.textColor{
-  color: $text_color;
+.textColor {
+  @include themify() {
+    color: themed("text_color") !important;
+  }
 }
+
 .inputCom {
-  color: $text_color;
   padding-bottom: 22px;
   font-size: 14px;
+
+  @include themify() {
+    color: themed("text_color") !important;
+  }
 
   .iptbox {
     height: 44px;
@@ -147,7 +154,10 @@
     height: 100%;
     border: none;
     padding-left: 10px;
-    color: $text_color;
+
+    @include themify() {
+      color: themed("text_color") !important;
+    }
   }
 
   .rightCon {
@@ -172,8 +182,11 @@
 
 .tips {
   font-size: 13px;
-  color: $text_color1;
   margin-top: 9px;
+  
+  @include themify() {
+    color: themed("text_color1") !important;
+  }
 }
 
 input:-webkit-autofill {
@@ -188,9 +201,11 @@
   transform: scale(1.3);
   display: inline-block;
 }
-.max-input{
+
+.max-input {
   width: 100%;
-  input{
+
+  input {
     width: 100%;
   }
 }
diff --git a/src/components/ex-input/new-input.vue b/src/components/ex-input/new-input.vue
index 76712d7..79077ce 100644
--- a/src/components/ex-input/new-input.vue
+++ b/src/components/ex-input/new-input.vue
@@ -115,23 +115,33 @@
 </script>
 
 <style lang="scss" scoped>
-@import "@/views/authentication/components/intl.css";
+// @import "@/views/authentication/components/intl.css";
+@import "@/assets/theme/index.scss";
 
 $inp-b: #f5f5f5;
 
 .inputBackground {
   background: $inp-b;
   border: #d5d5d5 solid 1px;
+
+  // @include themify() {
+  //   background: themed("c2c_background") !important;
+  // }
 }
 
 .textColor {
-  color: $mainBgColor;
+  @include themify() {
+    color: themed("text_color") !important;
+  }
 }
 
 .inputCom {
-  color: $mainBgColor;
   padding-bottom: 22px;
   font-size: 14px;
+
+  @include themify() {
+    color: themed("text_color") !important;
+  }
 
   .iptbox {
     height: 55px;
@@ -161,8 +171,11 @@
     height: 100%;
     border: none;
     padding-left: 10px;
-    color: $mainBgColor;
     border-radius: 20px;
+
+    @include themify() {
+      color: themed("text_color") !important;
+    }
   }
 
   .rightCon {
@@ -187,8 +200,11 @@
 
 .tips {
   font-size: 13px;
-  color: $text_color1;
   margin-top: 9px;
+  
+  @include themify() {
+    color: themed("text_color1") !important;
+  }
 }
 
 input:-webkit-autofill {
@@ -196,7 +212,10 @@
 }
 
 input::-webkit-input-placeholder {
-  color: $dark-grey;
+  
+  @include themify() {
+    color: themed("text_color1") !important;
+  }
 }
 
 .icon {
diff --git a/src/components/foreign/foreign-contract-header/index.vue b/src/components/foreign/foreign-contract-header/index.vue
index a56c647..f6e6a5f 100644
--- a/src/components/foreign/foreign-contract-header/index.vue
+++ b/src/components/foreign/foreign-contract-header/index.vue
@@ -6,10 +6,10 @@
                 <div class="flex justify-start pt-10 pb-5 before">
                     <img src="@/assets/image/icon_back_1.png" class="icon_back_1" alt="" @click="jump()">
                     <div class="flex items-center font-14">
-                        <!-- <img src="@/assets/theme/dark/image/black-convert.png" alt="convert-img" class="w-18 h-18"
-                            @click="onSidebar"> -->
-                        <img src="@/assets/theme/white/image/black-convert.png" alt="convert-img" class="w-18 h-18"
+                        <img src="@/assets/theme/dark/image/black-convert.png" alt="convert-img" class="w-18 h-18"
                             @click="onSidebar">
+                        <!-- <img src="@/assets/theme/white/image/black-convert.png" alt="convert-img" class="w-18 h-18"
+                            @click="onSidebar"> -->
                         <div class="flex pl-10 textColor font-700" @click="onSidebar">
                             <div class="font-35">{{ symbol.toUpperCase() || '--' }}</div>
                             <div class="ml-15">{{ $t('delivery') }}</div>
diff --git a/src/components/fx-footer/index.vue b/src/components/fx-footer/index.vue
index 46c5084..ab54bc0 100644
--- a/src/components/fx-footer/index.vue
+++ b/src/components/fx-footer/index.vue
@@ -193,24 +193,32 @@
 </script>
 
 <style lang="scss" scoped>
+@import '@/assets/theme/index.scss';
+
 :deep(.van-tabbar-item__text) {
   font-size: 12px;
   color: #7f7f7f;
 }
 
 :deep(.van-tabbar-item--active) {
-  background-color: $white;
+  @include themify() {
+    background-color: themed("footer_background");
+  }
 }
 
 .van-tabbar--fixed {
   z-index: 10;
   padding-bottom: constant(safe-area-inset-bottom);
   padding-bottom: env(safe-area-inset-bottom);
-  background-color: $white;
+  @include themify() {
+    background-color: themed("footer_background");
+  }
 }
 
 .van-tabbar--fixed::after {
-  border-color: $white;
+  @include themify() {
+    border-color: themed("footer_background");
+  }
 }
 
 // .blue {
@@ -218,7 +226,9 @@
 // }
 
 .active {
-  color: #292929 !important;
+  @include themify() {
+    color: themed("text_color3") !important;
+  }
 }
 
 .footer {
diff --git a/src/components/fx-header/index.vue b/src/components/fx-header/index.vue
index 05b8ac5..4450dad 100644
--- a/src/components/fx-header/index.vue
+++ b/src/components/fx-header/index.vue
@@ -37,13 +37,17 @@
 </script>
 
 <style lang="scss" scoped>
+@import "@/assets/theme/index.scss";
+
 :deep(.van-icon) {
   font-size: 18px;
   // color: $text_color;
-  color: $log-c;
 }
 
 :deep(.van-nav-bar__title) {
-  color: $log-c;
+  @include themify() {
+    color: themed("text_color");
+  }
+  // color: $text_color;
 }
 </style>
diff --git a/src/components/quotes-header/index.vue b/src/components/quotes-header/index.vue
index 966844f..d4d616d 100644
--- a/src/components/quotes-header/index.vue
+++ b/src/components/quotes-header/index.vue
@@ -1,5 +1,5 @@
 <template lang="pug">
-section.quotes-header.flex.justify-between.p-4.bg-white
+section.quotes-header.flex.justify-between.p-4.mainBackground
     div.flex
         img.w-8.h-8.mr-4(@click="emitSorts" src="@/components/quotes-header/sort.png" alt="sort")
         //- img.w-8.h-8(@click="route('/quotes/edit')" src="@/components/quotes-header/edit.png" alt="edit")
diff --git a/src/config/theme.js b/src/config/theme.js
index 9daf75e..bfece70 100644
--- a/src/config/theme.js
+++ b/src/config/theme.js
@@ -1,4 +1,4 @@
 
-// let theme = 'dark'
-let theme = 'light'
+let theme = 'dark'
+// let theme = 'light'
 export const THEME = theme
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 947c03e..063cd07 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,6 +1,7 @@
 import { createApp } from 'vue'
 import './assets/css/index.scss'
 import './assets/css/init.scss'
+import './assets/theme/index.scss'
 import 'vant/lib/index.css'
 import fxHeader from '@/components/fx-header'
 import 'default-passive-events'
@@ -13,8 +14,12 @@
 import pinia from '@/store'
 import store from '@/store/store'
 import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
+import { getStorage } from '@/utils/utis'
 pinia.use(piniaPluginPersistedstate)
 
+// 初始化主题为黑夜模式
+const theme = getStorage('theme') || 'dark'
+window.document.documentElement.setAttribute('data-theme', theme)
 
 const app = createApp(App)
 const title = import.meta.env.VITE_APP__TITLE
@@ -26,4 +31,11 @@
 app.use(pinia)
 app.use(store)
 
+// 确保store中的主题状态与DOM同步
 app.mount('#app')
+// 在应用挂载后初始化主题
+if (store.state.vant && store.state.vant.theme !== theme) {
+  store.commit('vant/SET_THEME', theme)
+} else if (!store.state.vant || !store.state.vant.theme) {
+  store.commit('vant/SET_THEME', theme)
+}
diff --git a/src/store/modules/vant.js b/src/store/modules/vant.js
index 4e04408..ea0f386 100644
--- a/src/store/modules/vant.js
+++ b/src/store/modules/vant.js
@@ -5,7 +5,7 @@
 export default {
   namespaced: true,
   state: {
-    theme: 'light' || getStorage('theme'), // 主题 light(白天)/dark(夜间)
+    theme: getStorage('theme') || 'dark', // 主题 light(白天)/dark(夜间)
   },
   mutations: {
     "SET_THEME"(state, val) { // 修改主题状态
diff --git a/src/views/ICO/ico.vue b/src/views/ICO/ico.vue
index 7049991..b278d6c 100644
--- a/src/views/ICO/ico.vue
+++ b/src/views/ICO/ico.vue
@@ -125,7 +125,7 @@
         padding: 1rem 0rem;
 
         .ico_item {
-            background-color: #eee;
+            background-color: #333;
             padding: .5rem 1rem;
             border: #aaa solid 1px;
             border-radius: 1rem;
diff --git a/src/views/authentication/components/nationalityList.vue b/src/views/authentication/components/nationalityList.vue
index 7655cd7..e42fdfc 100644
--- a/src/views/authentication/components/nationalityList.vue
+++ b/src/views/authentication/components/nationalityList.vue
@@ -2,8 +2,8 @@
     <div class="nationList">
         <van-action-sheet v-model:show="isShow" :title="props.title">
             <form>
-                <van-search class="tabBackground" v-model="val" :placeholder="$t('entrynational')" @input="onSearch(val)"
-                    @clear="onClear" />
+                <van-search class="tabBackground" v-model="val" :placeholder="$t('entrynational')"
+                    @input="onSearch(val)" @clear="onClear" />
             </form>
 
             <div class="flex pl-30 pr-30 pt-30 pb-30 justify-between list-view box-border textColor container"
@@ -218,15 +218,7 @@
 </script>
 <style lang="scss" scoped>
 @import "intl.css";
-
-:deep(.van-action-sheet__header) {
-    // background-color: $main2_background;
-    // color: $text_color;
-}
-
-.container {
-    // background-color:  $main2_background;
-}
+@import "@/assets/theme/index.scss";
 
 .van-action-sheet__header {
     color: $text_color4;
@@ -234,16 +226,20 @@
 
 .nationList {
     :deep(.van-field__control) {
-        color: $text_color;
+        @include themify() {
+            color: themed("text_color");
+        }
     }
 }
 
 :deep(.van-search__content) {
-    background: $tab_background;
-    color: $text_color;
+    @include themify() {
+        color: themed("text_color");
+        background: themed("tab_background");
+    }
 }
 
 :deep(.van-action-sheet__content) {
-    background:  $selectSymbol_background;
+    background: $selectSymbol_background;
 }
 </style>
diff --git a/src/views/cryptos/AccountChange/index.vue b/src/views/cryptos/AccountChange/index.vue
index 8282852..0a994a8 100644
--- a/src/views/cryptos/AccountChange/index.vue
+++ b/src/views/cryptos/AccountChange/index.vue
@@ -202,11 +202,15 @@
     box-sizing: border-box;
 
     :deep(.van-tab--active .van-tab__text) {
-      color: $text_color;
+      @include themify() {
+        color: themed("text_color");
+      }
     }
 
     :deep(.van-tab__text) {
-      color: $text_color1;
+      @include themify() {
+        color: themed("text_color1");
+      }
     }
   }
 
diff --git a/src/views/cryptos/Trade/index.vue b/src/views/cryptos/Trade/index.vue
index 6b046b8..bd101b6 100644
--- a/src/views/cryptos/Trade/index.vue
+++ b/src/views/cryptos/Trade/index.vue
@@ -651,12 +651,12 @@
 
   .select-box {
     width: 220px;
-
-    background: $inp-b;
-
     margin-right: 20px;
-  }
 
+    @include themify() {
+      background: themed("input_background") !important;
+    }
+  }
 }
 
 .z-100 {
@@ -665,8 +665,12 @@
 
 .option-box {
   z-index: 99;
-  background: $inp-b;
-  box-shadow: 0px 0px 0.1875rem 0.1875rem $inp-b;
+
+  @include themify() {
+    background: themed("input_background");
+    box-shadow: 0px 0px 0.1875rem 0.1875rem themed("input_background");
+    color: themed("text_color");
+  }
 }
 
 :deep(.van-action-sheet__content) {
@@ -674,7 +678,10 @@
 
   .van-action-sheet__item {
     background: transparent;
-    color: $text_color;
+
+    @include themify() {
+      color: themed("text_color");
+    }
   }
 
 }
diff --git a/src/views/cryptos/TrendDetails/index.vue b/src/views/cryptos/TrendDetails/index.vue
index f52d691..81cc86b 100644
--- a/src/views/cryptos/TrendDetails/index.vue
+++ b/src/views/cryptos/TrendDetails/index.vue
@@ -550,8 +550,8 @@
 }
 
 :deep(.van-tabs__nav) {
-  // background-color: $night !important;
-  background-color: $inp-b !important;
+  background-color: $night !important;
+  // background-color: $inp-b !important;
 }
 
 @keyframes animate1 {
diff --git a/src/views/homePage/components/head.vue b/src/views/homePage/components/head.vue
index 4a5725e..39f7d08 100644
--- a/src/views/homePage/components/head.vue
+++ b/src/views/homePage/components/head.vue
@@ -1,10 +1,13 @@
 <template>
     <div class="head flex justify-between items-center pl-5 pr-5">
-        <div class="more mr-5"><img src="@/assets/imgs/home/more.png" alt="" @click="onRoute('/my')"></div>
-        <div class="more_input pl-5 pr-5 flex items-center justify-start mr-5 pt-2">
+        <div class="more mr-5">
+            <img src="@/assets/imgs/home/more.png" alt="" @click="onRoute('/my')">
+        </div>
+
+        <div class="more_input tabBackground1 pl-5 pr-5 flex items-center justify-start mr-5 pt-2">
             <img src="@/assets/imgs/quotes/search.png" alt="">
             <!-- <span class="pl-5">{{ $t('请输入关键词搜寻') }}</span> -->
-            <van-field v-model="iValue" :placeholder="$t('请输入关键词搜寻')" style="background-color: #F7F7F7;padding: 0 1rem;"
+            <van-field v-model="iValue" :placeholder="$t('请输入关键词搜寻')" style="padding: 0 1rem;"
                 @input="emit('search', iValue)" />
         </div>
         <div class="scan"><img src="@/assets/image/assets-center/language.png" alt="" @click="onRoute('/language')">
@@ -40,8 +43,6 @@
 <style lang="scss" scoped>
 .head {
     width: 100%;
-    $inp-bg: #F7F7F7;
-    $inp-c: #999;
     margin-bottom: 1rem;
 
     .more,
@@ -53,11 +54,10 @@
 
     .more_input {
         // width: 26rem;
+        // background: #fff;
         width: 100%;
         height: 4.5rem;
-        background: $inp-bg;
         border-radius: 2.25rem;
-        color: $inp-c;
         font-size: 1.5rem;
 
         span {
diff --git a/src/views/homePage/index.vue b/src/views/homePage/index.vue
index c80b301..24911b8 100644
--- a/src/views/homePage/index.vue
+++ b/src/views/homePage/index.vue
@@ -1,5 +1,5 @@
 <template>
-    <div class="home_page">
+    <div class="home_page mainBackground textColor">
 
         <Head @search="onSearch"></Head>
         <!-- <div class="home_logo flex justify-center"><img src="@/assets/imgs/home/home_logo.png" alt=""></div> -->
@@ -112,7 +112,7 @@
     // { key: 3, name: `C2C ${t('交易')}`, icon: new URL('@/assets/imgs/home/home_3.png', import.meta.url) },
     // { key: 4, name: t('邀请好友'), icon: new URL('@/assets/imgs/home/home_4.png', import.meta.url) },
     // { key: 5, name: t('合约'), icon: new URL('@/assets/imgs/home/home_5.png', import.meta.url), path: '/trade/index' },
-    { key: 6, name: t('现货'), icon: new URL('@/assets/imgs/home/home_5.png', import.meta.url), path: '/cryptos/trade/btcusdt' },
+    // { key: 6, name: t('现货'), icon: new URL('@/assets/imgs/home/home_5.png', import.meta.url), path: '/cryptos/trade/btcusdt' },
     { key: 2, name: t('储值'), icon: new URL('@/assets/imgs/home/home_2.png', import.meta.url), path: '/cryptos/recharge/rechargeList?isForeign=true' },
     // { key: 7, name: t('提现'), icon: new URL('@/assets/imgs/home/home_6.png', import.meta.url), path: '/exchange/withdraw-usdt' }
     { key: 7, name: t('提现'), icon: new URL('@/assets/imgs/home/home_6.png', import.meta.url), path: '/cryptos/Withdraw/withdrawPage' },
@@ -121,7 +121,7 @@
     // { key: 9, name: t('划转'), icon: new URL('@/assets/imgs/home/home_8.png', import.meta.url), path: '/my/transfer' },
     // { key: 10, name: t('更多'), icon: new URL('@/assets/imgs/home/home_9.png', import.meta.url) },
 
-    { key: 11, name: "STO", icon: new URL('@/assets/imgs/home/home_1.png', import.meta.url), path: '/ICO/ico' },
+    // { key: 11, name: "STO", icon: new URL('@/assets/imgs/home/home_1.png', import.meta.url), path: '/ICO/ico' },
     // { key: 12, name: "C2C", icon: new URL('@/assets/imgs/home/home_1.png', import.meta.url), path: '/wantBuy' },
     // { key: 13, name: t('质押'), icon: new URL('@/assets/imgs/home/home_1.png', import.meta.url), path: '' },
     { key: 14, name: t('onLineService'), icon: new URL('@/assets/imgs/home/home_10.png', import.meta.url), path: '/customerService' },
@@ -229,12 +229,12 @@
 
 <style lang="scss">
 .home_page {
-    background: $white;
+    // background: $white;
     min-height: 100vh;
     width: 100%;
     padding: 1rem 1rem 10rem 1rem;
     // $log-c: #282828;
-    $tab-c: #343434;
+    $tab-c: #888;
     $inp-c: #999;
     $crd-b: #f7f7f7;
 
diff --git a/src/views/my/assets.vue b/src/views/my/assets.vue
index c32e872..f6e505d 100644
--- a/src/views/my/assets.vue
+++ b/src/views/my/assets.vue
@@ -185,12 +185,16 @@
 
 
 <style lang="scss" scoped>
+@import '@/assets/theme/index.scss';
+
 .assets {
     min-height: 100vh;
     background: $mainbgWhiteColor;
     padding: 2.8rem 2rem 10rem 2rem;
-    $assets_title_color: #9a9a9a;
-    color: $assets_title_color;
+
+    @include themify() {
+        color: themed("text_color2");
+    }
 
     :deep(.van-cell) {
         padding-left: 0;
@@ -216,8 +220,11 @@
     }
 
     .assets_money {
-        color: $text_color4;
         font-size: 3.4rem;
+
+        @include themify() {
+            color: themed("text_color");
+        }
 
         .pricing_jj {
             font-size: 1.6rem;
@@ -249,13 +256,19 @@
 
     .assets_revenue {
         font-size: 2rem;
-        color: #646464;
         font-weight: 600;
 
+        @include themify() {
+            color: themed("text_color1");
+        }
+
         span {
-            color: #6e6e6e;
             text-decoration: underline dotted;
             font-weight: 400;
+
+            @include themify() {
+                color: themed("text_color1");
+            }
         }
     }
 
@@ -264,7 +277,10 @@
             $item_width: 8.3rem;
             width: $item_width;
             font-size: 1.8rem;
-            color: $text_color4;
+
+            @include themify() {
+                color: themed("text_color2");
+            }
 
             img {
                 height: $item_width;
@@ -296,8 +312,11 @@
     }
 
     .assets_item {
-        color: $text_color4;
         font-size: 2.1rem;
+
+        @include themify() {
+            color: themed("text_color2");
+        }
 
         .icon {
             width: 1.8rem;
@@ -313,8 +332,11 @@
         }
 
         .assets_item_light {
-            color: #9b9b9b;
             font-weight: 300;
+
+            @include themify() {
+                color: themed("text_color2");
+            }
         }
     }
 }
diff --git a/src/views/quotes/Detail.vue b/src/views/quotes/Detail.vue
index f6eb2e1..a0d9aee 100644
--- a/src/views/quotes/Detail.vue
+++ b/src/views/quotes/Detail.vue
@@ -7,10 +7,10 @@
             <img src="@/assets/image/back.png" alt="">
           </div>
           <div class="name-box">
-            <!-- <img src="@/assets/theme/dark/image/black-convert.png" alt="convert-img" class="convert-img"
-              @click="onSidebar" /> -->
-            <img src="@/assets/theme/white/image/black-convert.png" alt="convert-img" class="convert-img"
+            <img src="@/assets/theme/dark/image/black-convert.png" alt="convert-img" class="convert-img"
               @click="onSidebar" />
+            <!-- <img src="@/assets/theme/white/image/black-convert.png" alt="convert-img" class="convert-img"
+              @click="onSidebar" /> -->
             <p class="title">{{ chartData?.name }}&nbsp;&nbsp;</p>
             <p class="type">{{ symbol }}</p>
           </div>
diff --git a/src/views/quotes/OpenTrade.vue b/src/views/quotes/OpenTrade.vue
index 8b35659..f6738b5 100644
--- a/src/views/quotes/OpenTrade.vue
+++ b/src/views/quotes/OpenTrade.vue
@@ -7,10 +7,10 @@
             <img src="@/assets/image/back.png" alt="" @click="onRoute">
           </div>
           <p class="title">
-            <!-- <img src="@/assets/theme/dark/image/black-convert.png" alt="convert-img" class="convert-img"
-              @click="onSidebar" /> -->
-            <img src="@/assets/theme/white/image/black-convert.png" alt="convert-img" class="convert-img"
+            <img src="@/assets/theme/dark/image/black-convert.png" alt="convert-img" class="convert-img"
               @click="onSidebar" />
+            <!-- <img src="@/assets/theme/white/image/black-convert.png" alt="convert-img" class="convert-img"
+              @click="onSidebar" /> -->
             <span class="text">{{ `${symbolName} (${symbol})` }}</span>
           </p>
         </div>
diff --git a/src/views/quotes/components/BuySellTradeTab.vue b/src/views/quotes/components/BuySellTradeTab.vue
index aff4c8e..1c60f5d 100644
--- a/src/views/quotes/components/BuySellTradeTab.vue
+++ b/src/views/quotes/components/BuySellTradeTab.vue
@@ -47,7 +47,8 @@
               <img src="@/assets/image/quotes/grey-select.png" alt="select-icon" class="select-icon" />
             </div>
             <div class="option-box" v-show="isShow">
-              <div class="font-30" v-for="(item, index) in selectData" :key="item.type" @click="selectItem(item, index)">
+              <div class="font-30" v-for="(item, index) in selectData" :key="item.type"
+                @click="selectItem(item, index)">
                 {{
                   item.title }}
               </div>
@@ -92,7 +93,7 @@
         </div>
         <van-button type="danger" class="buy-btn" @click="handleOrder()">{{ props.isSell ? (t('卖出'))
           : (t('买入'))
-        }}</van-button>
+          }}</van-button>
         <p class="desc">
           <span class="label">
             {{ t('IndividualStockPositions') }}:<span class="num">100%</span>
@@ -120,7 +121,8 @@
           </ul>
 
         </div>
-        <img src="../../../assets/image/public/record.png" alt="record-img" class="pr-5 record-img " @click="goHistory" />
+        <img src="../../../assets/image/public/record.png" alt="record-img" class="pr-5 record-img "
+          @click="goHistory" />
       </div>
     </div>
     <section class="etf-container">
@@ -255,16 +257,16 @@
       </section>
       <div class="kline-container flex" v-if="showKlineChart">
         <div class="chart-index">
-          <fx-kline :height="500" :symbol="symbol" :isShowsolid="true" :chartType="chartType" v-if="symbol" @data="onData"
-            :key="`${symbol}-${timeValue}`" />
+          <fx-kline :height="500" :symbol="symbol" :isShowsolid="true" :chartType="chartType" v-if="symbol"
+            @data="onData" :key="`${symbol}-${timeValue}`" />
         </div>
       </div>
     </div>
   </section>
 </template>
-    
+
 <script setup>
-import { ref, onMounted, onBeforeUnmount, computed, reactive, onUnmounted, watch,defineExpose } from 'vue';
+import { ref, onMounted, onBeforeUnmount, computed, reactive, onUnmounted, watch, defineExpose } from 'vue';
 import { useRoute, useRouter } from 'vue-router';
 import { Tab, Tabs } from 'vant';
 import {
@@ -683,7 +685,7 @@
       no_zeroList.value = res.no_zero;
     })
 }
-const loadInit = () =>{
+const loadInit = () => {
   activePercenIndex.value = -1
   form.total = ''
   form.volume = ''
@@ -750,7 +752,7 @@
 }
 
 :deep(.van-overlay) {
-  background: rgba(0, 0, 0, .5);
+  background: rgba(255, 2550, 255, .5);
 }
 
 :deep(.van-popup) {
diff --git a/src/views/quotes/components/head.vue b/src/views/quotes/components/head.vue
index 5532f01..e41d3b2 100644
--- a/src/views/quotes/components/head.vue
+++ b/src/views/quotes/components/head.vue
@@ -4,7 +4,7 @@
         <div class="more_input pl-20 pr-5 flex items-center justify-start mr-5 pt-2">
             <img src="@/assets/imgs/quotes/search.png" alt="">
             <!-- <span class="pl-5">{{ $t('请输入关键词搜寻') }}</span> -->
-            <van-field v-model="iValue" :placeholder="$t('请输入关键词搜寻')" style="background-color: #F7F7F7;"
+            <van-field v-model="iValue" :placeholder="$t('请输入关键词搜寻')" style="background: none;"
                 @input="emit('search', iValue)" />
         </div>
     </div>
@@ -28,20 +28,23 @@
 
 
 <style lang="scss" scoped>
+@import '@/assets/theme/index.scss';
+
 .head {
     width: 100%;
-    $inp-bg: #F7F7F7;
-    $inp-c: #999;
     margin-bottom: 1rem;
 
     .more_input {
         width: 100%;
         height: 4.5rem;
-        background: $inp-bg;
         border-radius: 2.25rem;
-        color: $inp-c;
         font-size: 1.5rem;
 
+        @include themify() {
+            background-color: themed("input_background");
+            color: themed("text_color1");
+        }
+
         span {
             text-overflow: ellipsis;
             overflow: hidden;
diff --git a/src/views/usStock/Detail.vue b/src/views/usStock/Detail.vue
index 890e88c..5046206 100644
--- a/src/views/usStock/Detail.vue
+++ b/src/views/usStock/Detail.vue
@@ -7,10 +7,10 @@
             <img src="@/assets/image/back.png" alt="">
           </div>
           <div class="name-box">
-            <!-- <img src="@/assets/theme/dark/image/black-convert.png" alt="convert-img" class="convert-img"
-              @click="onSidebar" /> -->
-            <img src="@/assets/theme/white/image/black-convert.png" alt="convert-img" class="convert-img"
+            <img src="@/assets/theme/dark/image/black-convert.png" alt="convert-img" class="convert-img"
               @click="onSidebar" />
+            <!-- <img src="@/assets/theme/white/image/black-convert.png" alt="convert-img" class="convert-img"
+              @click="onSidebar" /> -->
             <p class="title">{{ enName }}&nbsp;&nbsp;</p>
             <p class="type">{{ symbol }}</p>
           </div>
diff --git a/src/views/usStock/components/BuySellTradeTab.vue b/src/views/usStock/components/BuySellTradeTab.vue
index 825f427..8fc8595 100644
--- a/src/views/usStock/components/BuySellTradeTab.vue
+++ b/src/views/usStock/components/BuySellTradeTab.vue
@@ -603,7 +603,7 @@
 }
 
 :deep(.van-overlay) {
-  background: rgba(0, 0, 0, .5);
+  background: rgba(255, 2550, 255, .5);;
 }
 
 :deep(.van-popup) {

--
Gitblit v1.9.3