From 42faef34194c466f03e29d75a63ae502e4213044 Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Tue, 06 Jan 2026 10:38:46 +0800
Subject: [PATCH] 上一版是10.10的, 这版才是原始源码

---
 src/views/usStock/List.vue |  116 ++++++++++------------------------------------------------
 1 files changed, 20 insertions(+), 96 deletions(-)

diff --git a/src/views/usStock/List.vue b/src/views/usStock/List.vue
index f07c340..ae12380 100644
--- a/src/views/usStock/List.vue
+++ b/src/views/usStock/List.vue
@@ -49,8 +49,8 @@
                 'text-up': item.changeRatio > 0,
                 'text-down': item.changeRatio <= 0,
               }">{{ item.changeRatio ? `${item.changeRatio}%` : item.changeRatio === 0 ? 0
-                :
-                '--' }}</p>
+  :
+  '--' }}</p>
             </div>
           </div>
           <div class="divider mt-10"></div>
@@ -115,7 +115,7 @@
           </div>
           <div class="divider"></div>
           <div class="all-etf-ranking">
-            <p class="title">{{ t('涨幅榜') }}</p>
+            <p class="title">{{ t('WellUSstocks') }}</p>
             <div class="etf-table">
               <ul>
                 <li class="title-line">
@@ -131,7 +131,7 @@
                     </div>
                   </div>
                 </li>
-                <li v-for="(item) in prominentListData.slice(0, 5)" :key="item.symbol" @click="itemClick(item)">
+                <li v-for="(item, index) in prominentListData.slice(0, 5)" :key="item.symbol" @click="itemClick(item)">
                   <div class="flex-l">
                     <p>{{ item.name }}</p>
                     <p class="gray-text">
@@ -151,7 +151,7 @@
                 </li>
               </ul>
             </div>
-            <div class="more-box" @click="moreOpen(0, t('涨幅榜'), 'prominent')">
+            <div class="more-box" @click="moreOpen(0, t('WellUSstocks'), 'prominent')">
               <div class="icon-group">
                 <p class="">{{ t('更多') }}</p>
                 <img src="@/assets/image/quotes/right-arrow-grey.png" alt="" class="icon arrow">
@@ -186,8 +186,7 @@
                     </div>
                   </li>
 
-                  <li v-for="(item, index) in technologyListData.slice(0, 5)" :key="item.symbol"
-                    @click="itemClick(item)">
+                  <li v-for="(item, index) in technologyListData.slice(0, 5)" :key="item.symbol" @click="itemClick(item)">
                     <div class="flex-l">
                       <p>{{ item.name }}</p>
                       <p class="gray-text">
@@ -235,8 +234,7 @@
                       </div>
                     </div>
                   </li>
-                  <li v-for="(item, index) in dinancialListData.slice(0, 5)" :key="item.symbol"
-                    @click="itemClick(item)">
+                  <li v-for="(item, index) in dinancialListData.slice(0, 5)" :key="item.symbol" @click="itemClick(item)">
                     <div class="flex-l">
                       <p>{{ item.name }}</p>
                       <p class="gray-text">
@@ -284,8 +282,7 @@
                       </div>
                     </div>
                   </li>
-                  <li v-for="(item, index) in healthcareListData.slice(0, 5)" :key="item.symbol"
-                    @click="itemClick(item)">
+                  <li v-for="(item, index) in healthcareListData.slice(0, 5)" :key="item.symbol" @click="itemClick(item)">
                     <div class="flex-l">
                       <p>{{ item.name }}</p>
                       <p class="gray-text">
@@ -511,7 +508,6 @@
 const isZh = language == "zh-CN" || language == "CN"
 const isLoading = ref(false)
 const initObjData = ref({})
