From e01cee0f0c5c5c2eb2d8595eadb3c7a9df2a37fc Mon Sep 17 00:00:00 2001
From: 李凌 <344137771@qq.com>
Date: Wed, 21 Jan 2026 16:37:01 +0800
Subject: [PATCH] 1

---
 src/views/homePage/index.vue |  170 +++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 142 insertions(+), 28 deletions(-)

diff --git a/src/views/homePage/index.vue b/src/views/homePage/index.vue
index d82d293..1cc2d70 100644
--- a/src/views/homePage/index.vue
+++ b/src/views/homePage/index.vue
@@ -1,10 +1,21 @@
 <template>
-    <div class="home_page">
+    <div class="home_page mainBackground textColor">
 
-        <Head></Head>
-        <div class="home_logo flex justify-center"><img src="@/assets/imgs/home/home_logo.png" alt=""></div>
-        <div class="text-center font-bold mt-8 logo_text">{{ $t('复制财富,從此刻開始') }}</div>
-        <div class="text-center mt-2 logo_text_small">{{ $t('超6000種熱門交易類別,立即註冊领取5000USDT') }}!</div>
+        <Head @search="onSearch"></Head>
+        <!-- <div class="home_logo flex justify-center"><img src="@/assets/imgs/home/home_logo.png" alt=""></div> -->
+
+        <!-- <van-swipe class="home_logo" :autoplay="3000" indicator-color="white">
+            <van-swipe-item><img src="@/assets/imgs/home/Slider-1.jpg" alt=""></van-swipe-item>
+            <van-swipe-item><img src="@/assets/imgs/home/Slider-2.jpg" alt=""></van-swipe-item>
+            <van-swipe-item><img src="@/assets/imgs/home/Slider-3.jpg" alt=""></van-swipe-item>
+        </van-swipe> -->
+
+        <!-- <video autoplay loop muted playsinline class="home_logo">
+            <source src="@/assets/video/home_1.mp4" type="video/mp4">
+        </video> -->
+
+        <!-- <div class="text-center font-bold mt-8 logo_text">{{ $t('复制财富,從此刻開始') }}</div>
+        <div class="text-center mt-2 logo_text_small">{{ $t('超6000種熱門交易類別,立即註冊领取5000USDT') }}!</div> -->
 
 
         <div class="login_buts flex justify-between pl-10 pr-10 pt-10"
@@ -20,7 +31,8 @@
             </div>
         </div>
 
-        <van-notice-bar class="font-26 mt-10 index_notice" background="#fafbfc" :scrollable="false" wrapable
+        <!-- 新闻 -->
+        <van-notice-bar class="font-26 mt-10 index_notice" background="#333" :scrollable="false" wrapable
             color="#333333">
             <van-swipe vertical class="notice-swipe" :autoplay="2000" :show-indicators="false">
                 <van-swipe-item v-for="item in announceList" :key="item.id" @click="toAnnounceDetail(item.uuid)">
@@ -67,8 +79,21 @@
 </div> -->
 
         <div id="cryptos" class="pt-10">
-            <list-quatation :listData="qList" :tabShow="false" />
+            <list-quatation :listData="qList" :tabShow="false" :tabActive="2" />
         </div>
+
+        <van-popup v-model:show="item.showPopUp" style="border-radius:10px;" 
+            v-for="item in popupNewsList" :key="item.id">
+            <div class="w-350 p-20 box-border popup_news">
+                <div class="font-700 text-center font-28 textColor">{{ item.title }}</div>
+                <div class="flex justify-center mt-30" v-if="item.imgUrl"><img :src="`${item.imgUrl}`"
+                        class="w-200 h-200" alt="" /></div>
+                <div class="py-10 textColor   content-title" v-html="item.content"></div>
+                <van-button color="#1194F7" class="w-full h-40 rounded-full" type="info" @click="closePopNotice(item)">
+                    {{ $t('我知道了') }}
+                </van-button>
+            </div>
+        </van-popup>
     </div>
 </template>
 
@@ -81,13 +106,13 @@
 import { _getHomeList } from '@/service/cryptos.api'
 import { _getNewsList1, _getPopupNews } from '@/service/user.api'
 import { useStore } from "vuex";
-import { TIME_OUT } from "@/config";
+import { TIME_OUT, customerServiceUrl } from "@/config";
 import { useUserStore } from '@/store/user';
-import { setStorage,getStorage } from '@/utils/index.js';
-  let catchSymbol = getStorage('symbol')
-  if(!catchSymbol){
-	  setStorage('symbol', 'btcusdt');
-  }
+import { setStorage, getStorage } from '@/utils/index.js';
+let catchSymbol = getStorage('symbol')
+if (!catchSymbol) {
+    setStorage('symbol', 'btcusdt');
+}
 const userStore = useUserStore()
 const { t } = useI18n()
 const router = useRouter()
@@ -97,17 +122,20 @@
     // { key: 1, name: t('跟单'), icon: new URL('@/assets/imgs/home/home_1.png', import.meta.url) },
     // { 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: 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: 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' },/cryptos/Withdraw/withdrawPage
