From 23317b2e11aca690e8f1f349edf6f35da7ee65d3 Mon Sep 17 00:00:00 2001
From: 李凌 <344137771@qq.com>
Date: Wed, 04 Feb 2026 15:00:02 +0800
Subject: [PATCH] 1

---
 src/views/homePage/index.vue |   54 ++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 34 insertions(+), 20 deletions(-)

diff --git a/src/views/homePage/index.vue b/src/views/homePage/index.vue
index 031b536..020f54b 100644
--- a/src/views/homePage/index.vue
+++ b/src/views/homePage/index.vue
@@ -82,13 +82,14 @@
             <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-popup v-model:show="item.showPopUp" style="border-radius:10px;" v-for="item in popupNewsList"
+            :key="item.id">
+            <div class="w-350 p-20 pb-10 box-border popup_news">
+                <div class="font-700 text-center font-28">{{ 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 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>
@@ -100,7 +101,7 @@
 <script setup>
 import Head from './components/head.vue'
 import { useI18n } from "vue-i18n";
-import { ref, computed, onBeforeUnmount } from 'vue';
+import { ref, computed, onBeforeUnmount, onMounted, watch } from 'vue';
 import { useRouter } from 'vue-router';
 import ListQuatation from "@/components/Transform/list-quotation/index.vue";
 import { _getHomeList } from '@/service/cryptos.api'
@@ -114,7 +115,7 @@
     setStorage('symbol', 'btcusdt');
 }
 const userStore = useUserStore()
-const { t } = useI18n()
+const { t, locale } = useI18n()
 const router = useRouter()
 const store = useStore();
 
@@ -131,35 +132,46 @@
     // { 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: 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' },
     // { 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' },
 ]
 
 // 获取公告数据
 const announceList = ref([])
 _getNewsList1({
-    language: useI18n().locale.value,
+    language: locale.value,
 }).then(res => {
     announceList.value = res
 })
 
 // 获取弹出新闻
 const popupNewsList = ref([])
-_getPopupNews({
-    language: useI18n().locale.value,
-}).then(res => {
+const fetchPopupNews = async () => {
+    const partyId = userStore.userInfo?.partyId
+    const language = locale.value
+
+    // 未登录/未拿到 partyId 时也允许请求(后端若需要 partyId,会自行返回空)
+    const params = partyId ? { language, partyId } : { language }
+
+    const res = await _getPopupNews(params).catch(() => null)
     if (res && res.length > 0) {
-        let list = res
+        const list = res
         list.forEach(item => {
             item.showPopUp = true
         })
         popupNewsList.value = list
     }
+}
+
+onMounted(() => {
+    setTimeout(() => {
+        fetchPopupNews()
+    }, 1000)
 })
+
 // 关闭弹窗新闻
 const closePopNotice = (item) => {
     item.showPopUp = false
@@ -275,7 +287,8 @@
     $tab-c: #888;
     $inp-c: #999;
     $crd-b: #f7f7f7;
-    .js_title{
+
+    .js_title {
         font-size: 2rem;
         text-align: center;
         background: linear-gradient(to right, #87CEEB, #1E90FF, #0000CD);
@@ -284,12 +297,13 @@
         -webkit-text-fill-color: transparent;
         color: transparent;
     }
-    .js_content{
+
+    .js_content {
         font-size: 1.6rem;
         text-align: center;
     }
 
-    .popup_news{
+    .popup_news {
         font-size: 1.8rem;
     }
 
@@ -365,7 +379,7 @@
         width: 100%;
 
         .grid_item {
-            width: 33%;
+            width: 25%;
             color: $tab-c;
             font-size: 1.6rem;
 

--
Gitblit v1.9.3