zhb 1 mese fa
parent
commit
eb8ebce276

+ 2 - 2
components/cwg-icon.vue

@@ -1,5 +1,5 @@
 <template>
-	<SvgIcon :color="isDark ? darkColor : color" :icon="props.name || props.icon" class="icon" :height="size" :width="size" />
+	<SvgIcon :color="color" :icon="props.name || props.icon" class="icon" :height="size" :width="size" />
 </template>
 
 <script setup>
@@ -32,7 +32,7 @@ const props = defineProps({
 	},
 	darkColor: {
 		type: String,
-		default: "#fff"
+		default: ""
 	}
 });
 

+ 1 - 1
components/cwg-language.vue

@@ -2,7 +2,7 @@
   <view class="cwg-language">
     <cwg-dropdown :menu-list="customMenuList" @menuClick="handleMenuClick">
       <view class="pc-header-btn">
-        <cwg-icon name="cwg-lang" :color="iconColor" :size="20" />
+        <cwg-icon name="cwg-lang" :color="iconColor " :size="20" />
       </view>
     </cwg-dropdown>
   </view>

+ 27 - 12
components/cwg-sidebar.vue

@@ -75,16 +75,21 @@
       </view>
     </view>
     <view class="menu fixed">
-      <view class="menu-item ib-box" @click="setMode('customer')" v-if="mode !== 'customer'">
-        <cwg-icon name="crm-trade" :size="20" color="#6c8595" />
+      <view
+        class=" menu-item btn-danger btn btn-app-nav btn-danger btn-shadow mb-2 w-100 waves-effect ib-box btn-mode menu-item ib-box"
+        @click="setMode('customer')" v-if="mode !== 'customer'">
+        <cwg-icon name="crm-trade" :size="20" :color="'#fff'" />
         <view class="menu-label" v-t="'Home.msg.Custom'" />
       </view>
-      <view class="menu-item ib-box" @click="setMode('ib')" v-if="mode !== 'ib' && ibStatus">
-        <cwg-icon name="crm-ib" :size="20" color="#6c8595" />
+      <view
+        class=" menu-item btn-danger btn btn-app-nav btn-danger btn-shadow mb-2 w-100 waves-effect ib-box btn-mode menu-item ib-box"
+        @click="setMode('ib')" v-if="mode !== 'ib' && ibStatus">
+        <cwg-icon name="crm-ib" :size="20" :color="'#fff'" />
         <view class="menu-label" v-t="'Home.msg.Ib'" />
       </view>
-      <view class="menu-item ib-box" @click="setMode('follow')" v-if="mode !== 'follow'">
-        <cwg-icon name="crm-gd" :size="20" color="#6c8595" />
+      <view
+        class=" menu-item btn-danger btn btn-app-nav btn-danger btn-shadow mb-2 w-100 waves-effect ib-box btn-mode menu-item ib-box">
+        <cwg-icon name="crm-gd" :size="20" :color="'#fff'" />
         <view class="menu-label" v-t="'Documentary.title'" />
       </view>
     </view>
@@ -102,6 +107,9 @@ import { userToken } from '@/composables/config'
 import useRouter from '@/hooks/useRouter'
 import { useI18n } from 'vue-i18n'
 import { documentaryApi } from '@/service/documentary'
+import useGlobalStore from '@/stores/use-global-store'
+const globalStore = useGlobalStore()
+const isDark = computed(() => globalStore.theme === 'dark')
 
 const { t } = useI18n()
 const router = useRouter()