-	{ key: 7, name: t('提现'), icon: new URL('@/assets/imgs/home/home_6.png', import.meta.url), path: '/cryptos/Withdraw/withdrawPage' },
+    { 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' },
     // { key: 8, name: t('卡券中心'), icon: new URL('@/assets/imgs/home/home_7.png', import.meta.url) },
-    { key: 9, name: t('闪兑'), icon: new URL('@/assets/imgs/home/home_8.png', import.meta.url), path: '/cryptos/exchangePage' },
+    // { key: 9, name: t('闪兑'), icon: new URL('@/assets/imgs/home/home_8.png', import.meta.url), path: '/cryptos/exchangePage' },
+    // { 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: 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' },
+    // { key: 15, name: 'DXCM PDF', icon: new URL('@/assets/imgs/home/home_1.png', import.meta.url), path: 'https://www.dexm-whitepaper.com/' },
     { key: 11, name: "ICO", 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: '' },
 ]
 
 // 获取公告数据
@@ -117,6 +145,24 @@
 }).then(res => {
     announceList.value = res
 })
+
+// 获取弹出新闻
+const popupNewsList = ref([])
+_getPopupNews({
+    language: useI18n().locale.value,
+}).then(res => {
+    if (res && res.length > 0) {
+        let list = res
+        list.forEach(item => {
+            item.showPopUp = true
+        })
+        popupNewsList.value = list
+    }
+})
+// 关闭弹窗新闻
+const closePopNotice = (item) => {
+    item.showPopUp = false
+}
 
 // 跳转公告详情
 const toAnnounceDetail = (announceId) => {
@@ -128,7 +174,23 @@
 // 跳转页面
 const toPage = (path) => {
     if (!path) return
-    router.push(path)
+
+    // 如果路径包含 "http",则作为外链跳转
+    if (path && (path.startsWith('http://') || path.startsWith('https://'))) {
+        window.open(path, '_blank');
+        return;
+    }
+
+    if (path == '/customerService') {
+        // 客服链接,有值的话就会跳转到客服外链
+        if (customerServiceUrl()) {
+            window.location.href = customerServiceUrl();
+        } else {
+            router.push(path)
+        }
+    } else {
+        router.push(path)
+    }
 }
 
 // 轮播图数据
@@ -145,6 +207,8 @@
 
 //#region 行情数据----------------------------------------
 let qList = ref([])
+let qListCope = ref([]) // 备份数据
+let key = ref('') // 搜索关键词
 let timeout = ref(null)
 const coinArr = computed(() => store.getters['home/coinArr']);
 
@@ -155,7 +219,16 @@
     if (!(list instanceof Array)) {
         return
     }
-    qList.value = list;
+
+    // 通过关键字进行筛选
+    if (key.value) {
+        qList.value = list.filter(item => {
+            return item.symbol_data.toLowerCase().includes(key.value.toLowerCase()) || item.name.toLowerCase().includes(key.value.toLowerCase())
+        })
+    } else {
+        qList.value = list
+    }
+    qListCope.value = list; // 备份数据
 
     if (timeout.value) {
         clearTimeout(timeout.value)
@@ -166,9 +239,23 @@
 }
 fetchQList()
 
+// 搜索
+const onSearch = (val) => {
+    key.value = val
+
+    if (!val) {
+        qList.value = qListCope.value
+        return
+    }
+    let newList = qListCope.value.filter(item => {
+        return item.symbol_data.toLowerCase().includes(val.toLowerCase()) || item.name.toLowerCase().includes(val.toLowerCase())
+    })
+    qList.value = newList
+}
+
 onBeforeUnmount(() => {
     if (timeout.value) {
-        clearInterval(timeout.value)
+        clearTimeout(timeout.value)
     }
 })
 //#endregion----------------------------------------------
@@ -176,15 +263,34 @@
 </script>
 
 <style lang="scss">
+@import '@/assets/theme/index.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;
+    .js_title{
+        font-size: 2rem;
+        text-align: center;
+        background: linear-gradient(to right, #87CEEB, #1E90FF, #0000CD);
+        -webkit-background-clip: text;
+        background-clip: text;
+        -webkit-text-fill-color: transparent;
+        color: transparent;
+    }
+    .js_content{
+        font-size: 1.6rem;
+        text-align: center;
+    }
+
+    .popup_news{
+        font-size: 1.8rem;
+    }
 
     .index_notice {
         height: 100px;
@@ -201,17 +307,25 @@
         }
 
         .notice_content {
+            @include themify() {
+                color: themed("text_color");
+            }
+
             &>div:first-child {
-                color: $text_color1;
+                @include themify() {
+                    color: themed("text_color1");
+                }
             }
         }
     }
 
     .home_logo {
-        width: 100%;
+        width: 48rem;
+        margin: 2rem auto 1rem;
+        border-radius: 1rem;
 
         img {
-            width: 22.5rem;
+            width: 100%;
         }
     }
 

--
Gitblit v1.9.3