From 03043192ddf00f9a36b7454799a9152cd1b50a0b Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Tue, 06 Jan 2026 11:13:45 +0800
Subject: [PATCH] 1
---
src/views/quotes/UsStockMore.vue | 45 ++++++++++++++++++++++++++++++++++++---------
1 files changed, 36 insertions(+), 9 deletions(-)
diff --git a/src/views/quotes/UsStockMore.vue b/src/views/quotes/UsStockMore.vue
index cb7f733..bc9e05e 100644
--- a/src/views/quotes/UsStockMore.vue
+++ b/src/views/quotes/UsStockMore.vue
@@ -61,7 +61,7 @@
</div>
</section>
</template>
-
+
<script setup>
import { ref, onMounted, onBeforeUnmount } from 'vue';
import { useRoute, useRouter } from 'vue-router';
@@ -80,16 +80,43 @@
const loading = ref(false);
const finished = ref(false);
const category = ref('')
+const sockets = ref(null)
const pageNo = ref(1); // 初始页码
onMounted(async () => {
typName.value = route.query.typName
tabIndex.value = route.query.tabIndex
category.value = route.query.category
-
-
})
+onBeforeUnmount(() => {
+ sockets.value && sockets.value.close()
+})
+
+// 去除字符串中的 % 符号
+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 = list.value.find(item => item.pid == _data.pid);
+ if (upData) {
+ upData.changeRatio = pcpValue;
+ upData.close = _data.last;
+ }
+ }
+}
const getRealtimeByType = () => {
_getRealtimeByType({
@@ -103,7 +130,7 @@
if (data.length < 20) {
finished.value = true
}
-
+ startStocksSocket()
pageNo.value++
})
}
@@ -113,12 +140,12 @@
}
const itemClick = (item) => {
- if(category.value){
+ if (category.value) {
router.push(`/quotes/usStockDetail?symbol=${item.symbol}&symbolType=${symbolType}&enName=${item.enName}&isMore=1&tabIndex=${tabIndex.value}&typName=${typName.value}&category=${category.value}`)
- }else{
+ } else {
router.push(`/quotes/usStockDetail?symbol=${item.symbol}&symbolType=${symbolType}&enName=${item.enName}&isMore=1&tabIndex=${tabIndex.value}&typName=${typName.value}`)
}
-
+
}
const onRoute = (path) => {
@@ -126,9 +153,9 @@
}
const handleBack = () => {
- if(route.query?.tabIndex){
+ if (route.query?.tabIndex) {
router.push(`/quotes/index?tabActive=${route.query.tabIndex}`)
- }else {
+ } else {
onRoute('/quotes/index?tabActive=4')
}
}
--
Gitblit v1.9.3