@@ -448,13 +456,12 @@ onUnmounted(() => {
     box-sizing: border-box;
     font-size: 14px;
 
+
     .menu-label {
       flex: 1;
     }
 
     &:hover {
-      background: rgba(108, 133, 149, 0.12) !important;
-      border: 1px solid rgb(145, 163, 176) !important;
       border-radius: px2rpx(4);
     }
 
@@ -469,12 +476,16 @@ onUnmounted(() => {
     background-color: var(--bs-btn-bg);
     font-size: px2rpx(18);
     font-weight: 600;
-    color: var(--bs-emphasis-color);
+    justify-content: center;
+    align-items: center;
+    gap: px2rpx(8);
+    display: flex;
+    color: #fff;
 
     &:hover {
-      color: var(--bs-btn-hover-color);
-      background-color: var(--bs-btn-hover-bg);
-      border-color: var(--bs-btn-hover-border-color);
+      // color: var(--bs-btn-hover-color);
+      // background-color: var(--bs-btn-hover-bg);
+      // border-color: var(--bs-btn-hover-border-color);
     }
   }
 
@@ -491,6 +502,10 @@ onUnmounted(() => {
     align-items: center;
     justify-content: center;
     gap: px2rpx(8);
+
+    .menu-label {
+      flex: none;
+    }
   }
 }
 </style>

+ 4 - 1
components/cwg-submenu.vue

@@ -4,7 +4,7 @@
             <view class="cwg-submenu-item" :class="{ 'active': activePath === item.path }" v-for="item in submenuItems"
                 :key="item.path" @click="handleClick(item)">
                 <text v-t="item.label"></text>
-                <cwg-icon v-if="item.isExternal" name="crm-fx" :size="20" color="#6c8595" />
+                <cwg-icon v-if="item.isExternal" name="crm-fx" :size="20" :color="!isDark ? '#6c8595' : '#fff'" />
             </view>
         </view>
     </view>
@@ -21,6 +21,9 @@ import useRouter from "@/hooks/useRouter";
 const router = useRouter();
 import useRoute from '@/hooks/useRoute'
 const route = useRoute()
+import useGlobalStore from '@/stores/use-global-store'
+const globalStore = useGlobalStore()
+const isDark = computed(() => globalStore.theme === 'dark')
 interface MenuItem {
     key: string;
     label: string;

+ 2 - 2
components/cwg-system.vue

@@ -3,7 +3,7 @@
     <cwg-dropdown :menu-list="systemMenuList" @menuClick="handleMenuClick">
       <view class="pc-header-btn">
         <text class="current-system-name">{{ currentSystemName }}</text>
-        <cwg-icon name="crm-chevron-down" :color="iconColor" :size="14" />
+        <cwg-icon name="crm-chevron-down" :color="iconColor" darkColor="#000" :size="14" />
       </view>
     </cwg-dropdown>
   </view>
@@ -182,7 +182,7 @@ onMounted(() => {
 
 .current-system-name {
   font-size: px2rpx(14);
-  color: v-bind('props.textColor');
+  color: var(--bs-emphasis-color);
 }
 
 :deep(.cwg-dropdown-menu-container .menu .menu-item) {

+ 2 - 2
pages/common/download.vue

@@ -50,7 +50,7 @@
                         </view>
                         <view class="download-cards">
                             <cwg-link type="html" class="download-card download-card-web" target="_blank"
-                                :url="'https://www.' + config.host + '.com/' + locale + '/mt4/web'">
+                                :url="'https://www.' + config.host + '.com/' + locale + '/vu-mt4-web-trading/web'">
                                 <view class="card-info">
                                     <view class="card-title" v-t="'Downloadpage.item40'" />
                                 </view>
@@ -147,7 +147,7 @@
                                 <view class="download-badge">ZIP</view>
                             </cwg-link>
                             <cwg-link type="download" class="download-card" :url="config.Host80 + '/mt/MetaTrader5.pkg'"
-                                downloadName="MetaTrader5.dmg">
+                                downloadName="MetaTrader5.pkg">
                                 <image class="card-icon" src="/static/images/apple-os-1-48.png" alt=""
                                     mode="widthFix" />
                                 <view class="card-info">

+ 6 - 4
pages/customer/components/AccountCardDesktop.vue

@@ -33,7 +33,7 @@
                     <view class="circle-btn" :class="{ 'is-disabled': item.disabled }" @click="handleAction1(item)"
                         v-if="!item.needDemo">
                         <view class="circle-icon" :class="{ 'primary': item.primary }">
-                            <cwg-icon :name="item.icon" :size="16" :color="item.color" />
+                            <cwg-icon :name="item.icon" :size="16" :color="!isDark ? item.color : '#fff'" />
                         </view>
                         <text class="circle-label" v-t="item.label" />
                     </view>
@@ -43,7 +43,7 @@
                     @menuClick="handleCustomClick">
                     <view class="circle-btn">
                         <view class="circle-icon">
-                            <cwg-icon name="crm-ellipsis-vertical" :size="16" color="#fff" />
+                            <cwg-icon name="crm-ellipsis-vertical" :size="16" :color="!isDark ? '#6c8595' : '#fff'" />
                         </view>
                         <text class="circle-label" v-t="'Latest.More'" />
                     </view>
@@ -56,7 +56,7 @@
                     <view class="action-btn" :class="{ 'primary': item.primary, 'is-disabled': item.disabled }"
                         @click="handleAction1(item)" v-if="!item.needDemo">
                         <span class="btn-icon">
-                            <cwg-icon :name="item.icon" :size="16" :color="item.color" />
+                            <cwg-icon :name="item.icon" :size="16" :color="!isDark ? item.color : '#fff'" />
                         </span>
                         <text v-t="item.label" />
                     </view>
@@ -107,7 +107,9 @@ const { t } = useI18n();
 import TerminalDialog from './TerminalDialog.vue'
 import TerminalChangePasswordDialog from './TerminalChangePasswordDialog.vue'
 import TerminalInfoDialog from './TerminalInfoDialog.vue'
-
+import useGlobalStore from '@/stores/use-global-store'
+const globalStore = useGlobalStore()
+const isDark = computed(() => globalStore.theme === 'dark')
 const props = defineProps<{
     account: Account;
 }>();

+ 8 - 6
pages/customer/components/AccountCardMobile.vue

@@ -16,7 +16,7 @@
             <cwg-dropdown ref="dropdownRef" @open="onOpen" @close="onClose" :menu-list="customMenuList"
                 @menuClick="handleCustomClick">
                 <view class="more-icon more-btn">
-                    <cwg-icon name="crm-ellipsis-vertical" :size="20" color="#fff" />
+                    <cwg-icon name="crm-ellipsis-vertical" :size="20" :color="!isDark ? '#6c8595' : '#fff'" />
                 </view>
                 <template #btn>
                     <view class="mobile-buttons">
@@ -25,7 +25,7 @@
                             <view class="circle-btn" :class="{ 'is-disabled': item.disabled }"
                                 @click="handleAction1(item)" v-if="!item.needDemo">
                                 <view class="circle-icon" :class="{ 'primary': item.primary }">
-                                    <cwg-icon :name="item.icon" :size="16" :color="item.color" />
+                                    <cwg-icon :name="item.icon" :size="16" :color="!isDark ? item.color : '#fff'" />
                                 </view>
                                 <text class="circle-label" v-t="item.label" />
                             </view>
@@ -78,7 +78,9 @@ const { t } = useI18n();
 import TerminalDialog from './TerminalDialog.vue'
 import TerminalChangePasswordDialog from './TerminalChangePasswordDialog.vue'
 import TerminalInfoDialog from './TerminalInfoDialog.vue'
-
+import useGlobalStore from '@/stores/use-global-store'
+const globalStore = useGlobalStore()
+const isDark = computed(() => globalStore.theme === 'dark')
 const props = defineProps<{
     account: Account;
 }>();
@@ -114,9 +116,9 @@ const closeFunctionOpen = (code) => {
 // 圆形按钮数据
 const circleButtons = ref([
     { key: 'trade', label: 'Shop.Index.Transaction', icon: 'crm-trade', action: 'trade', needDemo: false, primary: true, disabled: false, color: '#fff' },
-    { key: 'deposit', label: 'Home.page_customer.item2', icon: 'crm-deposit', action: 'deposit', needDemo: isDemo.value, disabled: !closeFunctionOpen('1'), color: '#282b44' },
-    { key: 'withdraw', label: 'Home.page_customer.item3', icon: 'crm-withdraw', action: 'withdraw', needDemo: isDemo.value, disabled: !closeFunctionOpen('2'), color: '#282b44' },
-    { key: 'transfer', label: 'Custom.Index.Transfer', icon: 'crm-transfer', action: 'transfer', needDemo: isDemo.value, disabled: !(closeFunctionOpen('5') && closeFunctionOpen('6') && closeFunctionOpen('3')), color: '#282b44' }
+    { key: 'deposit', label: 'Home.page_customer.item2', icon: 'crm-deposit', action: 'deposit', needDemo: isDemo.value, disabled: !closeFunctionOpen('1'), color: '#6c8595' },
+    { key: 'withdraw', label: 'Home.page_customer.item3', icon: 'crm-withdraw', action: 'withdraw', needDemo: isDemo.value, disabled: !closeFunctionOpen('2'), color: '#6c8595' },
+    { key: 'transfer', label: 'Custom.Index.Transfer', icon: 'crm-transfer', action: 'transfer', needDemo: isDemo.value, disabled: !(closeFunctionOpen('5') && closeFunctionOpen('6') && closeFunctionOpen('3')), color: '#6c8595' }
 ])
 
 const fieldList = ref([

+ 6 - 2
pages/customer/components/AccountList.vue

@@ -16,11 +16,11 @@
             <view class="btn-class">
                 <view class="btn-primary" :class="{ 'btn-primary2': isGridLayout }"
                     @click="isGridLayout || toggleLayout()">
-                    <cwg-icon icon="crm-card" :size="16" color="#fff" />
+                    <cwg-icon icon="crm-card" :size="16" :color="!isDark ? '#6c8595' : '#fff'" />
                 </view>
                 <view class="btn-primary" :class="{ 'btn-primary2': !isGridLayout }"
                     @click="!isGridLayout || toggleLayout()">
-                    <cwg-icon icon="crm-list" :size="16" color="#fff" />
+                    <cwg-icon icon="crm-list" :size="16" :color="!isDark ? '#6c8595' : '#fff'" />
                 </view>
             </view>
         </view>
@@ -53,6 +53,10 @@ import DeleteAccountDialogs from './DeleteAccountDialogs.vue'
 import { useFilters } from '@/composables/useFilters'
 const { numberFormat, numberDecimal } = useFilters()
 const search = ref({ platform: 'MT4' })
+import useGlobalStore from '@/stores/use-global-store'
+const globalStore = useGlobalStore()
+const isDark = computed(() => globalStore.theme === 'dark')
+
 const isAfterJuly28 = () => {
     const now = new Date();
     const july28 = new Date(2025, 6, 28, 0, 0, 0); // 月份从0开始,所以7月是6

+ 7 - 5
pages/login/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <view class="login-page" :isHeaderFixed="true" :isLoginPage="true">
+  <view class="login-page bg-body" :isHeaderFixed="true" :isLoginPage="true" :class="{'dark': isDark}">
     <view class="fixed" />
     <view class="main-content">
       <uni-row class="demo-uni-row">
@@ -44,7 +44,7 @@
             <view class="global-header-bar pc-header">
               <view class="header-inner">
                 <view class="logo-placeholder"></view> <!-- 左侧可预留放logo或留空 -->
-                <LoginHeaderGroup text-color="#fff" icon-color="#fff" />
+                <LoginHeaderGroup text-color="#fff" :icon-color="isDark ? '#fff' : '#97A1C0' " />
               </view>
             </view>
           </cwg-match-media>
@@ -59,7 +59,9 @@
           </cwg-match-media>
           <view class="account">
             <view class="company u-flex-y u-flex-y-center">
-              <image src="/static/images/logo-full.svg" class="company-icon" mode="widthFix"></image>
+              <image v-if="!isDark" src="/static/images/vu/logo-full.svg" class="company-icon" mode="widthFix"></image>
+              <image v-else src="/static/images/vu/logo-full-white.svg" class="company-icon" mode="widthFix"></image>
+
             </view>
             <view class="tab-list">
               <view v-for="tab in tabs" :key="tab.value" class="tab-item" :class="{ active: activeTab === tab.value }"
@@ -267,7 +269,6 @@ import LoginHeaderGroup from './components/LoginHeaderGroup.vue'
 import LiveChatService from '@/utils/liveChat.js'
 import { useWindowWidth } from '@/composables/useWindowWidth'
 import { openLocalPdf } from '@/utils/pdf.js'
-
 const windowWidth = useWindowWidth(300)
 const isMobile = computed(() => windowWidth.value <= 991)
 const router = useRouter()
@@ -276,6 +277,7 @@ const { Code } = Config
 const userStore = useUserStore()
 const globalStore = useGlobalStore()
 const modeStore = computed(() => globalStore.mode)
+const isDark = computed(() => globalStore.theme === 'dark')
 const tabs = computed(() => [
   { text: t('signin.tabs1'), value: 1, },
   { text: t('signin.tabs2'), value: 2, },
@@ -917,7 +919,7 @@ const handleChatIconClick = () => {
           margin: 0 0 0 px2rpx(10);
           font-size: px2rpx(56);
           line-height: 1.2;
-          color: var(--bs-emphasis-color);
+          color: var(--bs-body-bg);
           font-weight: 700;
           text-align: left;
         }

+ 3 - 3
windows/left-window.vue

@@ -3,10 +3,10 @@
     <view class="menu-list">
       <view class="menu" v-for="(item, index) in menus" :key="item.path + index">
         <view class="menu-item" @click="handleClick(index)">
-          <cwg-icon :name="item.icon" :size="20" color="#fff" />
+          <cwg-icon :name="item.icon" :size="20" :color="!isDark ? '#6c8595' : '#fff'" />
           <view class="menu-label" v-t="item.label" />
           <view class="chevron-icon" :class="{ 'expanded': item.isOpenMenu }">
-            <cwg-icon v-if="item.children && item.children.length" name="crm-chevron-down" :size="20" color="#fff" />
+            <cwg-icon v-if="item.children && item.children.length" name="crm-chevron-down" :size="20" :color="!isDark ? '#97A1C0' : '#fff' " />
           </view>
         </view>
         <view :ref="(el) => setSubmenuRef(index, el)" class="submenu-box" :a="index" :key1="item.path + index" :b="item"
@@ -156,7 +156,7 @@ function handleFixedMenuClick() {
     border: 1px solid rgba(140, 69, 246, 0.2) !important;
     font-size: px2rpx(18);
     font-weight: 600;
-    color: var(--bs-emphasis-color);
+    color: #fff;
 
     &:hover {
       color: var(--bs-btn-hover-color);