-const sockets = ref(null)
 const props = defineProps({
   index: {
     type: Number,
@@ -525,26 +521,23 @@
 
 onMounted(async () => {
   getNewsList()
-  await getRealtimeByType()
-  await publicRealtimeTop()
-  await startStocksSocket()
-  // letMeGo() // 取消美股的轮询请求,通过ws来获取最新的数据
+  getRealtimeByType()
+  publicRealtimeTop()
+  letMeGo()
   nextTick(() => {
     renderFundChart(linesData)
   })
 })
 
-// 轮询相关
-// const emit = defineEmits(['changeLetMego'])
-// const letMeGo = () => {
-//   emit('changeLetMego', () => {
-//     getRealtimeByType()
-//     publicRealtimeTop()
-//   })
-// }
+const emit = defineEmits(['changeLetMego'])
+const letMeGo = () => {
+  emit('changeLetMego', () => {
+    getRealtimeByType()
+    publicRealtimeTop()
+  })
+}
 onBeforeUnmount(() => {
   fundChart && fundChart.dispose()
-  sockets.value && sockets.value.close()
 })
 
 const renderFundChart = (_rawData) => {
@@ -646,7 +639,6 @@
     type: 'US-stocks',
   }).then(data => {
     indexCardInfo.value = data.slice(0, 3) || []
-    initObjData.value = data[0]
   }).catch((e) => {
 
   })
@@ -667,75 +659,8 @@
     energyListData.value = data.filter(item => item.category.indexOf('energy') > -1) || []
     manufacturingListData.value = data.filter(item => item.category.indexOf('manufacturing') > -1) || []
     chineseListData.value = data.filter(item => item.category.indexOf('chinese') > -1) || []
-    // initObjData.value = data[0]
+    initObjData.value = data[0]
   })
-}
-
-// 去除字符串中的 % 符号
-const removePercentSign = (str) => {
-  if (typeof str === 'string' && str.includes('%')) {
-    return str.replace(/%/g, '')
-  }
-  return str
-}
-
-const startStocksSocket = () => {
-  sockets.value = new WebSocket(`wss://ws.sceazy.com/websocket-server`)
-  sockets.value.onmessage = (evt) => {
-    const { data } = evt
-    const _data = JSON.parse(data)
-    
-    // 处理 pcp 值,去除 % 符号
-    const pcpValue = removePercentSign(_data.pcp)
-    
-    let upData = prominentListData.value.find(item => item.pid == _data.pid); 
-    if (upData) {
-      upData.changeRatio = pcpValue;
-      upData.close = _data.last;
-    }
-
-    let upData1 = technologyListData.value.find(item => item.pid == _data.pid); 
-    if (upData1) {
-      upData1.changeRatio = pcpValue;
-      upData1.close = _data.last;
-    }
-
-    let upData2 = dinancialListData.value.find(item => item.pid == _data.pid); 
-    if (upData2) {
-      upData2.changeRatio = pcpValue;
-      upData2.close = _data.last;
-    }
-
-    let upData3 = healthcareListData.value.find(item => item.pid == _data.pid); 
-    if (upData3) {
-      upData3.changeRatio = pcpValue;
-      upData3.close = _data.last;
-    }
-
-    let upData4 = energyListData.value.find(item => item.pid == _data.pid); 
-    if (upData4) {
-      upData4.changeRatio = pcpValue;
-      upData4.close = _data.last;
-    }
-
-    let upData5 = manufacturingListData.value.find(item => item.pid == _data.pid); 
-    if (upData5) {
-      upData5.changeRatio = pcpValue;
-      upData5.close = _data.last;
-    }
-
-    let upData6 = chineseListData.value.find(item => item.pid == _data.pid); 
-    if (upData6) {
-      upData6.changeRatio = pcpValue;
-      upData6.close = _data.last;
-    }
-
-    let upData7 = indexCardInfo.value.find(item => item.pid == _data.pid); 
-    if (upData7) {
-      upData7.changeRatio = pcpValue;
-      upData7.close = _data.last;
-    }
-  }
 }
 
 const onRoute = (path) => {
@@ -757,7 +682,6 @@
   }
 })
 </script>
-
 <style lang="scss" scoped>
 .loading-box-us {
   position: absolute;
@@ -1162,7 +1086,7 @@
               flex: 1;
               align-self: center;
               text-align: center;
-
+			
               &:last-child {
                 text-align: right;
               }

--
Gitblit v1.9.3